[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 10/Buster --> 11/Bulleye



Le 27/09/2022 à 12:24, Alain Vaugham a écrit :
Avant de réinstaller - juste pour le fun - j'aimerai bien mettre un peu
les mains dans le camboui pour apprendre à chrooter un disque. Je ne
l'ai jamais fait. Apparemment c'est une occasion. Si en plus ça règle
le problème alors bingo.

Je vais suivre ce tuto:
https://www.linuxtricks.fr/wiki/chrooter-un-systeme-linux
Ca a l'air bien, mais c'est pas exactement comme ca que je fais. Alors je vais aussi te dire comment je fais. Je me suis grandement inspiré de
https://www.system-rescue.org/disk-partitioning/Repairing-a-damaged-Grub/

D'abord il faut booter sur un système live avec le meme nombre de bits : on ne choote pas sur un systeme 64 bits avec un noyau 32 bits et vice versa. Si le système sur lequel tu veux chrooter est 64 bits, alors il te faut booter sur un système live qui a un noyau 64 bits. Perso, j'aime bien SystemRescue pour faire ce genre de trucs mais une autre distrib live fera aussi très bien l'affaire.

Mettons que le disque sur lequel tu veux chrooter soit /dev/sda avec :
- une partition EFI /dev/sda1
- une partition swap /dev/sda2
- une partition système /dev/sda3
- une partition home /dev/sda4

Pour reinstaller grub on a pas besoin ni de la swap ni de home. Je monte donc la partition système dans un dossier dédié dans le dossier /mnt :
mkdir /mnt/racine
mount /dev/sda3 /mnt/racine

Je monte les dossiers /dev /sys et /proc sur les dossiers correspondants du systeme a chrooter :
mount -o rbind /proc /mnt/racine/proc
mount -o rbind /dev /mnt/racine/dev
mount -o rbind /sys /mnt/racine/sys

Dans le cas d'un système avec EFI, donc avec grub-efi-amd64 a la place de grub-pc, il faut utiliser l'option rbind et non pas bind sinon grub plante. Pour plus de détails voir par la :
https://unix.stackexchange.com/questions/693101/reinstall-grub-grub-install-warning-efi-variables-are-not-supported-on-this-s

Ensuite le chroot proprement dit :
chroot /mnt/racine /bin/bash
La le prompt est différent, c'est donc qu'on est dans le système chrooté.

Toujours dans le cas d'un système EFI, il faut monter la partition EFI sur /boot/efi :
mount /dev/sda1 /boot/efi
On peut aussi faire plus simplement mount -a, ce qui va monter tout ce qui est dans le fstab, y compris la partition EFI et avec les bonnes options. Attention par contre ca va monter d'autres trucs, a commencer par /home et il faudra penser a les démonter avant de sortir du chroot.

On peut alors reinstaller grub :
grub-install /dev/sda
update-grub

Démonter tout ce qui a été monté dans le chroot :
umount /boot/efi
ainsi que les autres trucs éventuellement montés.
Ou plus simplement :
umount -a
J'aime bien vérifier que tout s'est bien démonté avec :
mount

Sortir du chroot avec :
exit

Démonter tout ce qui a été monté, attention a cause de l'option rbind il faut faire dans l'ordre :
umount /mnt/racine/dev/pts
umount /mnt/racine/dev
umount /mnt/racine/proc
umount /mnt/racine/sys
umount /mnt/racine

Si t'a des problèmes pour démonter :
umount -d -f -l <point montage récalcitrant>
et faire un reboot de la machine rapidement.


Reply to: