Chainload syslinux de GRUB2 - afficher le menu syslinux.cfg


9

J'utilise un disque USB Clonezilla live pour réimager des systèmes. Conformément à ce qui est expliqué dans http://clonezilla.org/fine-print-live-doc.php?path=clonezilla-live/doc/99_Misc/00_live-boot-parameters.doc mes disques m'invite avec le menu contenu dans syslinux.cfgtous les systèmes , sauf les plus récentes qui sont des machines UEFI (et ont le BIOS configuré pour démarrer à partir de périphériques UEFI premier) où je suis invité avec le grub.cfgmenu.

Étant donné que j'ai fortement personnalisé mon syslinux.cfgmenu, je voudrais modifier le grub.cfgfichier pour ne charger automatiquement que syslinux afin d'afficher le syslinux.cfgmenu dans tous les cas.

Est-ce possible? Comment?

Sur le disque il y a GRUB2 et ma compréhension (en regardant autour d'Internet) est que ce sera possible, mais je n'ai pas encore compris comment. Toute aide est appréciée.

Edit:
je tiens à préciser que le système démarre avec grub sans problème en sélectionnant l'une des options qui sont dans le grub.cfgmenu par défaut comme fourni par le téléchargement de Conezilla, mais ce que je voudrais faire est d'afficher le menu de syslinux (in syslinux.cfg) au lieu du menu par défaut dans grub.cfg

Second edit, comment je l'ai fait:
Au final, les solutions proposées n'ont pas fonctionné pour moi, j'ai donc simplement rendu le dossier 'EFI \ boot' "indisponible" (renommé); de cette façon, le démarrage UEFI échoue et le système démarre à partir de syslinux comme sur l'ancien système: pas de modification du BIOS, pas de nouveau menu, pas de chargement de chaîne ...


Je suppose que vous pouvez utiliser le configfileparamètre à l'intérieur de grub.conf pour charger en chaîne le syslinux.cfg
SHW

Réponses:


1

Cela suggère qu'il s'agissait de bogues liés à cela et de correctifs, il est donc difficile de savoir avec certitude: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/469568

Tout d'abord, si votre système d'exploitation met à jour grub, il régénérera grub.cfg et effacera votre configuration, donc ne modifiez pas /boot/grub.cfg manuellement à la place, modifiez les fichiers dans /etc/grub.d (fichier nommé comme 40_custom ou quelque chose comme ça) et appeler grub-mkconfig -o /boot/grub/grub.cfg.

Vous pouvez essayer quelque chose de simple comme ceci:

menuentry "Syslinux root drive" {

définir racine = (hd1,3)

chargeur de chaîne +1

}

(hd1,3) est une partition de disque sdb3, grub prend en charge l'identification par uuid, de sorte qu'il est possible de créer une configuration dans laquelle votre partition serait détectée par tous les PC. Cependant, selon mon expérience, cela ne suffit parfois pas.

Vous pouvez également essayer quelque chose comme chainloader (hd1,3)/path/to/syslinux/isofile.bin

Si tout échoue, il est possible de démarrer à partir d'iso avec syslinux, mais il semble que dans votre cas ce ne soit pas une option.


J'ai d'abord essayé cela à partir de la ligne de commande grub (appuyez une fois sur c dans grub), j'ai identifié ma partition syslinux.cfg et essayé directement 'chainloader (hd0, msdos2) +1' mais j'obtiens l'erreur 'chemin de fichier EFI invalide'. Veuillez noter que le contenu de la partition ci-dessus ne contient aucun fichier .bin. (J'ai également édité la question pour plus de clarté)
rodedo

Ce n'est probablement pas le cas, son nom et son extension au format binaire (.bin) dépendent de la distribution (les cd live ont généralement bin pour pouvoir démarrer avec syslinux et isolinux, mais dans votre cas c'est probablement un fichier .bs, regardez ici pour les commandes syslinux.org/wiki/index.php/SYSLINUX#LABEL_command ). Cependant, je recherche maintenant une chose: ne démarre pas le noyau directement avec le module casper (aka live cd / live usb mode) ne lance pas son menu bootloader. Après quelques minutes, j'écrirai les résultats.
IBr

OK, je vois que les candidats sont les fichiers .c32 que j'ai dans ce dossier. Plus précisément, c'est le contenu du dossier: 'chain.c32', 'menu.c32', 'reboot.c32', 'vesamenu.c32', 'memdisk', 'syslinux.cfg' <br> à l'exclusion du fichier cfg , dois-je essayer l'autre un par un? En regardant autour de moi, j'ai compris que la chaîne32 était censée être utilisée pour chauler dans l'autre sens (donc pas ce dont j'ai besoin), je me trompe?
rodedo

Bien appeler casper n'invoque pas le menu du chargeur de démarrage. Je ne sais pas comment l'archiver. Si cela peut aider, j'ai mon propre exemple de grub chainloading à grub, mais je doute qu'il ait une quelconque utilité avec syslinux:menuentry 'Archlinux The Latest' { insmod ext2 set root=(hd0,6) multiboot /boot/grub/i386-pc/core.img }
IBr

0

Après 4 ans ... :)

Essaye ça:

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

1
Veuillez élaborer un peu et expliquer pourquoi cela résout le problème.
contre-mode

-1

vous devez faire une installation de répertoire au lieu d'une installation de secteur de démarrage. si vous effectuez une installation du secteur de démarrage, dd les 512 premiers octets de la partition dans un fichier et chargez la chaîne dans ce fichier. travaillé pour moi.


Cela peut être correct, mais il pourrait bénéficier d'un peu d'explication sur la façon de suivre les étapes décrites (et d'une capitalisation appropriée).
Caleb
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.