Partition boot remplie sur Debian 13
Ma partition boot s'est remplie. Une mise à jour avec un nouveau noyau n'a pas pu se faire correctement et quand j'essaye de démarrer, je me retrouve dans “grub rescue”…
error: file '/grub/i386-pc/bufio.mod' not found. grub rescue>
J'ai booté sur une clé usb que j'avais sous la main (fedora workstation live).
À partir de là, je peux avoir un terminal complet, un clavier bien configuré (et pas un qwerty dans un terminal ultra limité de grub rescue…). L'objectif va être de nettoyer la partition grub mais aussi de chroot sur mon installation pour pouvoir relancer une mise à jour et réparer ce qui doit l'être.
$ sudo -i # blkid (partitions de la clé usb) /dev/sda5: ... #partition principale chiffrée /dev/sda1: ... #partition boot
(Note: On peut aussi utiliser lsblk ou fdisk pour voir les partitions.)
Bon, maintenant, faut les monter ces partitions. Je vais suivre les instructions de ce tutoriel.
# mkdir /rescue # mount /dev/sda5 /rescue/ mount: /rescue: unknown filesystem type 'crypto_LUKS' root@localhost-live:/rescue# cryptsetup luksOpen /dev/sda5 sda5_crypt Enter passphrase for /dev/sda5: root@localhost-live:/rescue# ls -l /dev/mapper/ total 0 lrwxrwxrwx. 1 root root 7 Jun 5 08:07 betula--vg-root -> ../dm-1 lrwxrwxrwx. 1 root root 7 Jun 5 08:07 betula--vg-swap_1 -> ../dm-2 crw-------. 1 root root 10, 236 Jun 5 07:41 control lrwxrwxrwx. 1 root root 7 Jun 5 08:07 data -> ../dm-0 root@localhost-live:/rescue# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 2.3G 1 loop /run/rootfsbase sda 8:0 0 447.1G 0 disk ├─sda1 8:1 0 487M 0 part ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 446.7G 0 part └─data 252:0 0 446.6G 0 crypt ├─betula--vg-root 252:1 0 445.7G 0 lvm └─betula--vg-swap_1 252:2 0 980M 0 lvm sdb 8:16 1 14.6G 0 disk ├─sdb1 8:17 1 2.6G 0 part /run/initramfs/live └─sdb2 8:18 1 30M 0 part sr0 11:0 1 1024M 0 rom zram0 251:0 0 8G 0 disk [SWAP] root@localhost-live:/rescue# mount -t ext4 -o noatime /dev/mapper/betula--vg-root /rescue root@localhost-live:/rescue# ls /rescue/ bin boot dev etc home initrd.img initrd.img.old lib lib64 lost+found media mnt opt proc root run sbin snap srv sys tmp usr var vmlinuz vmlinuz.old root@localhost-live:/rescue# mount /dev/sda1 /rescue/boot/ root@localhost-live:/rescue# ls /rescue/boot/ config-6.1.0-27-amd64 config-6.12.90+deb13-amd64 lost+found System.map-6.12.86+deb13-amd64 vmlinuz-6.12.74+deb13+1-amd64 config-6.1.0-28-amd64 grub System.map-6.1.0-27-amd64 System.map-6.12.90+deb13-amd64 vmlinuz-6.12.86+deb13-amd64 config-6.12.74+deb13+1-amd64 initrd.img-6.12.86+deb13-amd64 System.map-6.1.0-28-amd64 vmlinuz-6.1.0-27-amd64 vmlinuz-6.12.90+deb13-amd64 config-6.12.86+deb13-amd64 initrd.img-6.12.90+deb13-amd64 System.map-6.12.74+deb13+1-amd64 vmlinuz-6.1.0-28-amd64 root@localhost-live:/boot# rm System.map-6.1.0-2* root@localhost-live:/boot# rm System.map-6.12.74+deb13+1-amd64 root@localhost-live:/boot# rm config-6.1.0-2* root@localhost-live:/boot# rm config-6.12.74+deb13+1-amd64 root@localhost-live:/boot# rm vmlinuz-6.1.0-2* root@localhost-live:/boot# rm vmlinuz-6.12.74+deb13+1-amd64 root@localhost-live:/boot# df -h /rescue/boot/ Filesystem Size Used Avail Use% Mounted on /dev/sda1 455M 268M 163M 63% /boot root@localhost-live:/# mount -t proc proc /rescue/proc/ root@localhost-live:/# mount -t sysfs sys /rescue/sys/ root@localhost-live:/# mount -o bind /dev/ /rescue/dev/ root@localhost-live:/# mount -t devpts pts /rescue/dev/pts/ root@localhost-live:/# chroot /rescue/
Les commandes à copier/coller :
sudo -i mkdir /rescue cryptsetup luksOpen /dev/sda5 sda5_crypt mount -t ext4 -o noatime /dev/mapper/betula--vg-root /rescue mount /dev/sda1 /rescue/boot/; mount -t proc proc /rescue/proc/; mount -t sysfs sys /rescue/sys/; mount -o bind /dev/ /rescue/dev/; mount -t devpts pts /rescue/dev/pts/ chroot /rescue/
Maintenant on peut réparer !
# apt update # apt upgrade The following packages were automatically installed and are no longer required: libsdl-ttf2.0-0 libwoff1 linux-headers-6.12.74+deb13+1-amd64 linux-headers-6.12.74+deb13+1-common linux-image-6.1.0-27-amd64 linux-image-6.12.74+deb13+1-amd64 linux-kbuild-6.12.74+deb13+1 Use 'apt autoremove' to remove them. Upgrading: (...) linux-headers-amd64 (...) Installing dependencies: linux-headers-6.12.90+deb13.1-amd64 linux-headers-6.12.90+deb13.1-common linux-image-6.12.90+deb13.1-amd64 linux-kbuild-6.12.90+deb13.1 Suggested packages: linux-doc-6.12 debian-kernel-handbook Summary: Upgrading: 16, Installing: 4, Removing: 0, Not Upgrading: 0 1 not fully installed or removed. Download size: 492 MB Space needed: 187 MB / 63.2 GB available - in /boot: 146 MB / 171 MB available root@localhost-live:/boot# apt autoremove (...) Summary: Upgrading: 0, Installing: 0, Removing: 11, Not Upgrading: 0 1 not fully installed or removed. Freed space: 782 MB (...)
Il faut réinstaller grub:
root@localhost-live:/# grub-install --target=i386-pc /dev/sda Installing for i386-pc platform. Installation finished. No error reported. root@localhost-live:/# update-grub Generating grub configuration file ... Found background image: .background_cache.png Found linux image: /boot/vmlinuz-6.12.90+deb13.1-amd64 Found initrd image: /boot/initrd.img-6.12.90+deb13.1-amd64 Found linux image: /boot/vmlinuz-6.12.90+deb13-amd64 Found initrd image: /boot/initrd.img-6.12.90+deb13-amd64 Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. Adding boot menu entry for UEFI Firmware Settings ... done
Après le redémarrage, je suis tombé sur une autre erreur.
Ça m'a rappelé ceci : utiliser_debian_live_pour_reparer_un_probleme_d_initramfs_kernel_panic
J'ai pu démarrer sur un ancien kernel et lancer :
# export LANG=fr_BE.utf8 # export LC_ALL=fr_BE.utf8 # export LANGUAGE=fr_BE.utf8 # update-initramfs -u -k all
Problème résolu!
Je croyais que le problème était résolu parce que j'ai pu démarrer l'ordinateur mais le problème revient à intervalles réguliers. Je tente donc d'ajouter la solution de Tuxicoman pour réduire la taille des fichiers initrd dans boot. Je cite :
Créez un fichier /etc/initramfs-tools/conf.d/smallboot et écrivez dedans:
MODULES=dep COMPRESS=xz
La première option réduit le nombre de modules embarqués dans le initrd
La deuxième compresse plus fort au dépend de la vitesse de boot
Puis relancez la création de l’image du noyau avec cette commande :
# export LANG=fr_BE.utf8 # export LC_ALL=fr_BE.utf8 # export LANGUAGE=fr_BE.utf8 # update-initramfs -u -k all
Espérons que ça règle un peu le problème. Sinon je vais finir par faire une réinstallation complète et mettre une partition /boot de 2Go.
Problème résolu ?
J'ai également rencontré un autre problème :
root@localhost-live:/# grub-install --target=i386-pc /dev/sda Installing for i386-pc platform. grub-install: error: cannot backup `/boot/grub/i386-pc/ehci.mod': Structure needs cleaning.
Si je comprends bien, il y a des erreurs dans les partitions et ça vaut la peine de nettoyer ça (voir askubuntu.com) :
root@localhost-live:/# exit root@localhost-live:~# umount /rescue/boot root@localhost-live:~# e2fsck /dev/sda1 e2fsck 1.47.3 (8-Jul-2025) /dev/sda1 contains a file system with errors, check forced. Pass 1: Checking inodes, blocks, and sizes Inode 108123, i_size is 16384, should be 12288. Fix<y>? yes Inode 108123, i_blocks is 34, should be 26. Fix<y>? yes Inode 108363, i_blocks is 36, should be 26. Fix<y>? yes Inode 108675, i_blocks is 32, should be 26. Fix<y>? yes Inode 108125, i_blocks is 116, should be 26. Fix<y>? yes Inode 108126, i_blocks is 60, should be 26. Fix<y>? yes Inode 108127, i_blocks is 58, should be 26. Fix<y>? yes Inode 108161, i_blocks is 236, should be 26. Fix<y>? yes Inode 108162, i_blocks is 292, should be 26. Fix<y>? yes Inode 108163, i_blocks is 346, should be 26. Fix ('a' enables 'yes' to all) <y>? yes to all Inode 108630, i_blocks is 120, should be 26. Fix? yes (...plein de trucs...) Free blocks count wrong for group #60 (2348, counted=2359). Fix? yes Free blocks count wrong (166249, counted=167613). Fix? yes /dev/sda1: ***** FILE SYSTEM WAS MODIFIED ***** /dev/sda1: 523/124440 files (22.2% non-contiguous), 331075/498688 blocks
Après ça, on remonte la partition, on chroot à nouveau et on réinstalle grub :
root@localhost-live:~# mount /dev/sda1 /rescue/boot/ root@localhost-live:~# chroot /rescue/ root@localhost-live:/# grub-install --target=i386-pc /dev/sda Installing for i386-pc platform. Installation finished. No error reported. root@localhost-live:/# update-grub Generating grub configuration file ... Found background image: .background_cache.png Found linux image: /boot/vmlinuz-6.12.94+deb13-amd64 Found initrd image: /boot/initrd.img-6.12.94+deb13-amd64 Found linux image: /boot/vmlinuz-6.12.90+deb13.1-amd64 Found initrd image: /boot/initrd.img-6.12.90+deb13.1-amd64 Found linux image: /boot/vmlinuz-6.12.90+deb13-amd64 Found initrd image: /boot/initrd.img-6.12.90+deb13-amd64 Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. Adding boot menu entry for UEFI Firmware Settings ... done
Ça semble mieux! Est-ce que c'était ça qui causait le problème initial ?
Problème résolu ?


