GNU/Linux >> Tutoriales Linux >  >> Debian

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

¿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 solo confunde todos los scripts).

Antecedentes Estoy ejecutando Debian Squeeze en un NAS de bajo consumo sin periféricos. Mi configuración actual es / en sda0 y /boot en sde0 (una tarjeta CF):necesitaba el /boot separado porque sd[a-d] necesita hacer un centrifugado retrasado. Ahora encontré un viejo disco IDE de 2.5″ para usar como / incluyendo /boot para permitirme girar todos los discos grandes hacia abajo.

Lo que he probado Básicamente fui

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

Entonces probé

chroot /mnt/newroot
update-grub

Pero eso falló con grub preguntando si root estaba montado.
Luego hice un intento poco entusiasta de configurar /mnt/newroot/grub/grub.cfg para encontrar la imagen del núcleo 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 copia de seguridad es simplemente reinstalar, por lo que una pregunta extra (no hay marcas de verificación para esta):¿Qué tengo que hacer para que mi configuración de lvm2 y mdadm se transmita? ¿Está todo almacenado en los sistemas de archivos (y se descubrirá automáticamente), o debo 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:

[email protected]:/mnt/newroot$ sudo cp -ax / /mnt/newroot
[email protected]:/mnt/newroot$ sudo cp -ax /boot /mnt/newroot

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

[email protected]:/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:

[email protected]:/mnt/newroot$ sudo mount -o bind /dev /mnt/newroot/dev
[email protected]:/mnt/newroot$ sudo mount -t proc none  /mnt/newroot/proc
[email protected]:/mnt/newroot$ sudo mount -t sysfs none /mnt/newroot/sys
[email protected]:/mnt/newroot$ sudo parted /dev/sdb set 5 boot on 
[email protected]:/mnt/newroot$ sudo chroot .

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

[email protected]:/# update-grub
[email protected]:/# grub-install /dev/sdb

Respuesta aceptada:

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 de chroot a /path/to/chroot el comando fue simplemente:

grub-install /dev/<boot_disk>

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

Relacionado:¿Crear un archivo como un usuario y grupo diferente?

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

  • Olvidé cambiar /etc/fstab y otros archivos útiles
  • Archivos cambiados durante el acceso
  • Basura de afrontamiento (/tmp etc)

Debian
  1. Lanzamiento de Debian 10 (Buster):nuevas características

  2. Lanzamiento de Debian 8 Jessie – ¿Qué hay de nuevo?

  3. Restablecer una contraseña raíz olvidada en Debian 10 / Debian 11

  4. Cómo instalar TYPO3 en Debian 9

  5. ¿Cómo instalar GRUB en una nueva unidad?

Cómo iniciar el archivo ISO de Debian desde el disco duro con GRUB2

Cómo instalar Joomla en Debian 8

Cómo instalar osCommerce en Debian 8

Cómo instalar Joomla en Debian 9

Cómo instalar Textpattern en Debian 9

Novedades en Debian 11 "Bullseye"