Après MAJ disque : Error : symbol 'grub_calloc' not found

suivi de :

Entering rescue mode
grub rescue>

Pas plus d’indication sur ce qu’il convient de faire.

Il s’agit d’un disque contenant Buster qui n’avait pas été mis à jour depuis au moins 3 ou 4 mois.
Mise à jour faite et bien passé, sauf à la fin une alerte disant que NVIDIA avait un problème module et que le moyen le plus simple de remédier à ça, était, une fois la MAJ terminée, de redémarrer la machine … ce que j’ai fait.
Merci de l’aide.

Ça veut dire que la core image de GRUB n’a pas été réinstallée avec le reste de GRUB (modules) lors de la mise à jour des paquets grub*, et les versions sont incompatibles. La raison probable est que l’emplacement enregistré dans debconf n’est pas le bon. Il faut reconfigurer le paquet grub-pc et réinstaller GRUB en spécifiant le bon emplacement.

dpkg-reconfigure grub-pc

Exécuter grub-install ne suffira pas, le problème se reproduira à la prochaine mise à jour des paquets grub*.

Merci Pascal, je ferai ça dans la soirée.
Question : " réinstaller GRUB en spécifiant le bon emplacement.".

Quel est ce bon emplacement ?

Le reconfigurateur va te proposer une liste de choix. Classiquement, c’est /dev/sda, /dev/vda ou /dev/mmcblk0, mais vérifie bien avant sur quel disque est quoi pour éviter l’incident.
Il se peut que le reconfigurateur ne te propose pas le bon choix, mais tu peux l’entrer à la main.

Je n’arrive à rien car quand je démarre la machine, il n’y a rien aucun chargement, les seules indications :

Entering rescue mode
grub rescue>

toutes les commande simples que j’ai essayées se soldent par un refus, il ne connait pas, que ce soit avec ricardo ou avec root.

Il faut lancer un système Debian dessus (genre l’installateur ou un système live) ou récupérer le disque dur pour le mettre dans une autre machine qui tourne sous Debian, c’est possible de faire ça ?

En principe, c’est le disque de boot. Pas une partition. Sauf si on a mis un autre chargeur d’amorçage dans le MBR du disque et qu’on lui a dit de chaîner le secteur d’amorce de la partition.

Normal, c’est le shell de GRUB, pas un shell Linux. Comme déjà dit, il faut démarrer avec autre chose. A mon avis l’installateur Debian en mode rescue est le plus simple car il automatise les opérations pour lancer un shell dans la racine du système (chroot).

Merci à vous deux, je ferai ça dans qq jours, car je dois actuellement faire face à un autre problème plus grave qui me prend tout mon temps : l’état de ma femme.

Je vais me remettre à cette histoire de grub, mais je vais d’abord expliquer la situation de mes disques sur ma machine. Je pense que le problème vient du disque sur lequel Grub avait été installé, mais je ne me souviens plus quels étaient les disques présents lors de cette installation.
Machine de bureau avec un emplacement multiple (Nas (?)) pour 5 disques 3.5" ou 2.5" avec berceau.
Tous les disques sont sous Buster.
Mon disque ex-principal (ex car il est actuellement défaillant) : « SSD » C’est peut-être sur celui-là que le Grub a été installé.
Le second, sur lequel je suis actuellement : « DD500 »
Un troisième Qui a les problèmes du présent fil « Clone1 »
Et enfin un quatrième qui a des problèmes graphiques, car j’ai voulu tester « Nouveau » à la place de Nvidia.

Si ça peut éclairer …
Merci

Tu veux dire qu’il y a une installation de Buster avec GRUB sur chaque disque ?
Dans ce cas pas besoin de système live ni d’installateur en mode rescue : tu devrais pouvoir démarrer le système installé sur le disque au GRUB défaillant depuis le GRUB d’un autre disque sur lequel tu n’as pas désactivé os-prober. Tu peux aussi installer le paquet boot-info-script sur n’importe quel système buster et exécuter le programme bootinfoscript qui génère un rapport sur l’amorçage de tous les disques, partitions et systèmes contenant des informations très utiles. Pour finir tu peux utiliser le programme grub-install de n’importe quelle installation de buster avec les options qui vont bien pour réinstaller le chargeur GRUB sur n’importe quel disque.

