it-swarm-es.com

¿Cómo clonar todo el disco duro en uno nuevo?

Estaba usando el comando dd para copiar mi disco duro de 500GB en mi nuevo disco duro de 1TB. Después de 9 horas, el mensaje de visualización del sistema se copió correctamente, pero no puedo mostrar ningún dato en mi nuevo disco duro.
Voy a través de los siguientes pasos.
paso 1:-

enter image description here

Después de ese mensaje de visualización del sistema: - paso 2: - enter image description here
pero ahora 1 TB HDD no puede mostrar nada. enter image description here
¿Cómo resolver ese problema?

3
Madhav Nikam

Este problema fue creado por un comando dd incorrecto. El comando exacto dd para la clonación de disco es:

dd if=/dev/sda of=/dev/sdb

sda y sdb apuntan a los discos duros mismos, que también incluye la tabla de particiones. if= apunta al archivo de entrada (en este caso, /dev/sda) y of= apunta al archivo de salida (/dev/sdb).

El comando dd lleva mucho tiempo, pero es más confiable y también es la herramienta predeterminada del sistema, así que le di prioridad a dd.

enter image description here

Después de una operación exitosa, el siguiente paso es reiniciar el sistema , luego su nuevo disco duro se verá así:

enter image description here

Aquí está el segundo último paso, que también se requiere después de dd: Use la utilidad Gparted para cambiar el tamaño de la partición extendida . La antigua tabla de particiones del disco duro era del tipo de arranque Legacy y no admitía más de 4 particiones primarias. Por lo tanto, cambiar el tamaño es la única opción segura para usar 500GB de espacio libre.

Después de cambiar el tamaño de la partición extendida:

enter image description here

9
Madhav Nikam

Recientemente tuve que usar dd para el trabajo de recuperación e imagen. Lo utilicé intensamente hace unos 10 años para clonar unidades y hacer copias de seguridad de particiones. Debo decir que su uso está a años luz de ser directo y simple. Con respecto a los discos duros, debe saber exactamente cómo se estructura la unidad en el nivel más bajo. Para esto, necesita otros programas en los que pueda confiar (fdisk, sfdisk, cfdisk, etc.) La confianza solo proviene de la experimentación con objetos conocidos y el examen de los resultados, no del boca a boca. Estoy de acuerdo con el comentario inicial de muru sobre el comando dd incorrecto, pero hay que decir más. if =/dev/sda comienza a leer desde el principio del dispositivo (dirección de byte 0) mientras que = = dev/sdb1 escribe en la primera partición del dispositivo b. El resultado es que su sda-MBR reside en sdb-part1, junto con su sistema operativo, etc., y no sé qué sucederá cuando llegue al final de sdb1, si es más grande que sdb1.

Supongo que sda ​​es el dispositivo de arranque y desea que sdb también sea su dispositivo de arranque, pero tal vez solo desee que sdb1 sea un clon de respaldo. Tu pregunta es vaga sobre esto. Es posible que pueda copiar la partición a la partición si son exactamente del mismo tamaño, pero tal vez el sistema operativo tenga metadatos sobre el sistema de archivos de la partición que no coinciden, por lo que no puede 'verlo'. Si solo desea un clon para la copia de seguridad, entonces quizás su comando esté bien, pero hay problemas para llegar al final de la partición y sobreescribir la siguiente partición, y si su sistema operativo se opondrá a la destrucción del sistema de archivos en sdb1 (el arranque aún desde sda1 (?)). En principio, esto podría funcionar, pero probablemente sea mejor escribir sda en sdb solo y olvidarse de arrancar desde sdb, es solo un clon para leer. Probablemente podría escribir en el archivo si tuviera extFAT o algún sistema que aceptara tamaños de archivo de 500 GB, pero dudo que lo haga.

Hay docenas de otras preguntas también. Si desea transferir a sdb y luego iniciar desde allí, debe conocer los bytes y sectores para copiar e incluir eso en su comando, asegurándose de que su unidad de salida tenga el tamaño necesario, nuevamente/dev/sda a/dev/sdb debería funcionar a excepción de algunos problemas que he encontrado. A saber, ¿qué debería hacer dd si encuentra un error de lectura que es común en las unidades usadas más antiguas? Puede configurar dd para ignorarlos, pero ¿qué escribe? En mi experiencia, no escribe nada, por lo que 512 bytes (bloque tradicional normal, pero su disco puede ser diferente; las unidades más nuevas pueden usar bloques de 4096 bytes) se eliminan de la escritura y todos los bytes adicionales se desplazan 'a la izquierda' de donde deberían estar. Esto sucede para cada error de lectura que quizás haya optado por ignorar porque un error de lectura detiene dd cold y un reinicio es dolorosamente difícil. En resumen, se puede hacer dd para la clonación, pero debe hacerse en un script bash con un ciclo de recuperación de errores que llene los bloques no leídos con valores nulos, el comando debe especificar recuentos de bloques exactos, y usted debe saber exactamente el formato de bajo nivel de Las unidades involucradas. Al final, probablemente sea mejor para una clonación seria usar un ejecutable dedicado de código abierto c que haga lo que hacen dd y sfdisk pero de manera más profesional. Pero, admito que dd es útil. Es como un cuchillo Bowie en tu cinturón: impresionante y poderoso, pero de utilidad limitada.

Además, los sistemas operativos pueden verificar los UUID almacenados en el espacio libre y otros lugares en el disco duro y pueden oponerse al arranque si no coinciden. Esta es una de las áreas de arte negro de la competitividad del sistema operativo. El software oficial sabe estas cosas).

Las tablas GPT también son importantes, incluso esenciales en estos días, a diferencia de hace 10 años. Y las particiones de arranque EFI también complican las cosas. Con lo poco que sé sobre el formato de disco de bajo nivel, ni siquiera perderé el tiempo tratando de clonar un disco completo. Partes del disco pueden ser útiles para problemas muy especiales. Haciendo caso omiso de LVM y su importancia, una partición podría clonarse de manera útil, pero solo para volver a leerla en la unidad original (sin mezcla del sistema operativo, cambios de arranque, etc.) Para transferir una unidad de arranque de 500 GB para hacer un sistema de arranque de 1 TB, suponiendo que el sistema operativo no ' No se oponga a una unidad diferente (¿firmas de hardware?), entonces mi sugerencia para un experimento exitoso sería hacer el formateo de bajo nivel en la unidad de 1TB exactamente como la unidad de 500GB - ¡Quiero decir exactamente! Debe examinar las tablas MBR y GPT con un editor hexadecimal. Luego dd las particiones byte por byte a la nueva unidad. Luego, inicie la unidad de 1TB (suponiendo éxito) y haga otra partición en los nuevos 500GB de espacio adicional, o expanda la partición y el sistema de archivos en vivo, si tiene y confía en dicho software. La confianza en este ámbito es difícil de encontrar porque estas cosas son difíciles y desastrosas si se equivocan. Es mejor comprar un nuevo sistema o software con una gran reputación y SHA256SUMed para que pueda verificar su integridad. Los sistemas digitales son, por naturaleza, volátiles e impermanentes, por lo que es mejor acostumbrarse al cambio, si necesita más de lo que tiene.

2
Gavilan

Yo tengo:

  • agregó un segundo disco virtual más grande a la máquina virtual de ubuntu (configuración de caja virtual)
  • copió el primero al segundo disco con "Sudo dd if =/dev/sda of =/dev/sdb"
  • eliminado el intercambio partitin en sdb (gparted)
  • sdb1 ampliado (dividido)
  • recreó la partición de intercambio en sdb (gparted)
  • detuvo la máquina virtual
  • eliminó la unidad virtual anterior (configuración de la caja virtual)
  • lo reemplazó con la nueva unidad copiada y más grande (configuración de caja virtual)

Si funciona con virtualbox, funciona incluso con hardware real ...

0
aldo