usando dd para copiar la partición a otra partición, mientras usa una unidad física

15

No estoy seguro de cómo explicar esto mejor en el tema, por lo que la "pregunta" puede no ser correcta. Pero aquí va. Tengo tres discos duros. La unidad A es de 320 GB, la unidad B es de 80 GB y la unidad C es de 1 TB. He copiado los datos de la unidad de 80 GB a la unidad de 1TB, y voy a cambiar el tamaño de la partición (para poder copiar los datos de la unidad de 320 GB a continuación).

Mi pregunta es la siguiente: si inicio en el sistema operativo en la unidad de 1TB, ¿puedo usar dd para copiar la unidad de 320 GB a otra partición en esa unidad física? Yo se que yo no debería copie una partición en vivo (lo que significa que no podría copiar los datos de la unidad de 320 GB si estoy ejecutando ese sistema operativo).

Mi razonamiento es el siguiente: intenté usar Acronis TrueImage, Partition Manager y Image 4 DOS / Linux (ambas aplicaciones), y iba a tomar más de una semana copiar los datos. Eso significa que durante una semana no puedo usar la computadora, lo cual no es aceptable (a menos que sea mi única opción). Espero que esto funcione, así que al menos puedo usar la computadora mientras hago la copia.

Si tengo que hacerlo, puedo arrancar desde un Live CD (no es realmente una opción preferida) o usar la "Unidad B", pero me gustaría quitar esa unidad lo antes posible.

Der Hochstapler
fuente
Seguro Por qué no ?
Michael Hampton

Respuestas:

14

Sí, lo que quieres hacer funcionará bien, dado que las siguientes dos condiciones son verdaderas:

  1. No hay ningún sistema de archivos (montado) en la partición que está realizando. a .
  2. La partición que estás dd'ing a Es al menos el mismo tamaño que el que está utilizando. desde (es decir, 320 GB).

La razón por la que funcionará bien es que las particiones son solo archivos en UNIX. Sus contenidos solo tienen un significado especial si contienen un sistema de archivos montado.

Asumiendo que tienes un diseño que se ve así:

1 TB = sda, dos particiones, sda1 desde la que arrancó y sda2 a la que está enviando

320 GB = sdb, una partición, sdb1 de la que está haciendo dd

Tu orden se vería así:

dd if=/dev/sdb1 of=/dev/sda2 bs=1M

los bs=1M El parámetro está allí para garantizar que dd copie los datos en grandes porciones en lugar de emitir una solicitud para cada sector.

Michael Fenn
fuente
1
if = source of = destination creo que hay algo mal en los consejos anteriores.
En el ejemplo anterior, sdb1 es la fuente y sda2 es el destino. Edité la respuesta para ser más claro al respecto.
Michael Fenn
No hay necesidad de realizar resize2fs despues de la copia Incluso cuando los tamaños son diferentes?
Sopalajo de Arrierez
5

En general está bien dd cualquier partición mientras no esté montada. Si tiene que montar la partición de origen para leer mientras se ejecuta el dd, sería mejor montarlo solo con el parámetro -o ro.

Si desea iniciar primero en la partición de origen amd y luego usar dd para copiarlo, puede hacer mount -o ro, remount / para hacer que se lea solo después de iniciar.

replay
fuente
Leer solo no significa que el sistema de archivos no esté jugando con el diario o reorganizando el espacio libre o lo que sea.
vonbrand
@vonbrand, ¿podría proporcionar un ejemplo de la implementación del sistema de archivos de Linux que lo haga mientras está en modo RO?
Basilevs
@vonbrand En los sistemas de archivos UNIX, se monta mucho hace significa que no se deben emitir escrituras al dispositivo subyacente.
Michael Fenn