Sur chaque disque, je ne sais pas mais ce n’est pas impossible, je vérifie ça demain et je reviens ici pour préciser.

Une petite 1/2 h de tranquillité.
boot-info-script était déjà installé, et il donne une tartine de renseignements, lesquels ont besoin d’un connaisseur pour les interpréter.
Je n’en place ici que le début, car je ne sais pas comment faire pour les transférer dans un fichier ad hoc :

Commande faite à partir de SDB
GRub qui pose problème = SDA

=============
                  Boot Info Script 0.77      [10 June 2018]


============================= Boot Info Summary: ===============================

 => Grub2 (v2.00) is installed in the MBR of /dev/sda and looks at sector 
    64452608 of the same hard drive for core.img. core.img is at this location 
    and looks for (,gpt1)/boot/grub. It also embeds following components:
    
    modules
    ---------------------------------------------------------------------------
    fshelp ext2 part_gpt biosdisk
    ---------------------------------------------------------------------------
 => Grub2 (v2.00) is installed in the MBR of /dev/sdb and looks at sector 
    64452608 of the same hard drive for core.img. core.img is at this location 
    and looks for (,gpt1)/boot/grub. It also embeds following components:
    
    modules
    ---------------------------------------------------------------------------
    fshelp ext2 part_gpt biosdisk
    ---------------------------------------------------------------------------
 => Grub2 (v2.00) is installed in the MBR of /dev/sdc and looks at sector 
    64452608 of the same hard drive for core.img. core.img is at this location 
    and looks for (,gpt1)/boot/grub. It also embeds following components:
    
    modules
    ---------------------------------------------------------------------------
    fshelp ext2 part_gpt biosdisk
    ---------------------------------------------------------------------------

sda1: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  Grub2 (v1.99-2.00)
    Boot sector info:  Grub2 (v2.00) is installed in the boot sector of sda1 
                       and looks at sector 36439840 of the same hard drive 
                       for core.img. core.img is at this location and looks 
                       for (,gpt1)/boot/grub. It also embeds following 
                       components:
                       
                       modules
                       -------------------------------------------------------
                       fshelp ext2 part_gpt biosdisk
                       -------------------------------------------------------
    Operating System:  Debian GNU/Linux 10 (buster)
    Boot files:        /boot/grub/grub.cfg /etc/fstab 
                       /boot/grub/i386-pc/core.img

sda2: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

sda3: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  
    Boot files:        

sda4: __________________________________________________________________________

    File system:       BIOS Boot partition
    Boot sector type:  Grub2's core.img
    Boot sector info: 

sdb1: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Debian GNU/Linux 10 (buster)
    Boot files:        /boot/grub/grub.cfg /etc/fstab 
                       /boot/grub/i386-pc/core.img

sdb2: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

sdb3: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  
    Boot files:        

sdb4: __________________________________________________________________________

    File system:       BIOS Boot partition
    Boot sector type:  Grub2's core.img
    Boot sector info: 

sdc1: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Debian GNU/Linux 10 (buster)
    Boot files:        /boot/grub/grub.cfg /etc/fstab 
                       /boot/grub/i386-pc/core.img

sdc2: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

sdc3: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  
    Boot files:        

sdc4: __________________________________________________________________________

    File system:       BIOS Boot partition
    Boot sector type:  Grub2's core.img
    Boot sector info: 

sdc5: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  
    Boot files:        

============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________
Disque /dev/sda : 596,2 GiB, 640135028736 octets, 1250263728 secteurs
Modèle de disque : WDC WD6400AAVS-0
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1                   1 1,250,263,727 1,250,263,727  ee GPT


GUID Partition Table detected.

Partition  Attrs   Start Sector    End Sector  # of Sectors System
/dev/sda1                 2,048    48,828,415    48,826,368 Data partition (Windows/Linux)
/dev/sda2            48,828,416    64,452,607    15,624,192 Swap partition (Linux)
/dev/sda3            68,360,192   224,610,303   156,250,112 Data partition (Windows/Linux)
/dev/sda4            64,452,608    64,454,655         2,048 BIOS Boot partition

