¿Alguien tiene una 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 tuve 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 baja potencia sin cabeza. Mi configuración actual está /
encendida sda0
y /boot
encendida sde0
(una tarjeta CF): necesitaba la separación /boot
porque sd[a-d]
necesitaba hacer una rotación retardada. Ahora he encontrado un viejo disco IDE de 2.5 "para usar como /
incluido /boot
para permitirme girar todos los discos grandes.
Lo que he intentado Básicamente fui
mount -o rw /dev/sdf5 /mnt/newroot
cp -ax / /mnt/newroot
cp -ax /boot /mnt/newroot/boot
Entonces intenté
chroot /mnt/newroot
update-grub
Pero eso falló cuando grub preguntó si la raíz estaba montada. Luego hice un intento poco entusiasta de configurar /mnt/newroot/grub/grub.cfg
para encontrar la imagen del kernel sdf5
, seguido de a grub-install --root-directory=/mnt/newroot /dev/sdf
. Pero esto me dio un mensaje de rescate cuando intenté arrancar sdf
.
Mi plan de copia de seguridad es simplemente reinstalar, así que una pregunta adicional (sin marcas de verificación para esta): ¿Qué debo hacer para obtener mi configuración de lvm2 y mdadm? ¿Está todo almacenado en los sistemas de archivos (y se descubrirá automáticamente) o necesito sacarlo yo mismo?
Solución (gracias a Maciej Piechotka): Como señala Maciej, necesito un chroot adecuado para que todas las herramientas de grub funcionen. 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 se copian (ver aquí para una discusión de estrategias de copia). Arregle el nuevo etc/fstab
para apuntar a una 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
a 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 en la raíz del futuro exactamente como se verá. Según Maciej, debería estar bien simplemente llamar grub-install
, pero hice un update-grub
primer intento para ver el generado /boot/grub/grub.cfg
antes de instalar el gestor de arranque. ¿No estoy seguro de que se actualizará automáticamente?
root@nasguld:/# update-grub
root@nasguld:/# grub-install /dev/sdb
/etc/fstab
en el chroot
(esto sería consistente con update-grub
quejarse de que "\ no está montado"). Si volviera a hacer esto, lo intentaría primero sin molestarme en montar los sistemas de archivos especiales en el chroot.
/etc/default/grub
y la transcripción exacta deupdate-grub
.