Échec du démarrage des VM de la famille RHEL 9 après clonage ou restauration d’un snapshot
Comment corriger les échecs de démarrage dans les VM de la famille RHEL 9 (AlmaLinux, Rocky, CentOS Stream) après clonage ou restauration d’un snapshot dans VergeOS, causés par le fichier LVM system.devices qui épingle les numéros de série des disques d’origine.
Ce guide couvre un échec de démarrage spécifique : une VM de la famille RHEL 9 (RHEL, AlmaLinux 9, Rocky Linux 9 ou CentOS Stream 9) qui démarre correctement sur l’hôte source, puis échoue sur l’instance clonée ou restaurée à partir d’un instantané, car le fichier system.devices de LVM ne correspond plus aux numéros de série de disque de la VM. Les étapes ci-dessous réparent la VM depuis le mode de secours. si vous n’avez pas encore effectué le clonage ou la restauration, voir la note «Empêcher cela sur les futurs clones, instantanés ou exportations » plus loin.
Symptômes
Après la restauration d’une VM depuis un instantané, ou le clonage d’une VM, la VM RHEL 9 ne parvient pas à démarrer (elle bascule en mode d’urgence ou se bloque au démarrage)
En mode de secours, vgchange -ay n’affiche rien et lvdisplay n’affiche rien
Vue d’ensemble
RHEL 9 et ses dérivés (AlmaLinux 9, Rocky Linux 9, CentOS Stream 9) utilisent un fichier de périphériques LVM à /etc/lvm/devices/system.devices qui met explicitement en liste blanche les périphériques de bloc selon leurs identifiants uniques — notamment les numéros de série de disque. Au démarrage, LVM ne prend en compte que les périphériques listés dans ce fichier lors de l’assemblage des groupes de volumes. Si les numéros de série qu’il voit ne correspondent pas à ceux enregistrés lors de la création du fichier, LVM n’activera pas le groupe de volumes racine et la VM basculera dans un shell d’urgence dracut.
Cela signifie que toute opération qui donne à une VM de nouveaux numéros de série de disque — le clonage d’une VM avec génération de nouveaux numéros de série matériels, ou la restauration d’un instantané d’une manière qui modifie les numéros de série — fera échouer le démarrage.
Prérequis
Accès à l’interface utilisateur VergeOS et à la console de la VM
Une image ISO d’installation de la famille RHEL 9 disponible dans les médias VergeOS (requis uniquement si la VM ne peut pas atteindre le menu GRUB)
Étapes
1. Démarrer dans un environnement de secours
La VM échouera probablement à démarrer normalement. Utilisez l’une des méthodes suivantes pour obtenir un shell fonctionnel.
Option A — Noyau de secours GRUB (recommandé)
Démarrez la VM et ouvrez la console dans VergeOS.
Pendant le démarrage, appuyez et maintenez Shift (BIOS) ou Esc (UEFI) pour accéder au menu GRUB.
Sélectionnez Options avancées et choisissez l’entrée de noyau de secours .
Suivez les invites — si l’on vous demande de monter le système de fichiers racine, sélectionnez Continuer.
Option B — Démarrer à partir de l’ISO d’installation
Si le menu GRUB est inaccessible ou si la VM n’atteint pas ce point :
Dans VergeOS, attachez à la VM une ISO d’installation de la famille RHEL 9 en tant que lecteur CD/DVD.
Ajustez l’ordre de démarrage de la VM pour démarrer d’abord sur l’ISO, ou utilisez une option de démarrage unique.
Dans le menu de l’installateur, accédez à Dépannage → Secourir un système [distro].
Lorsque vous êtes invité à monter le système installé, choisissez l’option 1 (monter sous
/mnt/sysimage).Sélectionnez Shell pour ouvrir une invite de commande.
2. Vérifier que le disque est visible, le rescanner et vérifier les groupes de volumes
Afficher les périphériques de bloc :
lsblkNotez le nom du périphérique (par ex., /dev/sda) et la partition LVM (par ex., /dev/sda3)
Forcer LVM à rescanner tous les périphériques de bloc (contourne le fichier de périphériques) :
pvscan --cachevgchange -aySi le rescannage n’affiche toujours rien, enregistrez explicitement la partition LVM :
lvmdevices --adddev /dev/sda3Remplacez par votre partition LVM réelle obtenue avec lsblkvgchange -ayVérifier que les groupes de volumes sont maintenant visibles
lvdisplay
3. Monter la partition racine et lier les systèmes de fichiers
mount /dev/<nom_périphérique> /mntRemplacez <nom_périphérique> par votre partition racine (par ex., sda2, mapper/vg0-root).Vérifiez le montage :
ls /mntVous devriez voir des répertoires comme /root, /boot, /home, /etc et /var.
Lier les systèmes de fichiers :
Utilisez la boucle for suivante pour lier les systèmes de fichiers virtuels nécessaires :
for i in proc sys dev run; do mount --rbind /$i /mnt/$i; doneOU montez-les individuellement :
mount --rbind /proc /mnt/procmount --rbind /sys /mnt/sysmount --rbind /dev /mnt/devmount --rbind /run /mnt/runPour les systèmes EFI/UEFI, montez également la partition EFI :
Remplacez /dev/sdX1 par votre partition EFI réelle (vérifiez avec lsblk ou fdisk -l).
4. Chrooter dans le système installé et monter les systèmes de fichiers supplémentaires
Changer le répertoire racine
chroot /mntAprès être entré dans le chroot, montez toutes les partitions supplémentaires définies dans fstab :
mount -a
5. Régénérer l’initramfs
Reconstruire l’initramfs afin qu’il prenne en compte la configuration de périphériques nettoyée :
dracut -f --regenerate-all
6. Redémarrer et vérifier
Quitter l’environnement chroot :
exitRedémarrer la VM :
reboot**Vérifier le démarrage :**Confirmez que la VM démarre correctement et que tous les disques apparaissent comme prévu.
Dépannage
Ressources supplémentaires
Mis à jour
Ce contenu vous a-t-il été utile ?