Impossible de réinstaller GRUB

Hello,

Gros souci sur une buster que j’étais en train de mettre à jour, la maj de grub-pc se passe mal, en effet, celui-ci refuse de s’installer sur mon raid.
J’ai 2 disques avec un raid md2.

Voici le retour d’un parted -l :

Model: ATA HGST HUS724040AL (scsi)
Disk /dev/sda: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system     Name          Flags
 1      1049kB  537MB   536MB   fat32           primary       boot, esp
 2      537MB   42,5GB  41,9GB  ext4            primary       raid
 3      42,5GB  46,8GB  4294MB  linux-swap(v1)  primary
 4      46,8GB  4001GB  3954GB  ext4            logical       raid
 5      4001GB  4001GB  983kB                   config-drive


Model: ATA HGST HUS724040AL (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system     Name     Flags
 1      1049kB  537MB   536MB   fat32           primary  boot, esp
 2      537MB   42,5GB  41,9GB  ext4            primary  raid
 3      42,5GB  46,8GB  4294MB  linux-swap(v1)  primary
 4      46,8GB  4001GB  3954GB  ext4            logical  raid


Model: Linux Software RAID Array (md)
Disk /dev/md4: 3954GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0,00B  3954GB  3954GB  ext4


Model: Linux Software RAID Array (md)
Disk /dev/md2: 41,9GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags:

Number  Start  End     Size    File system  Flags
 1      0,00B  41,9GB  41,9GB  ext4

Et lors de la maj, grub me dit ceci :

┌──────────────────────────────────────────────────────────────────────────────┤ Configuring grub-pc ├───────────────────────────────────────────────────────────────────────────────┐
│ 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 (4000787 Mo; HGST_HUS724040ALA640)                                                                                                                                 │
│    [ ] /dev/sdb (4000787 Mo; HGST_HUS724040ALA640)                                                                                                                                 │
│    [*] /dev/md2 (41941 Mo; ???)                                                                                                                                                    │
│                                                                                                                                                                                    │
│                                                                                                                                                                                    │
│                                                                                       <Ok>                                                                                         │
│                                                                                                                                                                                    │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

puis dans la log :

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..
grub-install : erreur : diskfilter writes are not supported.

et pour finir :

┌─────────────────────────────────────────┤ Configuring grub-pc ├──────────────────────────────────────────┐
│                                                                                                          │
│ GRUB n'a pas pu être installé sur les périphériques suivants :                                           │
│                                                                                                          │
│ /dev/md2                                                                                                 │
│                                                                                                          │
│ Veuillez confirmer si vous souhaitez continuer malgré le risque d'un démarrage incorrect de la machine.  │
│                                                                                                          │
│ Échec de l'installation de GRUB sur le périphérique d'amorçage. Continuer ?                              │
│                                                                                                          │
│                               <Yes>                                  <No>                                │
│                                                                                                          │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Et se faisant, côté logs apt j’ai ceci :

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..
grub-install : erreur : diskfilter writes are not supported.

Mon hyperviseur étant sur de la prod, je ne le redémarre pas. Que puis-je faire ?

/edit : j’ai tenté de répondre oui pour continuer l’installation et libérer le lock. Avant installation j’avais ceci :

debconf-show grub-pc | grep install_devices

  grub-pc/install_devices_disks_changed:
  grub-pc/install_devices_failed_upgrade: true
  grub-pc/install_devices_failed: false
* grub-pc/install_devices: /dev/sda
* grub-pc/install_devices_empty: false

Et maintenant :

* grub-pc/install_devices_empty: false
  grub-pc/install_devices_failed_upgrade: true
* grub-pc/install_devices: /dev/disk/by-id/md-uuid-0ecee7a1:42feadca:a4d2adc2:26fd5302
* grub-pc/install_devices_failed: true
  grub-pc/install_devices_disks_changed:

Un dpkg-reconfigure grub-pc me renvoie toujours la même chose, tant que je ne tente d’installer que sur /dev/md2 :

Installing for i386-pc platform.
grub-install: warning: File system `ext2' doesn't support embedding.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: diskfilter writes are not supported.
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.19.0-10-amd64
Found initrd image: /boot/initrd.img-4.19.0-10-amd64
Found linux image: /boot/vmlinuz-4.19.0-9-amd64
Found initrd image: /boot/initrd.img-4.19.0-9-amd64
Found linux image: /boot/vmlinuz-4.19.0-8-amd64
Found initrd image: /boot/initrd.img-4.19.0-8-amd64
Found linux image: /boot/vmlinuz-4.19.0-5-amd64
Found initrd image: /boot/initrd.img-4.19.0-5-amd64
Adding boot menu entry for EFI firmware configuration
done

Est-ce que mon bug serait lié à celui ?

Pourquoi y a-t-il des partitions système EFI (ESP) sur un système amorcé en mode BIOS avec grub-pc ? Une partition EFI ne sert que pour l’amorçage (U)EFI.

Installer GRUB sur un ensemble RAID logiciel n’a aucun sens et ne peut pas fonctionner car le BIOS ne le trouverait pas. GRUB doit être installé dans le MBR de chacun des disques, mais actuellement ce n’est pas possible car les disques sont au format GPT mais n’ont pas de partition de type BIOS boot indispensable pour installer GRUB dans cette configuration.

Si les partitions EFI ne sont pas utilisées (pas montées), tu peux changer leur type en « BIOS boot » (drapeau bios_grub dans parted). Ou bien tu peux créer une partition dans l’espace libre d’un peu moins de 1 Mo entre la table de partition principale et la partition EFI, largement suffisant. Le programme de partitionnement risque de protester au sujet de l’alignement non respecté, mais c’est strictement sans importance pour cette partition.

Ceci fait, tu pourras relancer dpkg-reconfigure grub-pc et sélectionner les deux disques /dev/sda et /dev/sdb comme emplacements pour installer GRUB.

PS : je serais quand meme curieux de savoir comment GRUB a été installé initialement sur cette machine. Un moyen simple de le savoir consiste à installer le paquet boot-info-script, d’exécuter la commande bootinfoscript et de lire le rapport produit.

Alors c’est une simple machine physique fournie par OVH, que j’ai transformé en hyperviseur KVM il y a de ça un an environ. Je n’ai jamais rencontré ce problème avant.

Pour le coup, j’ai tenté avant de te lire un update-grub qui semble être passé sans souci, je n’ai cependant pas encore redémarré.

Pour répondre à ta question sur le mode d’install de grub, voici la sortie du script :
Lien source pastebin

                  Boot Info Script 0.77      [10 June 2018]


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

 => No boot loader is installed in the MBR of /dev/sda.
 => No boot loader is installed in the MBR of /dev/sdb.

sda1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  FAT32
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:
    Boot files:        /efi/debian/fbx64.efi /efi/debian/grubx64.efi
                       /efi/debian/mmx64.efi /efi/debian/shimx64.efi

sda2: __________________________________________________________________________

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

sda3: __________________________________________________________________________

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

sda4: __________________________________________________________________________

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

sda5: __________________________________________________________________________

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

sdb1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  FAT32
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:
    Boot files:        /efi/debian/fbx64.efi /efi/debian/grubx64.efi
                       /efi/debian/mmx64.efi /efi/debian/shimx64.efi

sdb2: __________________________________________________________________________

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

sdb3: __________________________________________________________________________

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

sdb4: __________________________________________________________________________

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

md2: ___________________________________________________________________________

    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

md4: ___________________________________________________________________________

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

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

Drive: sda _____________________________________________________________________
Disk /dev/sda: 3,7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: HGST HUS724040AL
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1                   1 4,294,967,295 4,294,967,295  ee GPT


GUID Partition Table detected.

Partition  Attrs   Start Sector    End Sector  # of Sectors System
/dev/sda1                 2,048     1,048,575     1,046,528 EFI System partition
/dev/sda2             1,048,576    82,966,527    81,917,952 RAID partition (Linux)
/dev/sda3            82,966,528    91,353,087     8,386,560 Swap partition (Linux)
/dev/sda4            91,353,088 7,814,023,167 7,722,670,080 RAID partition (Linux)
/dev/sda5         7,814,035,215 7,814,037,134         1,920 Data partition (Linux)

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

Drive: sdb _____________________________________________________________________
Disk /dev/sdb: 3,7 TiB, 4000787030016 bytes, 7814037168 sectors
Disk model: HGST HUS724040AL
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sdb1                   1 4,294,967,295 4,294,967,295  ee GPT


GUID Partition Table detected.

Partition  Attrs   Start Sector    End Sector  # of Sectors System
/dev/sdb1                 2,048     1,048,575     1,046,528 EFI System partition
/dev/sdb2             1,048,576    82,966,527    81,917,952 RAID partition (Linux)
/dev/sdb3            82,966,528    91,353,087     8,386,560 Swap partition (Linux)
/dev/sdb4            91,353,088 7,814,023,167 7,722,670,080 RAID partition (Linux)

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

"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/md2         12de2f6e-3c94-442b-bd7f-f31395c4b247   ext4       /
/dev/md4         c3d224ab-4d1d-419d-a2fe-80e52f57a330   ext4       /stockage
/dev/sda1        05EB-2EF4                              vfat       EFI_SYSPART
/dev/sda2        0ecee7a1-42fe-adca-a4d2-adc226fd5302   linux_raid_member
/dev/sda3        1633f185-3699-4ff5-a22a-e258138a43f7   swap       swap-sda3
/dev/sda4        87846063-5582-cf78-a4d2-adc226fd5302   linux_raid_member
/dev/sda5        2019-10-03-09-18-21-00                 iso9660    config-2
/dev/sdb1        06CD-241C                              vfat       EFI_SYSPART
/dev/sdb2        0ecee7a1-42fe-adca-a4d2-adc226fd5302   linux_raid_member
/dev/sdb3        f15e45f9-a5f4-49d7-99d2-31e40602e665   swap       swap-sdb3
/dev/sdb4        87846063-5582-cf78-a4d2-adc226fd5302   linux_raid_member

========================= "ls -l /dev/disk/by-id" output: ======================

total 0
lrwxrwxrwx 1 root root  9 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6J3S -> ../../sdb
lrwxrwxrwx 1 root root 10 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6J3S-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6J3S-part2 -> ../../sdb2
lrwxrwxrwx 1 root root 10 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6J3S-part3 -> ../../sdb3
lrwxrwxrwx 1 root root 10 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6J3S-part4 -> ../../sdb4
lrwxrwxrwx 1 root root  9 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6VBS -> ../../sda
lrwxrwxrwx 1 root root 10 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6VBS-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6VBS-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6VBS-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6VBS-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 août   3 11:37 ata-HGST_HUS724040ALA640_PN1334PCKA6VBS-part5 -> ../../sda5
lrwxrwxrwx 1 root root  9 août   3 11:37 md-uuid-0ecee7a1:42feadca:a4d2adc2:26fd5302 -> ../../md2
lrwxrwxrwx 1 root root  9 août   3 11:37 md-uuid-87846063:5582cf78:a4d2adc2:26fd5302 -> ../../md4
lrwxrwxrwx 1 root root  9 août   3 11:37 wwn-0x5000cca24ceeeab2 -> ../../sdb
lrwxrwxrwx 1 root root 10 août   3 11:37 wwn-0x5000cca24ceeeab2-part1 -> ../../sdb1
lrwxrwxrwx 1 root root 10 août   3 11:37 wwn-0x5000cca24ceeeab2-part2 -> ../../sdb2
lrwxrwxrwx 1 root root 10 août   3 11:37 wwn-0x5000cca24ceeeab2-part3 -> ../../sdb3
lrwxrwxrwx 1 root root 10 août   3 11:37 wwn-0x5000cca24ceeeab2-part4 -> ../../sdb4
lrwxrwxrwx 1 root root  9 août   3 11:37 wwn-0x5000cca24ceeebf0 -> ../../sda
lrwxrwxrwx 1 root root 10 août   3 11:37 wwn-0x5000cca24ceeebf0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 août   3 11:37 wwn-0x5000cca24ceeebf0-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 août   3 11:37 wwn-0x5000cca24ceeebf0-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 août   3 11:37 wwn-0x5000cca24ceeebf0-part4 -> ../../sda4
lrwxrwxrwx 1 root root 10 août   3 11:37 wwn-0x5000cca24ceeebf0-part5 -> ../../sda5

================================ Mount points: =================================

Device           Mount_Point              Type       Options

/dev/md2         /                        ext4       (rw,relatime)
/dev/md4         /stockage                ext4       (rw,relatime)
/dev/sdb1        /boot/efi                vfat       (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)


=========================== md2/boot/grub/grub.cfg: ============================

--------------------------------------------------------------------------------
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod part_gpt
insmod diskfilter
insmod mdraid09
insmod ext2
set root='mduuid/0ecee7a142feadcaa4d2adc226fd5302'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='mduuid/0ecee7a142feadcaa4d2adc226fd5302'  12de2f6e-3c94-442b-bd7f-f31395c4b247
else
  search --no-floppy --fs-uuid --set=root 12de2f6e-3c94-442b-bd7f-f31395c4b247
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=fr_FR
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=5
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=5
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
        set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod part_gpt
        insmod diskfilter
        insmod mdraid09
        insmod ext2
        set root='mduuid/0ecee7a142feadcaa4d2adc226fd5302'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint='mduuid/0ecee7a142feadcaa4d2adc226fd5302'  12de2f6e-3c94-442b-bd7f-f31395c4b247
        else
          search --no-floppy --fs-uuid --set=root 12de2f6e-3c94-442b-bd7f-f31395c4b247
        fi
        echo    'Loading Linux 4.19.0-10-amd64 ...'
        linux   /boot/vmlinuz-4.19.0-10-amd64 root=UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247 ro  modprobe.blacklist=btrfs
        echo    'Loading initial ramdisk ...'
        initrd  /boot/initrd.img-4.19.0-10-amd64
}
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247' {
        menuentry 'Debian GNU/Linux, with Linux 4.19.0-10-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-10-amd64-advanced-UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod part_gpt
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/0ecee7a142feadcaa4d2adc226fd5302'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='mduuid/0ecee7a142feadcaa4d2adc226fd5302'  12de2f6e-3c94-442b-bd7f-f31395c4b247
                else
                  search --no-floppy --fs-uuid --set=root 12de2f6e-3c94-442b-bd7f-f31395c4b247
                fi
                echo    'Loading Linux 4.19.0-10-amd64 ...'
                linux   /boot/vmlinuz-4.19.0-10-amd64 root=UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247 ro  modprobe.blacklist=btrfs
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-4.19.0-10-amd64
        }
        menuentry 'Debian GNU/Linux, with Linux 4.19.0-10-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-10-amd64-recovery-UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod part_gpt
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/0ecee7a142feadcaa4d2adc226fd5302'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='mduuid/0ecee7a142feadcaa4d2adc226fd5302'  12de2f6e-3c94-442b-bd7f-f31395c4b247
                else
                  search --no-floppy --fs-uuid --set=root 12de2f6e-3c94-442b-bd7f-f31395c4b247
                fi
                echo    'Loading Linux 4.19.0-10-amd64 ...'
                linux   /boot/vmlinuz-4.19.0-10-amd64 root=UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247 ro single
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-4.19.0-10-amd64
        }
        menuentry 'Debian GNU/Linux, with Linux 4.19.0-9-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-9-amd64-advanced-UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod part_gpt
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/0ecee7a142feadcaa4d2adc226fd5302'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='mduuid/0ecee7a142feadcaa4d2adc226fd5302'  12de2f6e-3c94-442b-bd7f-f31395c4b247
                else
                  search --no-floppy --fs-uuid --set=root 12de2f6e-3c94-442b-bd7f-f31395c4b247
                fi
                echo    'Loading Linux 4.19.0-9-amd64 ...'
                linux   /boot/vmlinuz-4.19.0-9-amd64 root=UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247 ro  modprobe.blacklist=btrfs
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-4.19.0-9-amd64
        }
        menuentry 'Debian GNU/Linux, with Linux 4.19.0-9-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-9-amd64-recovery-UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod part_gpt
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/0ecee7a142feadcaa4d2adc226fd5302'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='mduuid/0ecee7a142feadcaa4d2adc226fd5302'  12de2f6e-3c94-442b-bd7f-f31395c4b247
                else
                  search --no-floppy --fs-uuid --set=root 12de2f6e-3c94-442b-bd7f-f31395c4b247
                fi
                echo    'Loading Linux 4.19.0-9-amd64 ...'
                linux   /boot/vmlinuz-4.19.0-9-amd64 root=UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247 ro single
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-4.19.0-9-amd64
        }
        menuentry 'Debian GNU/Linux, with Linux 4.19.0-8-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-8-amd64-advanced-UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod part_gpt
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/0ecee7a142feadcaa4d2adc226fd5302'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='mduuid/0ecee7a142feadcaa4d2adc226fd5302'  12de2f6e-3c94-442b-bd7f-f31395c4b247
                else
                  search --no-floppy --fs-uuid --set=root 12de2f6e-3c94-442b-bd7f-f31395c4b247
                fi
                echo    'Loading Linux 4.19.0-8-amd64 ...'
                linux   /boot/vmlinuz-4.19.0-8-amd64 root=UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247 ro  modprobe.blacklist=btrfs
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-4.19.0-8-amd64
        }
        menuentry 'Debian GNU/Linux, with Linux 4.19.0-8-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-8-amd64-recovery-UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod part_gpt
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/0ecee7a142feadcaa4d2adc226fd5302'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='mduuid/0ecee7a142feadcaa4d2adc226fd5302'  12de2f6e-3c94-442b-bd7f-f31395c4b247
                else
                  search --no-floppy --fs-uuid --set=root 12de2f6e-3c94-442b-bd7f-f31395c4b247
                fi
                echo    'Loading Linux 4.19.0-8-amd64 ...'
                linux   /boot/vmlinuz-4.19.0-8-amd64 root=UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247 ro single
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-4.19.0-8-amd64
        }
        menuentry 'Debian GNU/Linux, with Linux 4.19.0-5-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-5-amd64-advanced-UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod part_gpt
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/0ecee7a142feadcaa4d2adc226fd5302'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='mduuid/0ecee7a142feadcaa4d2adc226fd5302'  12de2f6e-3c94-442b-bd7f-f31395c4b247
                else
                  search --no-floppy --fs-uuid --set=root 12de2f6e-3c94-442b-bd7f-f31395c4b247
                fi
                echo    'Loading Linux 4.19.0-5-amd64 ...'
                linux   /boot/vmlinuz-4.19.0-5-amd64 root=UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247 ro  modprobe.blacklist=btrfs
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-4.19.0-5-amd64
        }
        menuentry 'Debian GNU/Linux, with Linux 4.19.0-5-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.0-5-amd64-recovery-UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod part_gpt
                insmod diskfilter
                insmod mdraid09
                insmod ext2
                set root='mduuid/0ecee7a142feadcaa4d2adc226fd5302'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint='mduuid/0ecee7a142feadcaa4d2adc226fd5302'  12de2f6e-3c94-442b-bd7f-f31395c4b247
                else
                  search --no-floppy --fs-uuid --set=root 12de2f6e-3c94-442b-bd7f-f31395c4b247
                fi
                echo    'Loading Linux 4.19.0-5-amd64 ...'
                linux   /boot/vmlinuz-4.19.0-5-amd64 root=UUID=12de2f6e-3c94-442b-bd7f-f31395c4b247 ro single
                echo    'Loading initial ramdisk ...'
                initrd  /boot/initrd.img-4.19.0-5-amd64
        }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
        fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
--------------------------------------------------------------------------------

================================ md2/etc/fstab: ================================

--------------------------------------------------------------------------------
LABEL="swap-sda3" swap-sda3 swap defaults 0 0
LABEL="swap-sdb3" swap-sdb3 swap defaults 0 0
LABEL="/" / ext4 defaults 0 0
LABEL="/stockage" /stockage ext4 defaults 0 0
LABEL=EFI_SYSPART /boot/efi vfat defaults 0 0
--------------------------------------------------------------------------------

==================== md2: Location of files loaded by Grub: ====================

           GiB - GB             File                                 Fragment(s)

  34.187400818 = 36.708442112   boot/grub/grub.cfg                             1
  22.141342163 = 23.774085120   boot/grub/i386-pc/core.img                     1
  13.340847015 = 14.324625408   boot/vmlinuz-4.19.0-10-amd64                   1
   0.930637360 = 0.999264256    boot/vmlinuz-4.19.0-5-amd64                    2
   8.915065765 = 9.572478976    boot/vmlinuz-4.19.0-8-amd64                    1
   0.542964935 = 0.583004160    boot/vmlinuz-4.19.0-9-amd64                    2
  13.340847015 = 14.324625408   vmlinuz                                        1
   0.542964935 = 0.583004160    vmlinuz.old                                    2
  13.637821198 = 14.643499008   boot/initrd.img-4.19.0-10-amd64                1
   1.378665924 = 1.480331264    boot/initrd.img-4.19.0-5-amd64                 3
   9.510005951 = 10.211291136   boot/initrd.img-4.19.0-8-amd64                 2
   2.045475006 = 2.196312064    boot/initrd.img-4.19.0-9-amd64                 3
  13.637821198 = 14.643499008   initrd.img                                     1
   2.045475006 = 2.196312064    initrd.img.old                                 3

Lien source pastebin
Du coup, vu la sortie du update-grub, est-ce que vous pensez que je peux redémarrer malgré tout ?

update-grub se fiche de savoir comment GRUB est installé, en fait il n’a même pas besoin que GRUB soit installé. Il ne fait que générer le fichier de configuration du menu de démarrage.

pastebin pas accessible d’où je suis. Tu ne peux pas coller au moins le début du rapport (les disques) directement ici ?

Bonjour

Je viens de remplacer le lien par le retour du script dans le message de jhfra

Merci @MicP

Pour info, mon problème est sans doute lié à https://www.cert.ssi.gouv.fr/avis/CERTFR-2020-AVI-477/

Pour en avoir parlé à un autre endroit, il semblerait que de plus en plus de gens soient impactés, certains ayant dû aller jusqu’à réinstaller.

Ca m’effraie un peu tout ça, j’ai bloqué les reboot sur mes VMs et mes prods principales en attendant.

Non, rien à voir. Certes, la mise à jour GRUB est liée à la correction des failles de sécurité, mais l’échec de l’installation ou l’impossibilité de redémarrer ensuite n’a rien à voir. Il s’agit de problèmes de configuration du système.

Le contenu du rapport de bootinfoscript est très instructif, mais également très déroutant.
Les MBR des deux disques ne contiennent aucun chargeur d’amorçage reconnu, donc pas GRUB.
En revanche les deux partitions EFI contiennent toutes les deux les fichiers de GRUB pour l’amorçage EFI avec secure boot. Une est montée sur /boot/efi mais ça peut être n’importe laquelle des deux à chaque démarrage puisqu’elles ont la meme étiquette. Cependant le répertoire /boot/grub/ de la racine contient des fichiers installés par grub-pc (i386-pc/) et non par grub-efi (x86_64-efi/).

Pour en avoir le coeur net, il faudrait vérifier si le système a démarré en mode EFI. Des indices dans ce sens sont la partition EFI peuplée et montée sur /boot/efi, et la présence d’une entrée de menu pour le setup UEFI dans grub.cfg. Il me semble que le rapport de bootinfoscript devrait contenir la sortie de efibootmgr, mais il est peut-être tronqué. D’autres informations pour confirmer peuvent être obtenues avec

ls /sys/firmware/efi
efibootmgr
dmesg | grep -i efi

Si l’amorçage de cette machine est bien en UEFI, alors la bonne nouvelle est que l’échec ou le succès de la mise à jour de grub-pc n’a aucune influence sur l’amorçage. La moins bonne nouvelle est que GRUB ne sera pas mis à jour.

Merci @MicP pour le rapport.

@PascalHambourg

Et voici :

ls /sys/firmware/efi

config_table  efivars  esrt  fw_platform_size  fw_vendor  runtime  runtime-map  systab  vars

`efibootmgr`
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0008,0003,0005,0004,0006,0007,0001,0000
Boot0000* ubuntu
Boot0001* ubuntu1804-server_64 (GRUB) (first drive sda)
Boot0003* UEFI: PXE IP4 P0 Intel(R) Ethernet Controller X550
Boot0004* UEFI: PXE IP6 P0 Intel(R) Ethernet Controller X550
Boot0005* UEFI: PXE IP4 P1 Intel(R) Ethernet Controller X550
Boot0006* UEFI: PXE IP6 P1 Intel(R) Ethernet Controller X550
Boot0007* UEFI: Built-in EFI Shell
Boot0008* debian

dmesg | grep -i efi
=> rien

merci !

/edit :

A titre d’info, j’ai une autre machine, installée et configurée de la même façon (ce sont des installations OVH), sur laquelle je n’ai pas encore appliqué le patch et qui redémarre très bien (en pxe), sur laquelle seul le efibootmgr change pour ceci :

BootCurrent: 0007
Timeout: 1 seconds
BootOrder: 0007,0009,0008,000A,000C,000B
Boot0007* UEFI: PXE IP4 P0 Intel(R) Ethernet Controller X550
Boot0008* UEFI: PXE IP6 P0 Intel(R) Ethernet Controller X550
Boot0009* UEFI: PXE IP4 P1 Intel(R) Ethernet Controller X550
Boot000A* UEFI: PXE IP6 P1 Intel(R) Ethernet Controller X550
Boot000B* UEFI: Built-in EFI Shell
Boot000C* debian

Cela confirme que les services EFI sont disponibles, donc que le système a démarré en mode UEFI (avec le GRUB présent dans une des partitions EFI) et non avec un GRUB installé par grub-pc.

Du coup on peut se demander pourquoi grub-pc est installé sur cette machine et pas grub-efi-amd64. Tu as donc le choix entre

  • désinstaller grub-pc pour ne plus être embêté, mais le GRUB EFI installé ne sera pas mis à jour.
  • installer grub-efi-amd64, ce qui désinstalle grub-pc et met à jour le GRUB EFI installé sur la partition EFI actuellement montée sur /boot/efi (mais pas l’autre).

A toi de voir.

Une remarque importante : bien que GRUB soit installé dans les deux partitions EFI, a priori cela n’assure pas la redondance de l’amorçage en cas de défaillance d’un disque. En effet d’après efibootmgr il n’y a qu’une seule entrée « debian » donc l’amorçage ne fonctionne qu’avec un seul des deux disques (à moins qu’une des entrées « ubuntu* » pointe vers la partition EFI de l’autre disque mais j’en doute, à vérifier avec efibootmgr -v). L’installation de grub-efi-amd64 n’y changera rien, à part éventuellement lequel des deux disques est utilisé pour l’amorçage.

Pour que l’amorçage soit redondant, il faut des opérations supplémentaires.

D’autre part, les swaps ne sont pas en RAID, ce qui nuit à la disponibilité du système en cas de défaillance d’un disque. Je n’ai jamais compris pourquoi tant d’installations en RAID ne mettent pas le swap en RAID. Si encore les deux swaps étaient définis avec la même priorité dans /etc/fstab pour être utilisés en parallèle façon RAID 0 je comprendrais, mais ce n’est même pas le cas.

1 J'aime

Je pense que le mieux est de repartir sur du propre, à savoir du grub-efi-amd64. Ce que je viens de faire à l’instant, sans plus d’erreur.

Que puis-je faire à présent pour vérifier que tout est en ordre (tout du moins, pour que je puisse au moins redémarrer).

Par le fait, comment pourrais-je rendre la redondance pleinement opérationnelle ? Car en l’état mon raid 1 n’est pas vraiment construit de manière optimale. Quelles opérations seraient nécessaires ?

efibootmgr -v

BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0008,0003,0005,0004,0006,0007,0001,0000
Boot0000* ubuntu        VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
Boot0001* ubuntu1804-server_64 (GRUB) (first drive sda) VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
Boot0003* UEFI: PXE IP4 P0 Intel(R) Ethernet Controller X550    PciRoot(0x0)/Pci(0x1b,0x0)/Pci(0x0,0x0)/MAC(d05099d1e968,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO
Boot0004* UEFI: PXE IP6 P0 Intel(R) Ethernet Controller X550    PciRoot(0x0)/Pci(0x1b,0x0)/Pci(0x0,0x0)/MAC(d05099d1e968,1)/IPv6([::]:<->[::]:,0,0)..BO
Boot0005* UEFI: PXE IP4 P1 Intel(R) Ethernet Controller X550    PciRoot(0x0)/Pci(0x1b,0x0)/Pci(0x0,0x1)/MAC(d05099d1e969,1)/IPv4(0.0.0.00.0.0.0,0,0)..BO
Boot0006* UEFI: PXE IP6 P1 Intel(R) Ethernet Controller X550    PciRoot(0x0)/Pci(0x1b,0x0)/Pci(0x0,0x1)/MAC(d05099d1e969,1)/IPv6([::]:<->[::]:,0,0)..BO
Boot0007* UEFI: Built-in EFI Shell      VenMedia(5023b95c-db26-429b-a648-bd47664c8012)..BO
Boot0008* debian        HD(1,GPT,2334db71-74e9-45f0-bc8d-a2f3a075b3e5,0x800,0xff800)/File(\EFI\debian\shimx64.efi)

Boot0000 et Boot0001 me semblent être des reliquats du master de l’installation de base (c’est du OVH), c’est d’autant plus curieux que je n’ai jamais installé de Ubuntu 18 dans le cas présent.

Merci pour ton aide

Normalement l’installation de grub-efi-amd64 a installé la dernière version du chargeur GRUB dans le répertoire EFI/debian de la partition EFI montée sur /boot/efi (/dev/sdb1) et dans /boot/grub/x86_64-efi, et créé/mis à jour l’entrée de boot EFI « debian » correspondante.

Pour vérifier :

ls -l /boot/efi/EFI/debian /boot/grub
df -hT /boot/efi # pour voir quelle partion EFI est montée
blkid | grep EFI # pour voir le PARTUUID des partitions EFI
efibootmgr -v | grep debian # pour voir le PARTUUID de la partition pointée par l'entrée de boot

Dans /etc/fstab la partition EFI à monter est identifiée par son LABEL=EFI_SYSPART mais les deux partitions EFI ont le même LABEL, donc n’importe laquelle peut être montée à chaque démarrage. Cette fois-ci c’est apparemment /dev/sdb1.

Redondance de l’amorçage EFI

Le chargeur GRUB installé dans l’autre partition EFI (/dev/sda1, qui n’est actuellement pas montée) n’a pas été mis à jour, et n’a pas d’entrée de boot EFI donc ne sert à rien. Pour que le GRUB installé dans l’autre partition EFI soit utile, il faut soit lui créer une entrée de boot EFI, soit l’installer dans le « chemin de support amovible » EFI/BOOT/, un emplacement spécial de la partition EFI qui ne nécessite pas d’entrée de boot mais qui n’est pas toujours pris en compte par le firmware UEFI.

Choses à savoir :

  • l’installation « classique » de GRUB dans la seconde partition EFI modifierait l’entrée de boot « debian » existante au lieu d’en créer une seconde, ce qui ne résoudrait pas le problème de redondance de l’amorçage
  • on peut empêcher grub-install de créer automatiquement une entrée de boot EFI avec l’option --no-nvram et on peut créer une entrée de boot EFI manuellement avec efibootmgr mais le risque d’erreur dans les paramètres à passer n’est pas négligeable.
  • l’option --bootloader-id=nom de grub-install permet de spécifier un autre nom que « debian » pour l’entrée de boot à créer/modifier. Mais cela affecte aussi le nom du sous-répertoire dans EFI/ où les fichiers de GRUB sont installés. Or la variante de GRUB signée pour le secure boot, qui est installée par défaut, a le chemin du fichier de configuration initial EFI/debian/grub.cfg codé en dur et ne fonctionne pas si ce fichier est installé ailleurs.

Il y a donc différentes possibilités pour installer GRUB dans l’autre partition EFI.

  • installer une copie de GRUB dans le chemin de support amovible sans créer d’entrée de boot EFI

    mount /dev/sda1 /mnt
    grub-install --force-extra-removable --no-nvram --efi-directory=/mnt
    
  • installer GRUB dans le chemin normal EFI/debian sans créer d’entrée de boot EFI automatiquement et créer une entrée de boot avec efibootmgr

    mount /dev/sda1 /mnt
    grub-install --no-nvram --efi-directory=/mnt
    efibootmgr --create --device /dev/sda --part 1 --label 'fallback' --loader '\EFI\debian\shimx64.efi' --verbose
    
  • installer GRUB avec un nom (et dans un emplacement) alternatif et copier le fichier grub.cfg dans l’emplacement attendu par GRUB signé (on ne peut pas faire de lien symbolique ou physique, pas supporté par FAT)

    mount /dev/sda1 /mnt
    grub-install --bootloader-id=fallback --efi-directory=/mnt
    mkdir -p /mnt/EFI/debian
    cp /mnt/EFI/fallback/grub.cfg /mnt/EFI/debian/grub.cfg
    
  • installer la variante non signée de GRUB (qui ne code pas le chemin de grub.cfg en dur) avec un nom alternatif

    mount /dev/sda1 /mnt
    grub-install --bootloader-id=fallback --no-uefi-secure-boot --efi-directory=/mnt
    

Et ne pas oublier qu’il faudra refaire ces opérations après chaque mise à jour des paquets grub* car le paquet grub-efi-amd64 ne prend en charge automatiquement que la réinstallation de GRUB dans la partition EFI actuellement montée sur /boot/efi.

De tout ceci on peut conclure que les paquets grub-efi* de Debian ne sont pas du tout adaptés à la mise en place d’un amorçage redondant. L’amorçage redondant en mode BIOS/legacy est beaucoup plus simple à mettre en place avec grub-pc qui le prend en charge, c’est ce que je recommande quand c’est possible.

Redondance du swap

Pour rendre le swap redondant, il faut le mettre en RAID 1
désactiver tous les swaps actifs

swapoff -a

commenter les lignes de swap dans /etc/fstab
créer un ensemble RAID 1 avec les deux ex-partitions de swap

mdadm --create /dev/md3 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3

formater l’ensemble RAID en tant que swap

mkswap -L swap-md3 /dev/md3

déclarer le nouveau swap dans /etc/fstab

LABEL=swap-md3 swap swap defaults

Activer le nouveau swap avec

swapon -a

Si un swap avait été défini dans l’initramfs pour le retour de l’hibernation, alors il faut le mettre à jour avec l’identifiant du nouveau swap.
Si dans les fichiers /etc/initramfs-tools/initramfs.conf et /etc/initramfs-tools/conf.d/* (notamment /etc/initramfs-tools/conf.d/resume) la variable RESUME n’est pas définie, est vide (RESUME=) ou définie avec la valeur « auto » (RESUME=auto), alors il suffit de reconstruire l’initramfs avec

update-initramfs -u

Si la variable RESUME est définie avec un identifiant de swap, il faut le modifier en

RESUME=LABEL=swap-md3

puis reconstruire l’initramfs comme ci-dessus.

@PascalHambourg comme d’habitude, un grand merci pour la richesse de votre réponse !