No soy un experto en grub2 (lo siento), pero intenta agregar --skip-fs-probe
a su línea de instalación de grub, he encontrado que esto impide la creación de /boot/grub/device.map
lo que puede provocar el arranque en un aviso de grub. Creo que sin este parámetro, grub-install, en lugar de hacer lo que le dices, cree que es más inteligente que tú y puede hacer algo diferente.
Otra cosa es asegurarse de que está utilizando la instalación de grub correcta (es decir, para grub2 y no para grub original). Esto no es un problema si está dentro de Centos pero con SystemRecoveryCD ambas versiones están disponibles, por lo que debe usar grub2-install
. Aprendí de la manera difícil...
Y como señaló @wurtel (felicitaciones), debe especificar una unidad, no una partición. Grub2 se instala en el sector 0 de toda la unidad de disco, y este 'código auxiliar' es lo que se ejecuta en el momento del arranque, pero necesita saber dónde se encuentra en el disco, debe instalar los archivos para la siguiente etapa de arranque:esto es lo que dice el --root-directory
el parámetro es para. (Creo.)
Lectura man grub-install
y googleando veo que --root-directory
no está realmente destinado a ser utilizado para las versiones 1.99++ de grub2, aunque en mi experiencia funciona. Debes usar --boot-directory
y consulte el directorio de inicio real, por lo que esto le daría:
grub-install /dev/sdb --skip-fs-probe --boot-directory=/media/new_drive/boot
Así es como moví una instalación de Debian que consiste en una partición de arranque /boot
y una partición raíz /
a una nueva unidad y la hizo arrancable usando GNU GRUB:
Clonar particiones
- Usando el Live CD de GParted, cree la partición de inicio y raíz en la nueva unidad.
- Utilizando una consola raíz en GParted, monte la partición de arranque anterior (digamos que es
/dev/sda1
) y la nueva partición (/dev/sdb1
):mount /dev/sda1 /mnt/oldBoot && mount /dev/sdb1 /mnt/newBoot
- Copie los datos de la partición de arranque anterior a la nueva:
cp -afv /mnt/oldBoot /mnt/newBoot
. Explicación decp -afv
:<último> a
significa "archivo" que significa:- no desreferenciar enlaces
- copiar recursivamente (como
-R
) - preservar todos los atributos (marca de tiempo, propietario, permiso)
f
:fuerza, si no se puede abrir un archivo de destino existente, elimínelo y vuelva a intentarlov
:detallado, explica lo que se está haciendo
cp
progresa- Por seguridad:
umount /mnt/oldBoot && umount /mnt/newBoot
- Monte la partición raíz antigua y la nueva (suponiendo que sea
/dev/sda2
y/dev/sdb2
):mount /dev/sda2 /mnt/oldRoot && mount /dev/sdb2 /mnt/newRoot
- Copie los datos de la antigua partición raíz a la nueva partición raíz:
cp -afv /mnt/oldRoot /mnt/newRoot
-
vi /etc/fstab
-
Notará que aquí se hace referencia a sus antiguas particiones. Utilice los UUID de las nuevas particiones en su lugar
-
Puede insertar temporalmente todos los UUID en fstab para copiar y pegar más fácilmente con
:r !blkid
-
Use los UUID de sus nuevas particiones para cambiar las entradas en fstab. Deberían verse así:
`# <file system> <mount point> <type> <options> <dump> <pass> # Root partition UUID=76fd1ffd-fb96-4ab4-be1a-42f8e9223983 / ext4 errors=remount-ro 0 1 # Boot partition UUID=e560e29e-8752-4b83-b1ee-4b86c0009f0b /boot ext2 defaults 0 2`
- Eliminar la salida de
blkid
de fstab que insertó anteriormente con:r !blkid
- Eliminar la salida de
Instalar GRUB
-
Monte los sistemas de archivos virtuales del CD en vivo de GParted:
mount --bind /dev /mnt/newRoot/dev mount --bind /proc /mnt/newRoot/proc mount --bind /sys /mnt/newRoot/sys
-
Haga que las utilidades de GRUB del Live CD de GParted estén disponibles para la partición raíz:
mount --bind /usr/ /mnt/newRoot/usr
-
Monte la partición de arranque en la partición raíz ya que GRUB almacenará su configuración en
/boot
:mount /dev/sdb1 /mnt/newRoot/boot
-
Usa
chroot /mnt/newRoot
para hacer que la nueva partición raíz sea temporalmente la raíz del sistema de archivos -
Cree un archivo de configuración de GRUB en
/boot/grub/grub.cfg
usandoupdate-grub2
-
Instale GRUB en la nueva unidad:
grub-install /dev/sdb
. No debe especificar un número de partición aquí -
Regrese al sistema de archivos del CD en vivo de GParted:
exit
-
Desmontar particiones:
umount /mnt/newRoot/*
-
Apagar máquina
-
Si tiene varias unidades conectadas, asegúrese de que la unidad más nueva sea la primera en el orden de arranque
-
Iniciar máquina
Estas instrucciones están inspiradas en las de oaktreepeak.com.
Alternativamente, puede probar Clonezilla para lograr lo mismo.