Attributes: R=Required, N=No Block IO, B=Legacy BIOS Bootable, +=More bits set

Drive: sdb _____________________________________________________________________
Disque /dev/sdb : 465,8 GiB, 500107862016 octets, 976773168 secteurs
Modèle de disque : ST500DM002-1BD14
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sdb1                   1   976,773,167   976,773,167  ee GPT


GUID Partition Table detected.

Partition  Attrs   Start Sector    End Sector  # of Sectors System
/dev/sdb1                 2,048    48,828,415    48,826,368 Data partition (Windows/Linux)
/dev/sdb2            48,828,416    64,452,607    15,624,192 Swap partition (Linux)
/dev/sdb3            68,360,192   224,610,303   156,250,112 Data partition (Windows/Linux)
/dev/sdb4            64,452,608    64,454,655         2,048 BIOS Boot partition

Attributes: R=Required, N=No Block IO, B=Legacy BIOS Bootable, +=More bits set

Drive: sdc _____________________________________________________________________
Disque /dev/sdc : 465,8 GiB, 500107862016 octets, 976773168 secteurs
Modèle de disque : ST500DM002-1BD14
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sdc1                   1   976,773,167   976,773,167  ee GPT


GUID Partition Table detected.

Partition  Attrs   Start Sector    End Sector  # of Sectors System
/dev/sdc1                 2,048    48,828,415    48,826,368 Data partition (Windows/Linux)
/dev/sdc2            48,828,416    64,452,607    15,624,192 Swap partition (Linux)
/dev/sdc3            68,360,192   224,610,303   156,250,112 Data partition (Windows/Linux)
/dev/sdc4            64,452,608    64,454,655         2,048 BIOS Boot partition
/dev/sdc5           298,321,920   976,773,119   678,451,200 Data partition (Linux)

Attributes: R=Required, N=No Block IO, B=Legacy BIOS Bootable, +=More bits set

"blkid" output: ________________________________________________________________

===========================================================

C’est suffisant. On voit bien que sur sda, GRUB est installé à la fois dans le MBR (comme sur les deux autres disques, c’est celui qui se lance au démarrage) et dans le secteur de boot de la partition sda1. Cela signifie que probablement le paquet grub-pc a été configuré pour installer et mettre à jour GRUB dans la partition sda1, et le GRUB installé dans le MBR du disque n’a pas été mis à jour.

Il faut donc reconfigurer le paquet grub-pc en sélectionnant le disque sda. Pour cela il faut d’abord être dans le système installé sur sda, soit par chroot (un peu fastidieux car il faut monter /dev, /sys, /proc…), soit en le démarrant depuis le GRUB d’un autre disque, soit en réinstallant GRUB dans le MBR de sda depuis n’importe lesquel des deux autres systèmes :

mount /dev/sda1 /mnt
grub-install --boot-directory=/mnt/boot /dev/sda
umount /mnt

et en rebootant sur sda. Puis

dpkg-reconfigure grub-pc

Merci, Pascal, ça c’est de l’explication pour le débutant que je suis redevenu.
Étant donné que le disque sda est celui qui me sert le moins, et que celui qui est bien au point actuellement est sdb, il n’y aurait pas possibilité de reconfigurer l’ensemble des trois disques à partir de SDB ?
Sinon, je fais comme tu expliques.

Que veux-tu dire par reconfigurer ?

De façon à ce que le disque qui actuellement le plus utilisé (SDB) soit le « Maître » de Grub.
À moins qu’il soit préférable de faire comme ce que tu préconises en premier et refaire un gub-install à partir de SDB en second ?

L’ordre d’amorçage des disques se règle dans le BIOS, ou bien en permutant les connexions physiques des disques. Mais il n’y a pas de lien entre le disque de boot et le système à lancer par défaut.
Dans tous les cas, je préconise que chaque disque reste amorçable indépendamment des autres, donc réparer GRUB sur sda même si tu fais booter le PC sur sdb par défaut.

