Guide des technologies

Préparer GRUB2 et /dev/sda pour un RAID1 logiciel sur un système LVM en fonctionnement

6 min read Administration système Mis à jour 12 Oct 2025
GRUB2 et RAID1 sur LVM : préparer /dev/sda
GRUB2 et RAID1 sur LVM : préparer /dev/sda

Ce guide explique comment installer et vérifier GRUB2 sur les deux disques (/dev/sda et /dev/sdb), ajouter /dev/sda1 à l’ensemble RAID /dev/md0 et mettre à jour la configuration mdadm et initramfs. Suivez les vérifications et la checklist pour éviter de rendre le système non amorçable et consultez la section « Résolution des problèmes » en cas d’erreur.

Contexte et objectif

Objectif : garantir que le chargeur GRUB2 et la configuration RAID1 sont correctement installés et synchronisés sur les deux disques d’un système déjà en production utilisant LVM. Ce document traduit et adapte les commandes et sorties d’exemple, et ajoute contrôles, procédures et dépannage.

Important : ces opérations touchent la zone d’amorçage et la table de partitions. Sauvegardez les données et, si possible, effectuez d’abord un test sur une machine non critique.

1. Préparer GRUB2

Assurez-vous que GRUB2 est installé sur les deux disques physiques pour que la machine puisse démarrer si l’un des disques échoue :

grub-install /dev/sda
grub-install /dev/sdb

Puis redémarrez le système pour vérifier que le noyau et l’initramfs fonctionnent correctement à partir des ensembles RAID :

reboot

2. Vérifier que /dev/md0 est actif

Après redémarrage, vérifiez l’utilisation des systèmes de fichiers et la présence de /dev/md0 :

df -h

Exemple de sortie attendue :

root@server1:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/server1-root
4.5G  722M  3.6G  17% /
tmpfs                 249M     0  249M   0% /lib/init/rw
udev                  244M  128K  244M   1% /dev
tmpfs                 249M     0  249M   0% /dev/shm
/dev/md0              236M   18M  206M   8% /boot
root@server1:~#

Vérifiez l’état des ensembles RAID :

cat /proc/mdstat

Exemple :

root@server1:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda5[2] sdb5[1]
4989940 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sdb1[1]
248820 blocks super 1.2 [2/1] [_U]

unused devices: 
root@server1:~#

Ici md0 est encore dégradé ([_U]) car /dev/sda1 n’a pas été ajouté.

3. Vérifier les volumes LVM

Affichez les volumes physiques, groupes et volumes logiques :

pvdisplay
vgdisplay
lvdisplay

Exemples d’issues attendues (extraits) :

root@server1:~# pvdisplay
--- Physical volume ---
PV Name               /dev/md1
VG Name               server1
PV Size               4.76 GiB / not usable 1012.00 KiB
Allocatable           yes (but full)
PE Size               4.00 MiB
Total PE              1218
Free PE               0
Allocated PE          1218
PV UUID               W4I07I-RT3P-...
root@server1:~# vgdisplay
--- Volume group ---
VG Name               server1
Format                lvm2
VG Size               4.76 GiB
PE Size               4.00 MiB
Total PE              1218
Alloc PE / Size       1218 / 4.76 GiB
Free  PE / Size       0 / 0
VG UUID               m99fJX-...
root@server1:~# lvdisplay
--- Logical volume ---
LV Name                /dev/server1/root
VG Name                server1
LV Size                4.51 GiB
...

--- Logical volume ---
LV Name                /dev/server1/swap_1
LV Size                252.00 MiB
...

Ces sorties confirment que LVM est sur /dev/md1 et que le système a des volumes logiques actifs.

4. Changer le type de partition de /dev/sda1

Ouvrez fdisk sur /dev/sda et changez le type de la partition 1 en Linux raid autodetect (code hex fd) :

fdisk /dev/sda

Exemple d’interaction :

