Respuestas:
¿
dd if=/dev/zero of=/dev/sda
Eliminará una tabla de particiones preexistente?
Sí, la tabla de particiones está en la primera parte de la unidad, por lo que escribir sobre ella la destruirá. Eso dd
lo escribirá sobre todo el disco si lo deja correr (por lo que llevará bastante tiempo).
Algo así dd bs=512 count=50 if=/dev/zero of=/dev/sda
sería suficiente para sobrescribir los primeros 50 sectores, incluida la tabla de partición MBR y el GPT primario. Aunque al menos según Wikipedia, GPT tiene una copia secundaria de la tabla de particiones al final de la unidad, por lo que sobrescribir solo la parte en la cabeza de la unidad podría no ser suficiente.
(No tiene que usar dd
, sin embargo, head -c10000 /dev/zero > /dev/sda
o cat /bin/ls > /dev/sda
tendría el mismo efecto).
¿
fdisk /dev/sda g
(para GPT) borra los ceros escritos por / dev / zero?
También sí (siempre que guarde los cambios).
(Sin embargo, la redacción del título es confusa, /dev/zero
en sí misma no hace nada más que cualquier almacenamiento normal).
/bin/ls
es lo suficientemente corta, entonces la operación de escritura podría sobrescribir solo algunos bytes del MBR, y la parte más importante (sectores inicial y final de las particiones) puede permanecer intacta. Aunque grub --install /dev/sda
aún se requiere una reinstalación de MBR (más comúnmente ) para que el sistema se pueda iniciar nuevamente.
ls
binario real , no el resultado de ejecutarlo. El binario ELF "Hello World" más pequeño posible parece tener 98 bytes (menos que un MBR), pero creo que es seguro asumir que cualquier binario con características reales debería ser más grande que un MBR (la implementación de FreeBSD notoriamente pequeña ls
es 32784 bytes de longitud, incluso lo suficientemente grande como para sobrescribir la parte de inicio de disco de un GPT). ;)
ls
. Una lista de /usr/bin
probablemente sería lo suficientemente larga. Iba a usar solo echo
como ejemplo, pero IIRC necesita casi 500 bytes para sobrescribir una tabla de partición MBR, por lo que es un poco cansado escribir. (cualquiera que sea el número exacto)
La tabla de particiones se almacena cerca del comienzo 1 del dispositivo de disco (lógico 2 ).
Sobrescribir esa área con cualquier cosa (ceros /dev/zero
o cualquier otro dato) reemplazará la tabla de particiones con galimatías, por lo que ya no será obvio dónde comienzan las particiones en el dispositivo.
Sin embargo, todavía se puede escanear todo el disco e intentar identificar los "bytes mágicos" que marcan el comienzo de los sistemas de archivos.
Por el contrario, si usa fdisk
(o cualquier otra herramienta de particionamiento) para crear una nueva tabla de particiones, la herramienta sobrescribirá los primeros bytes del disco para almacenar esa nueva tabla.
Solo hay un principio en el disco, por lo que lo que hagas al final se "quedará" allí.
Sin embargo, tenga en cuenta que algunos formatos de tabla de particiones (como GPT) mantendrán copias de seguridad en diferentes lugares (por ejemplo, al final del disco para GPT), desde donde se puede recuperar parte de la información de la partición.
1: por ejemplo, en los primeros 512 bytes para un MBR o en el primer y último 17408 bytes para un GPT
2: La unidad puede reasignar internamente los bloques lógicos a diferentes partes del medio físico, pero esa asignación es invisible para (y no es importante para) El sistema operativo.
/dev/zero
borrando algo, lo estádd
borrando al copiarlo. Los hechos de que los bytes son cero, y que los bytes cero provienen en/dev/zero
lugar de alguna otra fuente de ceros, son detalles menores.