Pour le règlage dans le Bios, j’ai déjà fait.
Je fais ça en début d’AM.
Résultat sitôt après.
Merci.

Apparemment, tout s’est parfaitement passé :

CitationLa ligne de commande de Linux suivante a été récupérée via le fichier /etc/default/grub ou le paramètre « kopt » du fichier │
│ menu.lst utilisé par la version originelle de GRUB. Veuillez contrôler qu’elle est correcte et la modifier si nécessaire. Cette │
│ ligne de commande peut être vide. │
│ │
│ Ligne de commande de Linux

La ligne était vide et je l’ai donc laissée comme telle.

Citation
Les paramètres indiqués seront utilisés pour le noyau Linux de l’entrée de menu par défaut mais pas pour le mode de secours. │
│ │
│ Ligne de commande par défaut de Linux : │
│ │
│ quiet____

OK

Citation
Le paquet grub-pc est en cours de mise à jour. Ce menu permet de choisir pour quels périphériques vous souhaitez exécuter la │
│ commande grub-install automatiquement. │
│ │
│ Il est en général recommandé d’exécuter grub-install automatiquement, afin d’éviter la situation où l’image de GRUB est │
│ désynchronisée avec les modules de GRUB ou le fichier grub.cfg. │
│ │
│ Si vous n’avez pas la certitude du périphérique utilisé comme périphérique d’amorçage par le BIOS, il est en général conseillé │
│ d’installer GRUB sur l’ensemble des périphériques. │
│ │
│ Veuillez noter que GRUB peut également être installé sur les secteurs d’amorçage de partitions. Certaines partitions où cela │
│ pourrait être nécessaire sont indiquées ici. Cependant, cela impose que GRUB utilise le mécanisme « blocklist », ce qui le rend │
│ moins fiable et n’est donc pas recommandé. │
│ │
│ Périphériques où installer GRUB : │
│ │
│ [ ] /dev/sda (640135 Mo; WDC_WD6400AAVS-00G9B1) │
│ [*] - /dev/sda1 (24999 Mo; /) │
│ [ ] /dev/sdb (500107 Mo; ST500DM002-1BD142) │
│ [ ] /dev/sdc (500107 Mo; ST500DM002-1BD142) │
│ │
│ │

Après la reconfiguration de grub :

Citation
ricardo@dd3-5:~$ sudo dpkg-reconfigure grub-pc
[sudo] Mot de passe de ricardo :
Installation pour la plate-forme i386-pc.
grub-install : attention : Le système de fichiers « ext2 » ne prend pas en charge l’embarquage.
grub-install : attention : L’embarquage est impossible. GRUB ne peut être installé sur cette configuration qu’en utilisant les listes de blocs. Cependant, les listes de blocs ne sont PAS fiables et leur utilisation est déconseillée…
Installation terminée, sans erreur.
Création du fichier de configuration GRUB…
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Image Linux trouvée : /boot/vmlinuz-4.19.0-10-amd64
Image mémoire initiale trouvée : /boot/initrd.img-4.19.0-10-amd64
Image Linux trouvée : /boot/vmlinuz-4.19.0-5-amd64
Image mémoire initiale trouvée : /boot/initrd.img-4.19.0-5-amd64
Image Linux trouvée : /boot/vmlinuz-4.9.0-9-amd64
Image mémoire initiale trouvée : /boot/initrd.img-4.9.0-9-amd64
fait
ricardo@dd3-5:~$

C’est bon ou il y a encore quelque chose à faire ?

Mes partitions sont toutes en ext4, pourquoi est-il mentionné ext2 ?

Tu as bien sélectionné /dev/sda ? C’est le but de l’opération.
Tu peux laisser ou désélectionner /dev/sda1 en plus, aucune importance.
Tu peux vérifier avec

debconf-show grub-pc | grep device

Parce que GRUB utilise le même pilote « ext2 » pour ext2/3/4. Tu as ce message bénin parce que tu as laissé sda1 sélectionnée. Comme le disque a une partition « BIOS boot » (sda4), le risque mentionné ne concerne que l’amorçage à partir du secteur d’amorce d’une partition et non du MBR.