root@server1:~# fdisk /dev/sda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): <-- t
Partition number (1-5): <-- 1
Hex code (type L to list codes): <-- fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): <-- w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
root@server1:~#

Note : si la relecture échoue, redémarrez ou exécutez partprobe/kpartx comme indiqué.

5. Ajouter /dev/sda1 à l’ensemble md0

Ajoutez la partition au RAID :

mdadm --add /dev/md0 /dev/sda1

Puis vérifiez l’état :

cat /proc/mdstat

Sortie attendue une fois la reconstruction terminée :

root@server1:~# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda5[2] sdb5[1]
4989940 blocks super 1.2 [2/2] [UU]

md0 : active raid1 sda1[2] sdb1[1]
248820 blocks super 1.2 [2/2] [UU]

unused devices: 
root@server1:~#

6. Mettre à jour /etc/mdadm/mdadm.conf

Sauvegardez puis régénérez mdadm.conf :

cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf
mdadm --examine --scan >> /etc/mdadm/mdadm.conf

Exemple du fichier mdadm.conf généré :

cat /etc/mdadm/mdadm.conf
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

DEVICE partitions

CREATE owner=root group=disk mode=0660 auto=yes

HOMEHOST 

MAILADDR root

# definitions of existing MD arrays

# This file was auto-generated on Tue, 24 May 2011 21:11:37 +0200
# by mkconf 3.1.4-1+8efb9d1
ARRAY /dev/md/0 metadata=1.2 UUID=6cde4bf4:7ee67d24:b31e2713:18865f31 name=server1.example.com:0
ARRAY /dev/md/1 metadata=1.2 UUID=3ce9f2f2:ac89f75a:530c5ee9:0d4c67da name=server1.example.com:1

7. Supprimer le script d’amorçage spécifique et mettre à jour GRUB

Supprimez le script /etc/grub.d/09_swraid1_setup s’il existe :

rm -f /etc/grub.d/09_swraid1_setup

Générez la configuration GRUB et actualisez l’initramfs :

update-grub
update-initramfs -u

Vérifiez que /boot/grub/grub.cfg contient des menuentries qui pointent vers /dev/md0 et non vers (hd0) ou (hd1).

Ensuite, réinstallez GRUB sur les deux disques toujours :

grub-install /dev/sda
grub-install /dev/sdb

Enfin, redémarrez pour vérifier que le système démarre correctement depuis les ensembles RAID :

reboot

Si tout s’est bien passé, le système démarrera normalement et vous aurez un RAID1 logiciel amorçable.

Vérifications rapides (Fact box)

  • /proc/mdstat : tous les ensembles RAID doivent être [UU] pour un miroir sain.
  • df -h : /boot monté sur /dev/md0.
  • mdadm –examine –scan : UUID cohérentes dans /etc/mdadm/mdadm.conf.
  • /boot/grub/grub.cfg : menuentries utilisant /dev/md0.
  • grub-install : pas d’erreurs en sortie.

Checklist opératoire (rôle : administrateur)

  • Sauvegarde récente de données critiques.
  • Accès console (KVM/IPMI) disponible en cas d’échec de boot.
  • Vérifier l’état initial de /proc/mdstat et LVM.
  • Modifier le type de partition si nécessaire.
  • Ajouter la partition au RAID et attendre la reconstruction.
  • Mettre à jour mdadm.conf.
  • Supprimer le script obsolète et regénérer GRUB et initramfs.
  • Installer GRUB sur les deux disques.
  • Redémarrer et valider le boot.

Checklist opératoire (rôle : opérateur de niveau 1)

  • Contrôler la progression de la reconstruction dans /proc/mdstat.
  • Surveiller les logs système (dmesg, /var/log/syslog).
  • Signaler toute erreur d’E/S disque ou timeout.

