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

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.

La réponse :
J’avais oublié #

ricardo@dd3-5:~$ debconf-show grub-pc | grep device
debconf: DbDriver "passwords" warning: could not open /var/cache/debconf/passwords.dat: Permission denied
  grub-pc/install_devices_empty: false
  grub-pc/install_devices_failed: false
  grub2/device_map_regenerated:
  grub-pc/install_devices_failed_upgrade: true
* grub-pc/install_devices: /dev/disk/by-id/ata-WDC_WD6400AAVS-00G9B1_WD-WCAUF2789237-part1
* grub-pc/install_devices_disks_changed: /dev/disk/by-id/ata-WDC_WD6400AAVS-00G9B1_WD-WCAUF2789237-part1

Avec sudo :

sudo debconf-show grub-pc | grep device
[sudo] Mot de passe de ricardo : 
  grub-pc/install_devices_failed_upgrade: true
  grub-pc/install_devices_empty: false
  grub-pc/install_devices_failed: false
* grub-pc/install_devices_disks_changed: /dev/disk/by-id/ata-WDC_WD6400AAVS-00G9B1_WD-WCAUF2789237-part1
* grub-pc/install_devices: /dev/disk/by-id/ata-WDC_WD6400AAVS-00G9B1_WD-WCAUF2789237-part1
  grub2/device_map_regenerated:

L’exécution en root ne fait que supprimer le message d’erreur qui est sans incidence sur le résultat.
A propos du résultat, ce n’est pas bon : grub-pc est configuré pour installer le chargeur d’amorçage dans la partition n° 1 (-part1) et non dans le MBR du disque. Il faut refaire dpkg-reconfigure et sélectionner sda, sinon le problème risque de se reproduire à la prochaine mise à jour des paquets de GRUB.

Refait avec * sda

ricardo@dd3-5:~$ sudo debconf-show grub-pc | grep device
* grub-pc/install_devices_disks_changed: /dev/disk/by-id/ata-WDC_WD6400AAVS-00G9B1_WD-WCAUF2789237-part1
  grub-pc/install_devices_empty: false
  grub-pc/install_devices_failed_upgrade: true
  grub2/device_map_regenerated:
  grub-pc/install_devices_failed: false
* grub-pc/install_devices: /dev/disk/by-id/ata-WDC_WD6400AAVS-00G9B1_WD-WCAUF2789237
ricardo@dd3-5:~$ 

C’est bon ?

Oui. install_devices désigne maintenant le disque entier et non une partition (pas de suffixe -partN).

1 J'aime

Merci, Pascal, encore une chose de dépannée grâce à toi.
Maintenant, je vais souffler un peu, puis passer à l’examen de mon SST, mais ça sera un autre fil ouvert pour l’occasion.