arthur.bebou

Le site arthur.bebou.netlib.re - retour accueil

git clone git://bebou.netlib.re/arthur.bebou
Log | Files | Refs |

commit b8645202c2253aed07be2e8a7f608c68933d1333
parent 48c92ef5d3c15ca2354a4109efd1ae6bea1e3c19
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Fri,  7 Feb 2025 10:53:54 +0100

Ajout d'un article sur grub

Pour futur usage

Diffstat:
Acontents/boot-grub/index.sh | 84+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 84 insertions(+), 0 deletions(-)

diff --git a/contents/boot-grub/index.sh b/contents/boot-grub/index.sh @@ -0,0 +1,84 @@ +#! page +title: Comment booter sur un linux depuis un shell grub +author: Arthur Pons +description: Avec une partition chiffrée sinon c\'est trop facile +publication: 2025-02-07 + +sectionmd: main +Cet article est entièrement pompé de +[celui-ci](https://www.linuxfoundation.org/blog/blog/classic-sysadmin-how-to-rescue-a-non-booting-grub-2-on-linux) +avec quelques ajouts. + +## Identifier les disques + +Comme dans un shell normal unix, `ls` permet de lister des fichiers, ou ici des disques : + + grub> ls + (proc) (hd0,gpt1) (hd0,gpt2) (hd0,gpt3) ... + +## Trouver le kernel et l'initrd + +Il va d'abord falloir identifier sur quel disque se trouve le kernel que l'on +veut utiliser. Pour cela il faut regarder dans chaque partition de disque +jusqu'à ce que l'on trouve un fichier nommé `vmlinuz-blablabla`. Personnellement je le trouve dans la deuxième partition de mon SSD : + + grub> ls (hd0,gpt2)/ + ... + vmlinuz-3-... + initrd + ... + +Chez moi l'initrd correspondant, avec les même numéros de version que le fichier `vmlinuz` est au même endroit. + +## Booter + +Trois commandes sont nécessaires avant de booter. La première identifie le +kernel à utiliser et le "device" à monter pour en faire votre système de +fichier. Dans l'article cité au début il est dit que ce device correspond à la +partition dans laquelle on a trouvé le kernel et l'initrd selon la règle +suivante : + + |,gpt1|,gpt2|,gpt3| +---|----|----|---- +hd0|sda1|sda2|sda3 +hd1|sdb1|sdb2|sdb3 +hd2|sdc1|sdc2|sdc3 + +A noter que les partitions peuvent apparemment ne comporter que des numéros +(hd0,1) au lieu de (hd0,gpt1). La même logique s'applique. + +Donc mon device devrait être `/dev/sda2`. Sauf que mon disque est chiffré et il faut s'adapter. J'ai fait toute la procédure comme indiqué dans l'article source ce qui m'a permis de passer l'étape du déchiffrement. A partir de là une erreur s'est produite puisque `/dev/sda2` ne contenait pas mon système de fichier. J'ai utilisé le shell busybox qui nous est donné à ce moment là pour constater que dans `/dev` se trouvait un device un peu particulier : + + >ls /dev + ... + arthur-dnum-vg + ... + +Ce dosser est créé au déchiffrement. A l'intérieur se trouvait deux devices, +`root` avec mes fichiers et `swap` pour une partition de swap. C'est donc +`/dev/arthur-dnumèvg/root` qu'il fallait indiquer au grub shell. + +Après un redémarrage, de retour dans le grub shell, on fait : + + >grub set root=(hd0,gpt2) + >grub linux /vmlinuz.... root=/dev/arthur-dnum/vg/root + >grub initrd /initrd.... + >grub boot + +Et tout boot comme il faut ! :) + +## Corriger la configuration grub + +Il faudrait faire un + + sudo grub-update + +puis + + sudo grub-install /dev/sda + +si le disque avec le kernel était hd0 et donc `/dev/sda`. +Personnellement ça n'a pas fonctionné, je creuse encore. + + +