¿Cómo encoger, clonar un disco Linux completo y arrancarlo?

Tenía un Ubuntu 14.04 ejecutándose en un disco de 1024 GB (disco A), que solo usaba hasta 130 GB de espacio. Quiero clonarlo en un disco SSD de 256 GB (disco B). Pero falló.

gparted para networkingucir el gparted de las particiones en el disco A a solo 180 GB para la preparación del disco B con éxito.

¿Puedes decirme dónde me equivoqué?

1) restaurar la tabla de particiones

Hice una copy de security de la tabla de particiones del disco A.

 └──╼ $ sudo sfdisk -d /dev/sda # partition table of /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 997376, Id=83, bootable /dev/sda2 : start= 999424, size= 15624192, Id=82 /dev/sda3 : start= 16623616, size=337020928, Id=83 /dev/sda4 : start= 0, size= 0, Id= 0 

Consejos

/dev/sda1 para /boot , /dev/sda2 para swap , /dev/sda3 para / .

Guardar tabla de particiones

sudo sfdisk -d /dev/sda > partition.table

Luego traté de restaurar la tabla de particiones al disco B ( /dev/sdc en este escenario).

sda con sdc en el file partition.table . Entonces se ve así:

 # partition table of /dev/sdc unit: sectors /dev/sdc1 : start= 2048, size= 997376, Id=83, bootable /dev/sdc2 : start= 999424, size= 15624192, Id=82 /dev/sdc3 : start= 16623616, size=337020928, Id=83 /dev/sdc4 : start= 0, size= 0, Id= 0 

Luego haz la restauración con éxito.

sudo sfdisk /dev/sdc < partition.table

2) la migration del contenido de la partición del disco

sudo dd if=/dev/sda1 of=/dev/sdc1

sudo dd if=/dev/sda2 of=/dev/sdc2

sudo dd if=/dev/sda3 of=/dev/sdc3

Después de la migration, esas particiones en / dev / sdc se pueden montar y visualizar.

Fracaso

Pero si conecté el disco SSD (disco B) a mi computadora portátil, no arrancaría después de alguna salida ThinkPad BIOS. No salió ningún error, pero un cursor parpadeante …

Apuesto a que el BIOS incluso no detectó /boot en el disco B al hacer el arranque.

¿Me puedes ayudar? ¡Muchas gracias!


actualizar

Alguien me sugirió usar grub-install /dev/sdc para hacer el truco.

Busqué lo que grub-install es capaz – enlace Déjame intentarlo. Y estoy bastante seguro del disco A (tenía MBR instalado).


Actualizar

Después de hacer dd if=/dev/sda of=/dev/sdc bs=512 count=1 , inserte solo el disco B, sigue siendo el mismo cursor parpadeante. Nada realmente después de BIOS.

Después de hacer grub-install --boot-directory=/mnt/mypartition/boot /dev/sdc , fui a iniciarlo, solo disco B.

Pero grub console salió. E informado

enter image description here


Actualizar

¡Ahora está funcionando!

Así es como lo hice, en la PC que ejecuta el disco A como sistema operativo y el disco B ( /dev/sdc ) como un disco duro USB.

 sudo mount /dev/sdc3 /mnt sudo mount /dev/sdc1 /mnt/boot sudo grub-install --boot-directory=/mnt/boot /dev/sdc3 

Luego fui a /mnt/boot/grub/grub.cfg , reemplacé 2 cosas en el file grub.cfg . (recuerde dar permiso de escritura al file grub.cfg )

reemplace hd1 con hd0

reemplace /dev/sdc3 con /dev/sda3

Luego guarda el file. -> Apagar la computadora -> Inserte el disco B a través de SATA y saque el disco A para siempre. -> Boot -> Ver grub error pero aún arrancar

Si encontró el error Error: invalid environment block. Press any key to continue Error: invalid environment block. Press any key to continue , por favor verifique esto para resolverlo. Presione cualquier tecla para iniciar su sistema. https://askubuntu.com/questions/191852/error-invalid-environment-block-press-any-key-to-continue

 sudo -i 

Luego, ejecute cada command, uno por uno.

 cd /boot/grub rm grubenv grub-editenv grubenv create grub-editenv grubenv set default=0 grub-editenv grubenv list update-grub 

Ahora ve a reiniciar, ¡funcionará!

Así es como networkinguje el disco duro de 1024GB y migré todo el sistema a un nuevo disco SSD de 256GB.

No estoy familiarizado con sfdisk , pero podría lograr lo mismo, la tabla de particiones Y la copy de security MBR usando dd .

Esto estaba en mis notas y yo no soy el autor …

Copia de security del MBR

El MBR se almacena en los primeros 512 bytes del disco. Consiste de 3 partes:

  • Los primeros 446 bytes contienen el gestor de arranque.
  • Los siguientes 64 bytes contienen la tabla de particiones (4 inputs de 16 bytes cada una, una input para cada partición primaria).
  • Los últimos 2 bytes contienen un identificador

Clona el MBR como mbr.img:

 dd if=/dev/sdX of=/path/mbr_file.img bs=512 count=1 

Clona la partición como pX.img

 dd if=/dev/sdX of=/path/pX.img bs=1024 

Restaurar el MBR a un nuevo disco

 dd if=/path/mbr_file.img of=/dev/sdY bs=512 

Restaure la partición en un nuevo disco

 dd if=/path/pX.img of=/dev/sdX bs=1024 

O

Podría usar clonezilla para crear una image del sistema operativo y restaurarla en un disco que ya tiene las particiones creadas.

De esta manera, es posible que deba volver a instalar grub en el nuevo disco

 grub-install grub-mkconfig 

y configure su partición de intercambio en el 'nuevo' sistema operativo.

 mkswap swapon