Chainload syslinux da GRUB2 - mostra il menu syslinux.cfg


9

Sto usando un disco USB live di Clonezilla per reinventare i sistemi. In conformità a quanto spiegato in http://clonezilla.org/fine-print-live-doc.php?path=clonezilla-live/doc/99_Misc/00_live-boot-parameters.doc i miei dischi mi suggeriscono il menu contenuto in syslinux.cfgper tutti i sistemi, tranne le più recenti quelli che sono macchine UEFI (e hanno il BIOS configurato per l'avvio da dispositivi UEFI prima) in cui mi viene richiesto con il grub.cfgmenu.

Dato che ho fortemente personalizzato il mio syslinux.cfgmenu, vorrei modificare il grub.cfgfile per caricarlo automaticamente in syslinux in modo da mostrare il syslinux.cfgmenu in tutti i casi.

Ciò è effettivamente possibile? Come?

Sul disco c'è GRUB2 e la mia comprensione (guardandomi intorno su Internet) è che sarà possibile, ma non ho ancora capito come. Qualsiasi aiuto è apprezzato.

Modifica:
Vorrei chiarire che il sistema si avvia usando grub senza problemi selezionando una delle opzioni presenti nel grub.cfgmenu di default come fornito dal download di Conezilla, ma quello che vorrei fare è mostrare il menu di syslinux (in syslinux.cfg) invece del menu predefinito in grub.cfg

Second edit, come l'ho fatto:
Alla fine le soluzioni proposte non hanno funzionato per me, quindi ho semplicemente reso la cartella 'EFI \ boot' "non disponibile" (rinominata); in questo modo l'avvio UEFI non riesce e il sistema si avvia da syslinux come sul vecchio sistema: nessuna modifica al BIOS, nessun nuovo menu, nessun carico di catena ...


Immagino che puoi usare il configfileparametro dentro grub.conf per caricare a catena syslinux.cfg
SHW

Risposte:


1

Ciò suggerisce che si trattava di alcuni bug correlati a questo e di alcune patch, quindi è difficile saperlo con certezza: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/469568

Innanzitutto, se il tuo sistema operativo aggiorna grub, rigenererà grub.cfg e cancellerà la tua configurazione, quindi non modificare /boot/grub.cfg manualmente invece modifica i file in /etc/grub.d (file chiamato come 40_custom o qualcosa del genere) e chiama grub-mkconfig -o /boot/grub/grub.cfg.

Potresti provare qualcosa di semplice come questo:

menuentry "Syslinux root drive" {

set root = (hd1,3)

chainloader +1

}

(hd1,3) è la partizione del disco sdb3, grub supporta l'identificazione da uuid, quindi è possibile creare impostazioni in cui la propria partizione verrà rilevata da tutti i PC. Tuttavia nella mia esperienza a volte questo non è abbastanza.

Potresti anche provare qualcosa del genere chainloader (hd1,3)/path/to/syslinux/isofile.bin

Se tutto fallisce, è possibile eseguire l'avvio da ISO con syslinux, ma sembra che nel tuo caso questa non sia un'opzione.


L'ho provato per la prima volta dalla riga di comando di grub (premere c una volta in grub), ho identificato la mia partizione syslinux.cfg e ho provato direttamente 'chainloader (hd0, msdos2) +1' ma ho ricevuto l'errore 'percorso del file EFI non valido'. Si noti che il contenuto della partizione sopra dos non contiene alcun file .bin. (Ho anche modificato la domanda per maggiore chiarezza)
rodedo

Probabilmente no, il suo nome e l'estensione del formato binario (.bin) dipendono dalla distro (i cd live di solito hanno bin per essere in grado di avviarsi con syslinux e isolinux, ma nel tuo caso è probabilmente un file .bs, guarda qui per i comandi syslinux.org/wiki/index.php/SYSLINUX#LABEL_command ). Tuttavia ora sto cercando una cosa: non avviare il kernel direttamente con il modulo casper (aka modalità live cd / live usb) non esegue il suo menu bootloader. Dopo pochi minuti scriverò i risultati.
IBr

OK, vedo che i candidati sono i file .c32 che ho in quella cartella. Più precisamente questo è il contenuto della cartella: 'chain.c32', 'menu.c32', 'reboot.c32', 'vesamenu.c32', 'memdisk', 'syslinux.cfg' <br> escluso il file cfg , devo provare l'altro a uno? Guardandomi intorno ho capito che la catena32 dovrebbe essere usata per il chailoide nell'altra direzione (quindi non quello di cui ho bisogno), sbaglio?
rodedo,

Ben chiamare casper non invoca il menu del bootloader. Non ho idea di come archiviarlo. Se questo mi aiutasse, ho il mio esempio di grub chainloading su grub, ma dubito che abbia qualche utilità con syslinux:menuentry 'Archlinux The Latest' { insmod ext2 set root=(hd0,6) multiboot /boot/grub/i386-pc/core.img }
IBr

0

Dopo 4 anni ... :)

Prova questo:

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

1
Si prega di elaborare un po 'e spiegare perché questo risolve il problema.
contromodale

-1

è necessario eseguire un'installazione della directory anziché un'installazione del settore di avvio. se si esegue un'installazione del settore di avvio, dd i primi 512 byte della partizione in un file e il chainload in quel file. ha funzionato per me.


Questo può essere corretto, ma potrebbe trarre vantaggio da un po 'di spiegazioni su come eseguire i passaggi descritti (e dalla corretta capitalizzazione).
Caleb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.