Esto realmente me está deprimiendo. Tengo Gentoo y Ubuntu, ambos con Grub2. Gentoo tiene una /boot
partición dedicada , mientras que Ubuntu no. Tengo un menuentry
Gentoo /etc/grub.d/40_custom
para arrancar Ubuntu (y Ubuntu arranca bien).
Debido a que Ubuntu viene con Grub, quiero cargar en cadena en ese, en lugar de mantener mi entrada que establece la raíz, el núcleo, initrd y otras cosas. Esto es lo que tengo para el cargador de cadenas (Ubuntu está encendido /dev/sda4
y ya instalé Grub allí):
menuentry 'Chainloader' {
insmod chain
set root=(hd0,4)
chainloader +1
}
Me está dando error: Invalid signature
y no encontré ninguna solución disponible. ¿Alguien puede señalar algo?
Este es el resultado de </dev/sda4 head -c 512 | hd
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
Este es el resultado de fdisk -l
. /dev/sda1
es /boot
de Gentoo, Gentoo está adentro /dev/sda2
, Ubuntu está adentro /dev/sda4
. Ubuntu también /boot
está adentro /dev/sda4
.
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe001152b
Device Boot Start End Blocks Id System
/dev/sda1 1 9 72261 83 Linux
/dev/sda2 10 13064 104864287+ 8e Linux LVM
/dev/sda4 * 18152 19457 10490445 83 Linux
No hay error con grub-install /dev/sda4 --no-floppy --force
/usr/sbin/grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea..
/usr/sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.
/dev/sda4
. ¿Tienes más de un disco? ¿Cuál es tu mesa de partición? Por favor, publique el resultadofdisk -l
y los mensajes degrub-install /dev/sda4 --no-floppy --force
.Respuestas:
Puede cargar GRUB2 en cadena desde GRUB2, lo probé de la manera que describió y funciona. Sin embargo, la información que proporcionó hace que parezca que la imagen de arranque no se incrustó en el MBR del disco (o no sería todo ceros).
Intentaría esto, aunque no está usando exactamente el GRUB2 de Ubuntu (solo es el archivo de configuración). Puede crear una entrada de menú en el archivo de configuración Gentoo GRUB2 que carga el archivo de configuración de Ubuntu. Hay dos formas en que veo hacer esto.
El que usaría es con el comando normal , que le permite especificar un archivo de configuración para cargar en modo normal. Si sigue esta ruta, hay un comando llamado normal_exit que puede agregar como elemento personalizado en su configuración de Ubuntu que le permitiría volver a su configuración de Gentoo.
La otra opción es el comando configfile , que le permite especificar un archivo de configuración alternativo para cargar. Sin embargo, parece que sería más difícil "retirarse" de esta opción.
Puede encontrar más información sobre estos comandos aquí .
fuente
La parte inicial del proceso de arranque consiste en cargar el código del primer sector del disco duro, el denominado Master Boot Record (MBR) . Normalmente, Grub se escribe en este primer sector del disco duro y no en el primer sector de la partición de retención / arranque. Sin embargo, normalmente puede cambiar esto durante la instalación de Linux, pero en las rutinas de instalación modernas, esto a menudo está oculto.
Dices que tienes Grub instalado en / dev / sda4, sin embargo, tu configuración parece correcta y el mensaje de error que publicaste sugiere que Grub podría no estar instalado correctamente en la partición que deseas cargar en cadena. Debería arrancar en Gentoo, luego hacer chroot en la partición de Ubuntu. ¡Asegúrese de que / boot ahora apunte correctamente al Ubuntu- / boot y no al Gentoo! Ahora instalar Grub 2 en el primer sector de la partición de Ubuntu-/ dev / sda4:
grub-install /dev/sda4 --no-floppy
.Como siempre al jugar con MBR y particiones, asegúrese de tener una copia de seguridad funcional y actualizada antes de comenzar.
fuente
/dev/sda4
(los dos últimos bytes deben ser0x55 0xaa
). ¿Podría publicar la salida de</dev/sda4 head -c 512 | hd
?grub-install /dev/sda4 --no-floppy --force
, de lo contrario, habrá algunas quejas sobre las listas de bloqueo¿No va a estar sda4 (hd0,3) en grub, o este tipo de cosas ha cambiado en grub2?
fuente