Résolution des problèmes courants

  • Le système ne boote plus après modification de la table de partitions :

    • Assurez-vous que grub-install a réussi sur les deux disques.
    • Démarrez en mode rescue depuis un média live. Montez /dev/md0 sur /boot et chroot pour réinstaller GRUB.
  • /proc/mdstat montre que md0 reste en mode [_U] :

    • Vérifiez que /dev/sda1 a bien le type fd.
    • Relancez mdadm –add /dev/md0 /dev/sda1.
    • Vérifiez les erreurs disque dans dmesg.
  • update-initramfs échoue :

    • Vérifiez l’espace disponible sur /boot.
    • Examinez les hooks initramfs personnalisés (ex. hooks liés à mdadm).
  • Relecture de la table de partitions échoue (ioctl erreur 16) :

    • Exécutez partprobe /dev/sda ou redémarrez si possible.
    • Si disque busy, démontez les ressources et réessayez.

Approches alternatives

  • Utiliser GRUB sur une partition BIOS mélangée (BIOS boot) ou utiliser une partition EFI sur les deux disques si le système est en UEFI.
  • Préparer une image de récupération GRUB sur un média externe (USB) en cas d’urgence.
  • Pour les environnements critiques, automatiser la vérification et la réinstallation de GRUB dans une procédure d’orchestration (Ansible/Puppet).

Arbre de décision pour le redémarrage

flowchart TD
  A[Démarrage prévu] --> B{md0 est [UU] ?}
  B -- Oui --> C{Grub installé sur /dev/sda et /dev/sdb ?}
  B -- Non --> E[Attendre reconstruction ou recréer md0]
  C -- Oui --> F[Démarrage normal]
  C -- Non --> G[Installer GRUB sur les disques puis redémarrer]
  E --> H[Ajouter /dev/sda1 et surveiller /proc/mdstat]
  G --> F
  H --> B

Tests et critères d’acceptation

  • Après redémarrage, /boot doit monter sur /dev/md0 et md0 doit être [UU].
  • Les deux disques doivent contenir GRUB installés sans erreurs lors de grub-install.
  • /etc/mdadm/mdadm.conf doit contenir les ARRAY avec UUID corrects.

Sécurité et risques principaux avec mitigations

  • Risque : rendre le système non amorçable pendant la modification des partitions.

    • Mitigation : avoir accès console hors bande et sauvegarde.
  • Risque : corruption pendant reconstruction RAID si un disque a des erreurs.

    • Mitigation : vérifier SMART et logs avant reconstruction.

Glossaire (une ligne chacun)

  • RAID1 : miroir de blocs entre deux disques pour redondance.
  • mdadm : utilitaire de gestion des ensembles RAID sous Linux.
  • LVM : Logical Volume Manager, abstraction de stockage qui s’appuie sur des volumes physiques.
  • initramfs : image initiale du système de fichiers utilisée par le noyau au boot.

Résumé

Vous avez modifié le type de partition de /dev/sda1, ajouté la partition à /dev/md0, mis à jour mdadm.conf, supprimé le script obsolète, régénéré GRUB et l’initramfs, puis réinstallé GRUB sur les deux disques. Vérifiez /proc/mdstat, /boot et les configurations pour confirmer que tout fonctionne.

Important : conservez une procédure de récupération et testez ces étapes sur un serveur non critique avant de l’appliquer en production.

Auteur
Édition

Matériaux similaires

Synchroniser fichiers sans cloud
Synchronisation

Synchroniser fichiers sans cloud

Corriger les plantages de Hogwarts Legacy sur PC
Jeux PC

Corriger les plantages de Hogwarts Legacy sur PC

Assembler et démarrer un PC : guide complet
Hardware

Assembler et démarrer un PC : guide complet

Acheter du bitcoin sur Paxful — Guide pratique
Cryptomonnaies

Acheter du bitcoin sur Paxful — Guide pratique

GRUB2 et RAID1 sur LVM : préparer /dev/sda
Administration système

GRUB2 et RAID1 sur LVM : préparer /dev/sda

Utiliser une MicroSD comme stockage interne sur Android
Mobile

Utiliser une MicroSD comme stockage interne sur Android