Tengo un disco duro montado en USB con7GBde espacio libre que intenté llenar con datos pseudoaleatorios usando estos comandos:
$ cd /media/username/volume_name
$ sudo dd if=/dev/urandom of=random_data_file.txt
random_data_file.txt
anteriormente no existía. Esperaba que el comando creara el archivo, le escribiera datos pseudoaleatorios y se detuviera cuando la partición que lo contenía se llenara. La barra de estado del administrador de archivos finalmente mostró 0 bytes
espacio libre. Pero el dd
comando no se detuvo y ni el emulador de terminal ni el administrador de archivos presentaron ninguna notificación de que la unidad estaba llena. Después de terminar el comando con Ctrl+C
, la salida del terminal indicaba40GBha sido escrito. Seleccioné el archivo en el administrador, cuya barra de estado también mostraba su tamaño como40GB, que es 33 GB más que la cantidad de espacio libre anterior.
- ¿Existe alguna posibilidad de que este comando haya sobrescrito o modificado algunos de mis otros archivos, la partición u otras particiones? ¿O esto significa que
random_data_file.txt
se han escrito y sobrescrito 40 GB/7 GB = 5,7 veces? Si es lo último, ¿por qué el administrador de archivos muestra su tamaño superior a 7 GB? Después de eliminarrandom_data_file.txt
usando el administrador de archivos, su barra de estado vuelve a mostrar espacio libre como 7 GB. - ¿Cuál es la forma correcta de usar el
dd
comando para crear y escribir datos pseudoaleatorios en un archivo de salida hasta que la partición que lo contiene esté llena, sin sobrescribir nada (aparte del espacio libre en la misma partición), incluido ese archivo de salida?
Respuesta1
Suponiendo que el hardware de su disco sea bueno (y no una tarjeta SD fraudulenta que muestre espacio disponible falso) y que su sistema de archivos no esté corrupto con listas libres corruptas y archivos cuyos bloques todavía estén en la lista libre, entonces dd if=/dev/urandom of=random_data_file.txt
no dañará el disco ni sobrescribirá nada (otros que random_datafile.txt).
Probablemente no necesitabas el sudo al frente, y si no estás seguro de que tu comando dd sea correcto, ciertamente no deberías ejecutarlo como sudo.
Una posible razón por la que escribió más datos de los esperados es que la mayoría de los sistemas de archivos reservan un poco de espacio libre (normalmente el 5%) para que el root pueda continuar escribiendo cuando los usuarios normales vean el disco lleno. (Nuevamente, no hagas esto con sudo...)