Cómo mover particiones de arranque y raíz a otra unidad

27

Tengo dos unidades en mi computadora que tienen la siguiente configuración:

Drive 1: 160GB, /home
Drive 2: 40GB, /boot and /

Desafortunadamente, la unidad 2 parece estar muriendo, porque intentar escribir en ella me está dando errores, y revisar la configuración SMART muestra un triste estado de cosas.

Tengo un montón de espacio en la Unidad 1, así que lo que me gustaría hacer es mover las particiones / y / a ella, quitar la Unidad 2 del sistema, reemplazar la Unidad 2 con una nueva unidad, luego invertir el proceso.

Me imagino que necesito actualizar un poco a grub, y necesito mover algunas cosas, pero estoy bastante desconcertado sobre cómo hacerlo exactamente. Como esta es mi computadora principal, quiero tener cuidado de no estropear las cosas para que no pueda arrancar.

mlissner
fuente
Esto es exactamente lo que tuve que hacer también. Escribí un blog con instrucciones completas sobre cómo mover la partición raíz / a / home.
Lucas

Respuestas:

29

Tendrá que arrancar desde un CD en vivo. Agregue particiones para ellos en el disco 1, copie todo el contenido y luego use sudo blkidpara obtener el UUID de cada partición. En el nuevo disco 1, edite / etc / fstab para usar los nuevos UUID que acaba de buscar.

La actualización de GRUB depende de si es GRUB1 o GRUB2. Si GRUB1, necesita editar /boot/grub/device.map

Si GRUB2, creo que necesita montar sus particiones, ya que estarían en una situación real. Por ejemplo:

sudo mkdir /media/root
sudo mount /dev/sda1 /media/root
sudo mount /dev/sda2 /media/root/boot
sudo mount /dev/sda3 /media/root/home

(Completando cualesquiera que sean las particiones reales en las que copiaste las cosas, por supuesto)

Luego, enlace mount / proc y / dev en / media / root:

sudo mount -B /proc /media/root/proc
sudo mount -B /dev /media/root/dev
sudo mount -B /sys /media/root/sys

Ahora ingrese a la unidad para que pueda forzar a GRUB a actualizarse de acuerdo con el nuevo diseño:

sudo chroot /media/root
sudo update-grub

El segundo comando presentará una queja (aunque se me olvida qué es ...), pero está bien ignorarlo.

Pruébelo quitando el disco defectuoso. Si no funciona, la unidad defectuosa debería poder iniciar el sistema, pero creo que estos son todos los pasos necesarios.

maco
fuente
3
Para su información para cualquiera que esté viendo esto en estos días, esto no se aplica a las configuraciones de EFI. Necesitas montar /media/root/boot/efi, entre otras cosas.
wjandrea
1
Tenía que hacerlo sudo grub-install /dev/sdaantes de lasudo update-grub
William Mortada
5

Si reemplaza la unidad de inmediato, puede usar dd (lo probé en mi servidor hace algunos meses y funcionó de maravilla).

También necesitará un CD de arranque para esto.

  1. Iniciar CD de arranque
  2. Solo monte la unidad 1
  3. Ejecutar dd if=/dev/sdb1 of=/media/drive1/backuproot.img: sdb1 es su raíz (/ partición ). Esto guardará toda la partición en un archivo.
    • igual por /boot
  4. Apague, reemplace el disco, encienda
  5. correr dd if=/media/drive1/backuproot.img of=/dev/sdb1 : escríbelo de nuevo.
    • igual por /boot

Lo anterior creará 2 particiones con exactamente el mismo tamaño que tenían antes. Es posible que deba ajustar grub (consulte la publicación de macos).

Si desea cambiar el tamaño de sus particiones (como lo hice):

  1. Cree 2 particiones en la nueva unidad (para /y /boot; dimensione lo que quiera)
  2. Montar la imagen de respaldo: mount /media/drive1/backuproot.img /media/backuproot/
  3. Montar la /partición vacía :mount /dev/sdb1 /media/sdb1/
  4. Copie su contenido a la nueva partición (no estoy seguro acerca de este comando, es muy importante preservar la propiedad, ¡ cp -Rno lo haré!) cp -R --preserve=all /media/backuproot/* /media/sdb1
    • igual por /boot/

Esto debería hacerlo.

sBlatt
fuente
Resulta que la nueva unidad "40GB" que estoy tratando de instalar es más pequeña que mi unidad actual "40GB". Los tengo conectados a ambos, y estoy arrancado en un liveCD. ¿Hay una manera fácil de pasar del anterior al nuevo y llamarlo un trato hecho?
mlissner
En realidad, resolví esta pregunta. La partición que era demasiado grande era una partición ext4, así que arranqué un liveCD y usé gparted para reducirlo un poco.
mlissner
4

Mi solución final a esto fue una combinación de varias técnicas:

  1. Conecté la unidad moribunda y su reemplazo a la computadora simultáneamente.
  2. El nuevo disco era más pequeño que el anterior, así que reduje las particiones en el viejo usando GParted.
  3. Después de hacer eso, copié las particiones en el disco viejo y las pegué en el nuevo (también usando GParted).
  4. Luego, agregué el indicador de arranque a la partición correcta en la nueva unidad, por lo que efectivamente era un espejo de la unidad anterior.

Todo esto funcionó bien, pero necesitaba actualizar grub2 según las instrucciones aquí. .

Después de todo esto, las cosas parecen funcionar.

mlissner
fuente