GNU/Linux >> Tutoriales Linux >  >> Linux

Poner a cero el contenido de un disco duro sin destruir el sistema de archivos

Respuesta fácil:

mount /dev/your/disk /some/free/mountpoint
dd if=/dev/zero of=/some/free/mountpoint/zero bs=512
sync # See edit below
rm /some/free/mountpoint/zero
umount /some/free/mountpoint

Esto hará exactamente lo que solicitó:sobrescribir todo el espacio disponible para los archivos en el sistema de archivos con ceros.

Respuesta más compleja:

  • Sin destruir el MBR no puedes estar seguro, no tienes un virus MBR
  • un sistema de archivos vacío no tiene valor

Por lo tanto, le recomiendo que simplemente destruya el dispositivo (es decir, ponga a cero el dispositivo, incluido el MBR y el sistema de archivos) y luego vuelva a crear la tabla de particiones y mkfs.ntfs -f -L LABEL -I

EDITAR

Como señaló @Nyos en los comentarios, si el controlador NTFS no monta la sincronización (no conozco los valores predeterminados), es una buena idea insertar un sync extra antes del rm . La versión actual (a partir de Ubuntu 18.04 completamente parcheada al 2020-05-02) no asigna ningún bloque retrasado, por lo que el sync no es estrictamente necesario, ya que todos los bloques asignados se escribirán en umount , pero ni conocemos el futuro ni leí el código fuente completo.

En la misma nota:si el controlador NTFS una vez obtiene soporte de archivos dispersos, es posible que necesitemos usar /dev/urandom en lugar de /dev/zero para evitar una escritura (casi) interminable.


Aunque esto no responde a su pregunta en absoluto... sin embargo:

Primero, es una muy, muy mala idea poner a cero un disco. Eso es cierto para los discos "tradicionales", y aún más para los discos de estado sólido. Poner a cero un disco es trivial (simplemente cree un archivo y llénelo, Eugen Rieck da la receta exacta) pero lleva mucho tiempo y desgasta el disco. Los ciclos de escritura no son infinitos, en ningún tipo de disco duro.
Además, tenga en cuenta que ni siquiera tiene una garantía de que la sobrescritura realmente funcione según lo previsto. Para su propósito, la diferencia no se notará, pero para otros propósitos (piense en el borrado seguro de datos confidenciales), el enfoque es totalmente poco confiable. Esto se debe a que no tiene absolutamente ninguna forma de saber qué sucede cuando sobrescribe algo gracias a la nivelación de desgaste y la reasignación. Las unidades hacen muchas cosas sin que nadie (¡incluido el sistema operativo!) lo sepa o incluso tenga una forma de saberlo, y mucho menos cambiarlo. Si, por ejemplo, se ha reasignado un sector porque el controlador no estaba satisfecho con la cantidad de reintentos, o el CRC o lo que sea, puede hacer lo que quiera en el futuro, simplemente ya no podrá acceder a ese sector. Nunca más. Aun así, los datos, o lo que queda de ellos (y no se puede saber), permanecen allí y un posible ladrón podría leerlos.

En segundo lugar, cuando se opera en modo de paranoia total, es una muy, muy mala idea mantener el sistema de archivos (y el MBR), especialmente cuando el disco está "vacío". Aparte del UUID del sistema de archivos, no perderá nada simplemente creando un nuevo sistema de archivos (que podría decirse que puede ser un poco molesto en algunas situaciones, pero eso también es fácil de arreglar). Sin embargo, obtienes la certeza de que no queda nada en lugares donde no lo esperas (MBR, por ejemplo).

En tercer lugar, es una mala idea poner a cero y reutilizar un sistema de archivos "vacío" que en realidad no está vacío en absoluto. Es malo en términos de rendimiento cuando simplemente puede crear un nuevo FS (sin entradas de diario de cambios obsoletas, elementos invisibles, flujos olvidados, atributos, MFT fragmentados...) desde cero. No solo es recrear todo desde cero mucho más seguro, también es mucho más rápido y probablemente dará como resultado un mejor rendimiento general en el futuro.

tl;dr

La mayoría de los dispositivos tienen una opción dedicada de borrado seguro o "restablecimiento de fábrica" ​​(que es lo mismo) que es compatible con la herramienta de administración que lo acompaña, o con alguna otra herramienta a través de un comando ATA estándar. La unidad usará el método más eficiente y menos destructivo (algunas unidades de hecho sobrescriben el disco completo sin admitir realmente la función, pero la mayoría simplemente volcará la clave de cifrado o codificación de bits, que funciona casi instantáneamente, independientemente del tamaño del disco).

hdparm que está disponible en casi todas las distribuciones de Linux listas para usar tiene una opción --security-erase para ese propósito exacto.

Esto le dará un disco "como si acabara de comprarlo" con la excepción de haber sido usado por un tiempo. Lo hará de la manera más rápida (dentro de lo técnicamente posible) y con la menor destrucción de disco. A continuación, particionelo y cree un sistema de archivos, listo.


Linux
  1. ¿Recuperar datos de un disco duro Fat32?

  2. ¿Cómo montar automáticamente el disco duro externo?

  3. ¿Cómo ejecutar Ubuntu sin un disco duro?

  4. Cómo comprobar la salud de un disco duro

  5. ¿Obtener el tamaño total de mi disco duro en Linux, usando la línea de comando, sin permisos de root?

Cómo encontrar detalles de la unidad de disco duro en Linux

Actualización a una unidad de estado sólido en Linux:la forma fácil y la forma difícil

¿Cuál es la forma más fácil de liberar espacio en un disco duro?

Averigüe qué procesos están escribiendo en el disco duro

El sistema se congela. No puedo encontrar nada en los registros.

Identifique físicamente el disco duro defectuoso