Une nouvelle fois des problèmes avec GRUB !
Décidément, c'est le talon d'Achille du système !
Je n'ai jamais tenté/testé les autres Chargeurs d'Amorçage,
mais peut-être cela en vaut-il la peine ???
Cette fois ayant adopté un partitionnement GPT
avec GRUB sur une partition indépendante ....
je pensais que tout était bien ficelé,
et qu'après 10 ans de galères à répétition "Powered by GRUB",
j'étais parvenu à faire la paix avec ce vieux BOURRU !
... et bien NON!
Je vais décrire, après la configuration, les étapes de recherche et d'errance,
pour les éviter à d'autres, sans pour autant les ignorer.
Pour les pressés => aller directement à Diagnostic
La Configuration
PC BIOS — HP-Compaq DC7800 SFF
2 HDD
sda → GPT de 1To ; HDD principal, c'est là que se situe le problème
* GRUB sur sda7 (part dédiée bios_grub ; 1Mo ; placé au début du disque)
sdb → MBR de 80 Go ; HDD d'origine peu utilisé à présent.
OS installés
sda
* Debian stable (secours) → sda1 (/) ; sda2 (/home)
* swap → sda3 (utilisé par les 2 OS)
* Sparky5 (testing) (principal) → sda4 (/) ; sda5 (/home)
* Données stockées sur → sda6 (accessible aux 2 OS)
sdb
* Windows 7
* Debian 8
* Sparky 5
Tout ceci fonctionnait à merveille depuis > 6 mois
L'usage courant étant le boot sur sda4/sparky(testing)
Partitions
HDD principal
Code : Tout sélectionner
# parted /dev/sda print
Model: ATA WDC WD10EZRZ-00H (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: pmbr_boot
Number Start End Size File system Name Flags
7 1049kB 2097kB 1049kB bios_grub
1 1049MB 37,7GB 36,7GB ext4
2 37,7GB 48,2GB 10,5GB ext4
3 48,2GB 53,5GB 5243MB linux-swap(v1)
4 53,5GB 90,2GB 36,7GB ext4
5 90,2GB 101GB 10,5GB ext4
6 101GB 625GB 524GB ext4 Docs
Second HDD (sata déconnecté)
Code : Tout sélectionner
Model: ATA WDC WD800AAJS-60 (scsi)
Disk /dev/sda: 80.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 106MB 105MB primary ntfs boot
2 106MB 18.9GB 18.8GB primary ntfs
3 18.9GB 80.0GB 61.1GB extended
7 18.9GB 30.5GB 11.5GB logical ext4
8 30.5GB 42.0GB 11.5GB logical ext4
5 42.0GB 78.4GB 36.4GB logical ext3
6 78.4GB 80.0GB 1593MB logical linux-swap(v1)
Le problème
D'abord quelques points sur l'apparition du problème :
* ce n'est pas suite à une mise à jour des paquets grub*
* ni à une intervention de ma part sur GRUB
Le seul événement hors-norme a été une panne du réseau Orange qui m'a privé de connexion,
je n'ai donc pu faire les MàJ durant 10 j -> 150 pkges en une fois avec :
Code : Tout sélectionner
Log started: 2018-07-21 08:48:12
........
update-initramfs: Generating /boot/initrd.img-4.17.0-1-amd64
W: Possible missing firmware /lib/firmware/i915/skl_dmc_ver1_27.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_04.bin for module i915
W: Possible missing firmware /lib/firmware/i915/cnl_dmc_ver1_07.bin for module i915
W: Possible missing firmware /lib/firmware/i915/glk_dmc_ver1_04.bin for module i915
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_39.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver9_29.bin for module i915
W: Possible missing firmware /lib/firmware/i915/skl_guc_ver9_33.bin for module i915
ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf: No such file or directory
ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf: No such file or directory
cela n'a pas de rapport avec GRUB,
je n'ai pas trouvé ces firmwares dans les dépôts
et cela n'a pas posé de problème ( ça semble une histoire récurrente vu les bugs rapportés)
Symptômes
Prémisses
Au début le délais entre l'écran du BIOS et l'affichage du menu GRUB s'est vu allonger 3-4 fois la durée normale.
Ensuite après plusieurs sessions,
le délais entre le login (lightdm) et l'ouverture de la session XFCE s'est lui aussi allongé.
Je ne sais s'il y a un lien entre les 2 faits.
À ce stade mis à part ces délais rallongés, le système fonctionnait normalement.
Donc, agacé par ces attentes indues,
persuadé que le coupable était GRUB (installé par le système principal = sparky sur sda4)
je reboote sur le système Debian9 (secours) sur sda1
* même délais pour GRUB forcément
* pas de d'autre délais ensuite, tout va bien
* je passe :
Code : Tout sélectionner
# update-grub
# grub-install /dev/sda
La panne !
Ensuite ⇒ échec du reboot :
après l'écran du BIOS, l'écran reste vide et je ne note plus aucune activité.
Une courte pression sur pression sur le bouton I/O éteint la machine immédiatement.
Test du matériel
Carte-mère / BIOS
J'ai d'abord craint une défaillance de la carte-mère,
mais après quelques tests :
* Boot sur CD et USB => OK!
* Boot du second HDD via SuperGrub2 (1.99-b1)
qui affiche une série de error: unrecognised fs
avant d'afficher son menu GRUB avec uniquement les OS de sdb
* Après déconnexion du HDD "défaillant" et réinstallalation de Grub sur l'ancien HDD (sdb) => Boot des autres OS >>> OK!
Il ne s'agit donc pas d'un problème sur la carte-mère.
HDD
J'ai testé le HDD qui n'a que 3000h (6 mois)
SMART long n'a affiché aucun défaut.
Voir la sortie de : SMART
Partitionnement
Je me suis donc orienté vers :
* un problème de système de fichiers sur le partitionnement GPT
* ou sur la partition /dev/sda7 bios_grub BIOS boot
Table GPT
Que se soit avec FDISK ; PARTED ; GPARTED
la table gpt est bien reconnue ainsi que les partitions .
Code : Tout sélectionner
fdisk -l
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 9A1D176E-EFFA-4822-BBCF-C16564FCB79C
Device Start End Sectors Size Type
/dev/sda1 2048000 73727999 71680000 34.2G Linux filesystem
/dev/sda2 73728000 94207999 20480000 9.8G Linux filesystem
/dev/sda3 94208000 104447999 10240000 4.9G Linux swap
/dev/sda4 104448000 176127999 71680000 34.2G Linux filesystem
/dev/sda5 176128000 196607999 20480000 9.8G Linux filesystem
/dev/sda6 196608000 1220607999 1024000000 488.3G Linux filesystem
/dev/sda7 2048 4095 2048 1M BIOS boot
Partition table entries are not in disk order.
Les partitions ont été montées en session Live ainsi qu'en CHROOT,
tout fonctionne bien.
Donc à priori, le problème est ailleurs.
Partition Bios Grub
Je n'ai pas utilsé fsck qui ne peut rien pour la partition grub,
donc rien d'autre que la suppression et l'effacement,
suivis d'une création de partition non-formatée avec GParted.
À ce propos, étrangement :
la nouvelle partition juste après création est parfois déjà de type "grub2 core.img" alors que GRUB n'est pas installé ;
l'effacement (dans les options de formatage de GParted) remet le type à : "Inconnu" en conservant le drapeau bios_grub si déjà mis.
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Pendant cette période d'errance, des actions inutiles et potentiellement dommageables pour le système ont été menées souvent dans un chroot :
* multiples update-grub && grub-install
* purge/install des pkges *grub* dont grub-coreboot (installé par erreur)
* suppression/création/effacement de la part sda7
* connexion/déconnexion SATA
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Bref, j'ai tenté tout ce que je pouvais avec toutes les variantes possibles ou impossibles...
Jusqu'au moment où par chance et par dépit, j'ai laissé l'écran noir à son sort ...
... et miracle ...
... Le menu de GRUB m'est apparu ... itself !

Diagnostic
En fait GRUB n'ai pas cassé, mais il tarde 3 longues minutes à s'afficher,
bien trop long pour un type qui a soif d'en découdre ...
et comme je suis têtu, j'y ai passé un temps infini... c'est con !

Après usage de bootinfoscript
⇒ Identification de la nature sinon de la source profonde du problème :
→ Taille anormale du fichier grub.cfg (>> 1,5Mo)
due à la section :
### BEGIN /etc/grub.d/30_os-prober ###
qui réplique des dizaines d'entrées erronées le fichier compte 15 à 20 000 lignes (normalement < 500)
voir → bootinfo.report
j'ai tronqué le rapport (3.2Mo/50 000 lignes -> 10 000 lignes en conservant sa partie finale) car le pastebin ne l'acceptait pas correctement
si quelqu'un veut les fichiers complets, je peux les lui fournir
J'aurai pu me rendre compte du problème (c'est toujours facile après-coup)
car lors du : update-grub le délais de détection des OS est long ;
beaucoup plus long que : # os-prober qui ne dure que quelques secondes (j'ai vérifié).
Actions
Fort de cette découverte :
Code : Tout sélectionner
$ dpkg-query -l |grep grub
ii grub-pc 2.02+dfsg1-5 amd64 GRand Unified Bootloader, version 2 (PC/BIOS version)
ii grub-pc-bin 2.02+dfsg1-5 md64 GRand Unified Bootloader, version 2 (PC/BIOS binaries)
ii grub2-common 2.02+dfsg1-5 amd64 GRand Unified Bootloader (common files for version 2)
ii sparky-grub-theme 0.1.3 all Sparky GRUB Theme
Suppression totale de GRUB pour repartir sur une base neuve
# apt-get purge grub-common grub2-common grub-pc grub-pc-bin os-prober
Durant la suppression ⇒ Message
Code : Tout sélectionner
Voulez-vous supprimer les fichiers de configuration de GRUB2 contenu dans :
/boot/grub
Attention le système ne pourra pas redémarrer
avant l'installation d'un nouveau chargeur d'amorçage
=> OUI
CRÉATION D'UNE PARTITION bios_grub NEUVE
AVANT LA RÉINSTALL DE GRUB
Fait avec Gparted (plus simple que parted pour emplacement et taille = 1Mo)
effacée pour suppression du type = grub2 core.img et drapeau = bios_grub
Résultat :
Code : Tout sélectionner
# parted /dev/sda print
Model: ATA WDC WD10EZRZ-00H (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: pmbr_boot
Number Start End Size File system Name Flags
7 1049kB 2097kB 1049kB bios_grub
1 1049MB 37,7GB 36,7GB ext4
2 37,7GB 48,2GB 10,5GB ext4
3 48,2GB 53,5GB 5243MB linux-swap(v1)
4 53,5GB 90,2GB 36,7GB ext4
5 90,2GB 101GB 10,5GB ext4
6 101GB 625GB 524GB ext4 Docs
Installation de GRUB
Code : Tout sélectionner
# apt-get install grub-pc
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés :
grub-common grub-pc-bin grub2-common os-prober
....
→ Choix de l'installation sur : /dev/sda
Code : Tout sélectionner
...
Creating config file /etc/default/grub with new version
Installation pour la plate-forme i386-pc.
Installation terminée, sans erreur.
Création du fichier de configuration GRUB…
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found background image: /opt/artwork/sparky-grub.png
Image Linux trouvée : /boot/vmlinuz-4.17.0-1-amd64
Image mémoire initiale trouvée : /boot/initrd.img-4.17.0-1-amd64
Image Linux trouvée : /boot/vmlinuz-4.16.0-2-amd64
Image mémoire initiale trouvée : /boot/initrd.img-4.16.0-2-amd64
Debian GNU/Linux 9 (stretch) trouvé sur /dev/sda1
fait
Épilogue
Après tout cela j'espérai bien avoir remis GRUB sur ses pattes ...
... Et NON !
Code : Tout sélectionner
$ du -h /boot/grub/grub.cfg
1,6M /boot/grub/grub.cfg
Code : Tout sélectionner
$ file /boot/grub/grub.cfg
/boot/grub/grub.cfg: UTF-8 Unicode text, with very long lines
Rien à changer !
... à part que la session XFCE s'ouvre à nouveau sans délais ... coïncidence ???
Autre point assez déroutant pour moi,
la situation est identique avec Debian9 (stable) sur sda1 (sans délais pour XFCE)
alors que Sparky est une testing (les versions sont différentes)
Autre point étrange,
lorsque le second HDD (80Go) est connecté (SATA)
les entrées correspondant aux OS linux qu'il porte,
sont également dupliquées nx10 fois ;
ce qui tendrait à écarter un problème spécifique à l'autre HDD (gpt ; 1To)
les entrées relatives à windows7 ne sont pas dupliquées.
Je n'ai rien trouvé de semblable sur la toile,
et rien dans les BUGS → https://bugs.debian.org/cgi-bin/pkgrepo ... kg=grub-pc
Voilà, la situation reste bien nébuleuse pour moi,

j'espère que quelqu'un(e) aura une idée lumineuse pour me mettre sur la voie.
Merci de m'avoir lu,
c'est un peu long ... j'espère que cela soit utile.