haría
dd if=/dev/zero of=somepartition bs=512
también limpie las particiones después somepartition
o pare al final de somepartition
?
haría
dd if=/dev/zero of=somepartition bs=512
también limpie las particiones después somepartition
o pare al final de somepartition
?
Respuestas:
dd
dd
Es una herramienta muy poderosa pero también peligrosa. Hace lo que le dices que haga sin preguntas. Entonces, si le dice que borre las fotos familiares, ... y es un error de escritura menor.
Pero si marca y vuelve a verificar, puede usarlo.
dd if=/dev/zero of=somepartition bs=512
o sugeriría
dd if=/dev/zero of=/dev/sdxn bs=4096
donde x
está la letra de unidad y n
el número de partición y el tamaño de bloque 4096 bytes hace que el proceso de escritura sea más rápido
Es importante que escriba en una partición en este caso. Si escribe en toda la unidad (el extremo del cabezal de /dev/sdx
la unidad), se sobrescribirá toda la unidad. Pero la escritura en la partición se interrumpirá al final de la partición y las particiones detrás de ella se conservarán. (Lo probé ahora en un pendrive USB en Lubuntu 16.04 LTS, así que sé que funciona así).
Hay una excepción para una partición extendida (que es un contenedor para particiones lógicas, para tener más de cuatro particiones en una tabla de particiones MSDOS). Esto se describe en el siguiente enlace,
¿Puedo hacer una imagen de partición 'extendida' usando dd?
Pero también hay otro problema. Probé su comando en un entorno de prueba y solo leí un kibibyte (1024 bytes) cuando quería que creara una imagen de una partición extendida.
También probé esto ahora en un pendrive USB en Lubuntu 16.04 LTS, y esto se aplica a la escritura (así como a la lectura). Solo se sobrescribe el primer kibibyte.
Para resumir, sobrescribir las particiones primarias y las particiones lógicas funciona de acuerdo con la descripción principal en esta respuesta. Pero no use este método para sobrescribir una partición extendida porque solo se sobrescribirá el primer kibibyte. Las particiones lógicas de la partición extendida ya no se encontrarán a través de la tabla de particiones, pero los datos almacenados en ellas todavía están allí.
dd
y que sea arriesgado, de modo que tenga mucho cuidado al usarlo. Buena suerte :-) En general, siempre debe tener una copia de seguridad de todos los archivos, que no puede permitirse perder.
Las escrituras en un dispositivo de partición no escribirán fuera de esa partición, con dd o cualquier otra cosa. Debería usar un dispositivo wholedisk para tener algún efecto fuera de una única partición.
(Advertencia: a menos que su disco tenga una tabla de particiones con particiones superpuestas, lo que nunca debería suceder).
Creo que su pregunta se basa en un malentendido fundamental sobre cómo dd
(y, de hecho, los sistemas operativos similares a Unix en general) funcionan:
dd
no puede sobrescribir particiones adyacentes, simplemente porque dd
no puede sobrescribir particiones, punto .
dd
simplemente escribe en archivos . Eso es.
Ahora bien, si se pasa dd
un archivo que representa múltiples particiones, a continuación, dd
se sobreponen a ese archivo . Pero en ese caso, no está dd
escribiendo más allá del final de la partición. dd
seguirá escribiendo hasta el final del archivo, y solo hasta el final del archivo.
Pero, si pasa dd
un archivo que solo representa una partición, dd
no escribirá más allá del final de esta partición. De nuevo, esto no tiene nada que ver dd
. dd
simplemente escribe en el archivo en el que le dice que escriba. El hecho de que este archivo represente una única partición está asegurado (en este caso) por el controlador del dispositivo de bloque en el núcleo. dd
no tiene nada que ver con eso
En resumen: dd
escribe en archivos. Lo que representan esos archivos no dd
es asunto de nadie . dd
No sabe nada de particiones.
dd
para escribir en particiones sin formato. Solo puedes escribir en archivos. Usted puede , por supuesto, escribir en un archivo de dispositivo de bloque que representa una partición (como /dev/sda1
), pero no se puede escribir en una partición sin formato. Y dado que solo puede escribir en un archivo que representa una partición, no puede escribir más allá del final de la partición, porque el archivo solo representa la partición y no la partición y un poco más allá del final.
/dev/sda
en su editor de texto y cambiar los datos, dd
no es diferente de cualquier otro programa en términos de poder acceder a las particiones. Muy buena respuesta!
Existe un escenario especial peligroso, pero raro, en el que esto podría suceder incluso con controladores de dispositivos de bloques sin errores:
Debe tener cuidado con dd, ya que si comete un error, puede sobrescribir más de lo que esperaba y depende de para qué esté usando dd (el OP fue vago en su uso de dd y la sintaxis exacta de dd mando).
Si especifica una partición , escribirá en esa partición hasta que la partición esté llena.
Si comete un error y coloca toda la unidad, por ejemplo de = / dev / sda, dd escribirá en toda la unidad de inicio para terminar de ignorar (y sobrescribir) su tabla de particiones.
También puede usar dd en una partición para sobrescribir los archivos borrados (los archivos borrados pueden permanecer en la partición y ser descubiertos por varias herramientas de recuperación con varios grados de éxito hasta que se sobrescriban. En este caso, puede usar dd para llenar el espacio libre escribiendo en un archivo.
dd if=/dev/zero of=/path/to/mount_point/zero_file bs=4096
rm -f /path/to/mount_point/zero_file
Sin embargo, dependiendo de lo que esté haciendo, es posible que desee utilizar una herramienta alternativa para eliminar archivos de forma segura. Consulte ¿Cómo eliminar archivos de manera segura? para las opciones
dd
no es tan bajo nivel. De hecho, la mayoría de las cosas que las personas usan dd
podrían haberse hecho de la misma manera cat
. De hecho, cat
es un poco más rápido porque usa bloques más grandes que los dd
predeterminados. Todo el código de bajo nivel está en el núcleo. Y al conductor realmente no le importa si está usando dd
o cat
.
dd if=/dev/zero of=/dev/sda bs=512 count=1
o dd if=/dev/zero of=/dev/sda bs=512
son ejemplos. Con el segundo comando seguirá escribiendo y llenando todo el disco "ignorando" la tabla de particiones. Si especifica una partición dd if=/dev/zero of=/dev/sda1
, no irá más allá de la partición. Depende de lo que quieras hacer con dd.
of=somepartition
, por lo que el caso en el que escribe en todo el dispositivo de disco no se aplica. dd
no puede sortear las restricciones del controlador del dispositivo.
/dev/sda1
, son creados por el kernel de tal manera que es imposible acceder al almacenamiento adyacente a través de ellos (suponiendo que la tabla de particiones no se modificó después de que el kernel lo leyó la última vez). Si pudieras acceder al almacenamiento adyacente de esa manera, se consideraría un gran error.