Chainload syslinux de GRUB2 - muestra el menú syslinux.cfg


9

Estoy usando un disco USB vivo de Clonezilla para volver a crear imágenes de los sistemas. De acuerdo con lo que se explica en http://clonezilla.org/fine-print-live-doc.php?path=clonezilla-live/doc/99_Misc/00_live-boot-parameters.doc mis discos me muestran el menú que contiene en syslinux.cfgpara todos los sistemas excepto los más recientes los que son máquinas UEFI (y haber configurado el BIOS para arrancar desde dispositivos UEFI primero), donde se me solicita con el grub.cfgmenú.

Dado que personalicé mucho mi syslinux.cfgmenú, me gustaría modificar el grub.cfgarchivo para que solo se cargue automáticamente en cadena a syslinux para mostrar el syslinux.cfgmenú en todos los casos.

¿Es esto posible en absoluto? ¿Cómo?

En el disco hay GRUB2 y mi comprensión (de mirar alrededor en Internet) es que será posible, pero aún no entendí cómo. Cualquier ayuda es apreciada.

Editar:
me gustaría aclarar que el sistema arranca usando grub sin problemas al seleccionar cualquiera de las opciones que están en el grub.cfgmenú de forma predeterminada según lo dispuesto por la descarga de Conezilla, pero lo que me gustaría hacer es mostrar el menú de syslinux (en syslinux.cfg) en lugar del menú predeterminado en grub.cfg

Segunda edición, cómo lo hice:
al final, las soluciones propuestas no funcionaron para mí, así que simplemente hice que la carpeta 'EFI \ boot' no estuviera disponible (la renombré); de esta manera, el arranque UEFI falla y el sistema arranca desde syslinux como en el sistema anterior: sin modificación del BIOS, sin menú nuevo, sin carga en cadena ...


Supongo que puede usar el configfileparámetro dentro de grub.conf para cargar en cadena el syslinux.cfg
SHW

Respuestas:


1

Esto sugiere que hubo algunos errores relacionados con eso y algunos parches, por lo que es difícil saberlo con certeza: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/469568

Primero, si su sistema operativo actualiza grub, regenerará grub.cfg y borrará su configuración, así que no modifique /boot/grub.cfg manualmente en su lugar, modifique los archivos en /etc/grub.d (archivo llamado como 40_custom o algo así) y llama grub-mkconfig -o /boot/grub/grub.cfg.

Podrías probar algo simple como esto:

menuentry "unidad raíz Syslinux" {

establecer root = (hd1,3)

cargador de cadena +1

}

(hd1,3) es una partición de disco sdb3, grub admite la identificación por uuid, por lo que es posible crear una configuración en la que todas las PC detectarían su partición. Sin embargo, en mi experiencia, a veces esto no es suficiente.

También podrías probar algo como chainloader (hd1,3)/path/to/syslinux/isofile.bin

Si todo falla, es posible arrancar desde iso con syslinux, pero parece que en su caso esto no es una opción.


Primero probé esto desde la línea de comandos de grub (presioné c una vez en grub), identifiqué mi partición syslinux.cfg e intenté 'chainloader (hd0, msdos2) +1' directamente pero recibí el error 'ruta de archivo EFI no válida'. Tenga en cuenta que el contenido de la partición anterior no contiene ningún archivo .bin. (También
edité

Probablemente no, su nombre y extensión de formato binario (.bin) depende de la distribución (los cd en vivo generalmente tienen bin para poder arrancar con syslinux e isolinux, pero en su caso probablemente sea un archivo .bs, mire aquí para ver los comandos syslinux.org/wiki/index.php/SYSLINUX#LABEL_command ). Sin embargo, ahora estoy investigando una cosa: el arranque del kernel directamente con el módulo casper (también conocido como modo live cd / live usb) no ejecuta su menú del cargador de arranque. Después de unos minutos escribiré los resultados.
IBr

OK, veo que los candidatos son los archivos .c32 que tengo en esa carpeta. Más concretamente, este es el contenido de la carpeta: 'chain.c32', 'menu.c32', 'reboot.c32', 'vesamenu.c32', 'memdisk', 'syslinux.cfg' <br> excluyendo el archivo cfg ¿Debo probar el otro uno por uno? Mirando a mi alrededor, entendí que se supone que la cadena32 debe usarse para desplazarse en la otra dirección (así que no es lo que necesito), ¿me equivoco?
rodedo

Bueno, llamar a Casper no invoca el menú del gestor de arranque. No tengo idea de cómo archivar esto. Si eso ayudara, tengo mi propio ejemplo de grub chainloading para grub, pero dudo que tenga algún uso con syslinux:menuentry 'Archlinux The Latest' { insmod ext2 set root=(hd0,6) multiboot /boot/grub/i386-pc/core.img }
IBr

0

Después de 4 años ... :)

Prueba esto:

menuentry 'menuentry' {
    set root=(hd0,1)
    syslinux_source /path/isolinux/isolinux.bin
    syslinux_configfile /path/isolinux/isolinux.cfg
}

1
Explique un poco y explique por qué esto resuelve el problema.
contramode

-1

tienes que hacer una instalación de directorio en lugar de una instalación del sector de arranque. si realiza una instalación del sector de arranque, dd los primeros 512 bytes de la partición a un archivo y cargar en cadena a ese archivo. trabajó para mi.


Esto puede ser correcto, pero podría beneficiarse de un poco de explicación sobre cómo seguir los pasos descritos (y de una capitalización adecuada).
Caleb
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.