¿Hay un comando fácil que pueda usar para poner a cero los últimos 1 MB de un disco duro?
Para el inicio del viaje lo haría dd if=/dev/zero of=/dev/sdx bs=1M count=1
. La seek
opción para dd parece prometedora, pero ¿alguien tiene una manera fácil de determinar exactamente qué tan lejos debo buscar?
Tengo un dispositivo RAID de hardware, que almacena parte de la configuración RAID al final de la unidad. Necesito el dispositivo RAID para ver las unidades como no configuradas, por lo que quiero eliminar la configuración RAID sin tener que perder el tiempo para limpiar las unidades por completo. Tengo una docena de unidades de 2TB, y un borrado completo de todas esas unidades llevaría mucho tiempo.
sda
como ejemplo es terriblemente peligroso si copia y pega y logra que se copie el retorno de carro.sdx
Sería mucho más adecuado. Tomo precauciones, pero solo por eso no destruí mi disco en este momento.El tamaño de cada partición está disponible en
/proc/partitions
. El siguiente comando muestra el tamaño desdx
(en unidades de KB):Así:
fuente
Usar la búsqueda para llegar al final de la unidad funciona muy bien, es decir:
Sin embargo, cuando usa esto, le recomiendo que sepa que su valor de conteo es correcto o que no lo use en absoluto. La razón por la que digo esto es que las unidades pueden tener sectores de 512 bytes o sectores de 4k, y si usa esta solución con una unidad que tiene 4k sectores, no irá al final de la unidad con ese valor de conteo, y puede perder la información RAID al final (me he encontrado con esto).
fuente
dd
entendí mal cómo se dirigen los sectores cuando se usan conbs
valores personalizados más pequeños / más grandes que el tamaño de bloque real informado por el firmware del dispositivo o el kernel de Linux.Puede obtener el número de sectores en el disco con
hdparm -v /dev/sdx
. Intente buscar number_of_sectors - 2048 (asumiendo sectores de 512 bytes).fuente
/sys/block/sdx/queue/physical_block_size
puede proporcionarle la información, pero algunos discos más nuevos se reproducen rápido y suelto con el tamaño del sector que informan. Probablemente sea mejor leer la etiqueta en el disco o buscarla en la hoja de datos del fabricante.hdparm -I /dev/sda
enumera 2 "versiones" del tamaño del sector:Logical
yPhysical
. ¿Es esto lo que quieres decir con "rápido y suelto"? .... Pero tengo la "sensación" de que si algo se va a comportar de esa manera, bien podría ser un sistema RAID ... "Puede usar
dd
y obtener el tamaño del dispositivo a través defdisk
:No estoy usando un tamaño de bloque de 1 m para evitar errores de redondeo.
Alternativamente, podría escribir un pequeño programa C (o script) que invoque la
lseek
función conSEEK_END
un desplazamiento negativo de 1mb y luego llamewrite
.fuente