Debian / Grub2: ¿Mover la partición raíz a una nueva unidad?

Pregunta:

¿Alguien tiene alguna sugerencia sobre cómo mover la partición raíz a una nueva unidad y configurar grub2 para que arranque en esa unidad? Parece que no tengo suerte al instruir a grub-mkconfig qué es lo que quiero hacer (por ejemplo, chroot'int en mi nueva raíz simplemente confunde todos los scripts).

Antecedentes Estoy ejecutando Debian Squeeze en un NAS de bajo consumo sin cabeza. Mi configuración actual es / en sda0 y /boot en sde0 (una tarjeta CF): necesitaba el /boot por separado porque sd[ad] necesita hacer un spin-up retrasado. Ahora he encontrado un viejo disco IDE de 2.5 "para usar como / incluido /boot para permitirme girar todos los discos grandes hacia abajo.

Lo que probé Básicamente fui

mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot

Entonces lo intenté

chroot /mnt/newroot
update-grub

Pero eso falló con grub preguntando si root estaba montado. Luego hice un intento a /mnt/newroot/grub/grub.cfg configurar /mnt/newroot/grub/grub.cfg para encontrar la imagen del kernel en sdf5 , seguido de grub-install --root-directory=/mnt/newroot /dev/sdf . Pero esto solo me envió un mensaje de rescate de grub cuando intenté arrancar desde sdf .

Mi plan de respaldo es simplemente reinstalar, así que una pregunta adicional (sin marcas de verificación para esta): ¿Qué tengo que hacer para transmitir mi configuración de lvm2 y mdadm? ¿Está todo almacenado en los sistemas de archivos (y se descubrirá automáticamente), o necesito tomarlo yo mismo?

Solución (gracias a Maciej Piechotka): como señala Maciej, necesito un chroot adecuado para que funcionen todas las herramientas de grub. Como referencia, así es como lo hice:

janus@nasguld:/mnt/newroot$ sudo cp -ax / /mnt/newroot
janus@nasguld:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot

Todos los archivos ahora están copiados (vea aquí una discusión sobre las estrategias de copia). Arregle el nuevo etc/fstab para que apunte a la nueva raíz:

janus@nasguld:/mnt/newroot$ diff -u etc/fstab.old  etc/fstab
    -UUID=399b6a6d-c067-4caf-bb3e-85317d66cf46 /     ext3 errors=remount-ro         0 1
    -UUID=b394b614-a977-4860-bbd5-7862d2b7e02a /boot ext3 defaults                  0 2
    +UUID=b9d62595-e95c-45b1-8a46-2c0b37fcf153 /     ext3 noatime,errors=remount-ro 0 1

Finalmente, monte dev , sys y proc en la nueva raíz y chroot:

janus@nasguld:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
janus@nasguld:/mnt/newroot$ sudo mount -t proc none  /mnt/newroot/proc
janus@nasguld:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
janus@nasguld:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on 
janus@nasguld:/mnt/newroot$ sudo chroot .

Ahora estamos conectados a la raíz futura exactamente como se verá. Según Maciej, debería estar bien llamar a grub-install , pero primero hice una update-grub para ver el /boot/grub/grub.cfg generado antes de instalar el gestor de arranque. ¿No estoy seguro de que se actualice automáticamente?

root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb

Respuesta:

Monte sistemas de archivos básicos y copie / modifique archivos mientras hace chroot como:

  • / dev ( mount -o bind /dev/ /path/to/chroot/dev )
  • / proc ( mount -t proc none /path/to/chroot/proc )
  • / sys ( mount -t sysfs none /path/to/chroot/sys )

IIRC que funcionó para mí mientras instalaba Grub 2 en arch y varias veces en Gentoo. Luego, después del comando chroot to /path/to/chroot fue simplemente:

grub-install /dev/<boot_disk>

A partir de lvm2 (y creo que madm pero no lo he usado) la configuración se almacena en el disco. Hay una configuración que debe leerse para descubrir dispositivos. Suponiendo que sus dispositivos estén en ubicaciones estándar ( /dev/sd* o /dev/hd* ), no debería haber ningún problema.


PD. No confiaría en el simple cp del sistema en vivo, ya que hay varios lugares en los que puede salir mal:

  • Olvidé cambiar /etc/fstab y otros archivos útiles
  • Archivos cambiados durante el acceso
  • Hacer frente a la basura ( /tmp etc.)

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım