Table des matières

RAID MDADM de la partition EFI

Cette documentation est une synthèse de cet article: https://std.rocks/fr/gnulinux_mdadm_uefi.html

Pour faire en sorte de mettre la partition EFI en RAID 1 avec MDADM, il faut évidement que les deux disques aient une partition de même taille, et on va assumer que la partition EFI est déjà en place sur /dev/sda1.

Création du RAID

Pour commencer, on va créer le RAID en mode détérioré avec la partition libre :

# mdadm --create /dev/md/1 --level 1 --raid-disks 2 --metadata 1.0 /dev/sdb1 missing

L'usage de metadata 1.0 est extrêmement importante, car celle-ci sont à la fin de la partition, rendant lisible la partition par le BIOS sans monter le RAID.

ensuite, on créer le système de fichier :

# mkfs.fat -F32 /dev/md/1

puis on monte la partition :

# mount /dev/md/1 /tmp/efi

et on synchronise les données EFI sur cette partition :

# rsync -av /boot/efi/ /tmp/efi/

ensuite on démonte les partitions:

# umount /boot/efi
# umount /tmp/efi

et on monte la partition

# mount /dev/md/1 /boot/efi

Ensuite on re-ajoute la partition de /dev/sda1 au RAID :

# mdadm --manage /dev/md/1 --add /dev/sda1

et pour il faut ajouter la partition dans la configuration mdadm:

# mdadm --detail --scan /dev/md/1 >> /etc/mdadm/mdadm.conf

Configuration des entrées EFI dans le BIOS

Maintenant on va passer à l'étape délicate, configurer le BIOS. Il vous faudra pour ça l'utilitaire efibootmgr.

Pour commencer on va récupérer la liste des entrées EFI avec la commande :

# efibootmgr -v

Voici un exemple de retour :

BootCurrent: 0007
BootOrder: 0007,0002,0004,0008
Boot0002* Embedded NIC 1 Port 1 Partition 1     VenHw(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
Boot0004* USB Placeholder       VenHw(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
Boot0007* debian        HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,0x800,0xwwwwww)/File(\EFI\debian\shimx64.efi)
Boot0008* EFI Fixed Disk Boot Device 1  PciRoot(0x1)/Pci(0x2,0x0)/Pci(0x0,0x0)/Ctrl(0x1)/SCSI(0,0)/HD(1,GPT,xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,0x800,0xwwwwww)
MirroredPercentageAbove4G: 0.00
MirrorMemoryBelow4GB: false

On va donc supprimer l'entrée debian

# efibootmgr -B -b 0007

puis créer les deux entrées, une pour chaque disque :

# efibootmgr --create --disk /dev/sda --part 1 --label "debian sda1" --loader "\EFI\debian\shimx64.efi"
# efibootmgr --create --disk /dev/sdb --part 1 --label "debian sdb1" --loader "\EFI\debian\shimx64.efi"

Vous pouvez désormais re-vérifier les entrées EFI, elles devraient apparaitre et le Boot Order devrait aussi être ajusté.

Configurer le fstab

Ensuite, il faut aller modifier /etc/fstab, et mettre l'UUID de la partition /dev/md/1. Pour récupérer l'UUID il faut taper la commande :

# blkid /dev/md/1

et mettre la valeur UUID a la place de celle de la partition /boot/efi dans le fichier /etc/fstab.

Et pour finir lancer les commandes:

# systemctl daemon-reload
# update-initramfs -u

Et c'est tout, vous pouvez redémarrer en espérant que tout fonctionne bien.