Thursday, March 27, 2025

/boot/grub/oops.cfg

Une petite manip' de travers et je me suis retrouvé avec une machine multiboot automatisée qui ne bootait plus du tout. just un "grub2>" tout seul ... en général, je finis par retomber sur mes pattes dans ce genre de situation, mais cette fois-ci, même un simple "help" virait au "help.mod not found" ... Eh oui, il a bien changé, le monde des secteurs boots... le bootloader est un fichier comme un autre dans le répertoire /EFI d'un disque particulier. il charge des annexes venant d'autres fichiers comme les autres, et il peut aller les prendre avec l'un ou l'autre système de fichiers ...

Parce que oui, au moment d'utiliser la commande grub2-install --efi-directory=/boot/efi --boot-directory=/where/you/want/it/to/be ..., l'outil d'installation va regarder quel type de fichier est utilisé par le boot-directory et placer un grub.efi intégrant xfs ou fat ou (pourquoi pas) reiserfs ... 

Bonne nouvelle, par contre, les modules permettant d'accéder aux différents systèmes de fichiers sont tout de même disponibles, et la commande search --no-floppy --fs-uuid --set=VARNAME UUID_GOES_HERE marche toujours. Mais je tournais en rond jusqu'à ce que je note un set prefix=(hd0,gpt5)/boot/grub2 ... j'essaie quelques autres gpt (la table de partition, pas le chat) pour finalement tomber sur celle qui marche. Hourrah! Je peux enfin retrouver les fichiers vmlinuz et initrd ... je peux lire le fichier /boot/loader/entries/*.conf correspondant à ce que je veux démarrer pour copier-coller les uuid à travers l'interface chaise/clavier et au bout de 2 ou 3 erreurs (où le noyau linux s'est retrouvé sans système de fichier et ou j'ai préféré rebooter plutôt que de m'acharner avec des mount /dev/nvme0n1p5 /), j'ai mon linux de nouveau d'attaque... Ah parce que oui, menuentry, c'est bon pour les OS étrangers. Les entrées du genre "démarrer le système", "démarrer avec le kernel précédent" et "démarrer en mode opération de sauvetage avec Lino Commando", on a droit à des fichiers séparés que blscfg (encore un autre module, suivant les BootLoaderSpec) va passer en revue.

j'aurais probablement pu me simplifier la vie en exécutant export $prefix ; configfile $prefix/grub.cfg une fois le "chemin d'accès à grub.cfg" corrigé, mais ça, je ne l'ai découvert que trop tard ^^"

Bien, donc j'ai pu depuis mon système redémarré revenir à un système fonctionnel à coup de grub2-mkconfig et grub2-install, mais du coup, je perdais ma tentative de modifier l'OS à booter depuis n'importe quel OS en ré-installant grub sur une partition partagée ... et rien à faire, pas moyen de trouver où était la définition de cette variable prefix ... Mais j'avais vu un truc intéressant: la présence d'une commande source FILENAME suggérant qu'on pourrait aller lire un fichier .cfg minimal sur la partition partagée et garder grub tranquillement là où il est censé être.

No comments: