Ce bref guide décrit ce qu'est Virt-rescue , comment sauver des machines virtuelles avec l'utilitaire de ligne de commande Virt-rescue dans les systèmes d'exploitation Linux.
Qu'est-ce que Virt-rescue ?
Virt-rescue est comme un CD de secours, mais pour les machines virtuelles uniquement. Il fournit un shell de secours simple et des outils de récupération pour inspecter et corriger les problèmes d'une machine virtuelle ou d'images de disque.
Veuillez noter que Virt-rescue est différent de guestfish. Guestfish est un shell interactif pour éditer et apporter des modifications aux machines virtuelles et aux images de disque.
En revanche, Virt-rescue est particulièrement adapté au sauvetage d'une machine virtuelle qui n'a pas démarré. Si une machine virtuelle ne démarre pas, vous pouvez simplement lancer un shell de secours sur la machine virtuelle ou l'image disque à l'aide de virt-rescue et essayer de résoudre le problème à l'aide des commandes Linux standard.
Vous pouvez utiliser virt-rescue sur n'importe quel fichier ou périphérique d'image disque, pas seulement sur une machine virtuelle. Par exemple, il peut être utilisé sur des clés USB, des cartes SD et des disques durs. Il ne nécessite pas d'autorisation root, sauf si vous avez besoin de root pour ouvrir l'image disque.
Virt-rescue fait partie de libguestfs qui fournit de nombreux utilitaires de ligne de commande pour accéder et modifier les images de disque de la machine virtuelle.
Sauvez des machines virtuelles avec Virt-rescue
Assurez-vous que les machines virtuelles sont désactivées. Vous ne devez pas exécuter le shell de secours sur n'importe quel live machines virtuelles ou images de disque.
Pour exécuter un shell de secours sur la machine virtuelle problématique, procédez comme suit :
$ virt-rescue -d centos8-uefi -i
Remplacez "centos8-uefi"
avec le nom de votre machine virtuelle. Vous pouvez trouver la liste des VM disponibles en utilisant "virsh list --all"
commande.
Vous pouvez également exécuter un shell de secours directement sur n'importe quelle image disque comme ci-dessous :
$ virt-rescue -a CentOS_8_Server.img -i
Ici, -i
(--inspector
) est utilisé pour monter automatiquement les systèmes de fichiers des machines virtuelles. Si vous ne l'utilisez pas, vous devrez monter manuellement les systèmes de fichiers de la machine virtuelle dans un répertoire vide appelé /sysroot
.
Vous allez maintenant atterrir dans un shell bash interactif où vous pouvez utiliser de nombreuses commandes Linux ordinaires pour sauver les machines virtuelles.
[...] Welcome to virt-rescue, the libguestfs rescue shell. Note: The contents of / (root) are the rescue appliance. Use 'cd /sysroot' or 'chroot /sysroot' to see guest filesystems. groups: cannot find name for group ID 0 ><rescue> The virt-rescue escape key is ‘^]’. Type ‘^] h’ for help.
À partir du shell de secours, vous pouvez commencer à utiliser les commandes Linux traditionnelles pour réparer la machine virtuelle.
Comme indiqué ci-dessus, les systèmes de fichiers de la machine invitée sont montés dans /sysroot
répertoire.
Vous pouvez le vérifier avec "ls"
commande :
><rescue> ls /sysroot/ bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr
Pour chrooter dans le /sysroot
répertoire en premier :
><rescue> chroot /sysroot
Pour quitter le shell de secours, tapez exit
et appuyez sur Entrée ou appuyez sur Ctrl+d
.
Lancer les VM en mode lecture seule
Comme indiqué précédemment, vous ne devez pas exécuter le shell de secours sur des machines virtuelles en direct. Mais si vous vouliez toujours le faire pour une raison quelconque, utilisez --ro
possibilité d'utiliser "virt-rescue"
en toute sécurité sur une image disque en direct ou une machine virtuelle.
$ virt-rescue -d centos8-uefi -i --ro
Ou,
$ virt-rescue -a CentOS_8_Server.img -i --ro
Le --ro
L'option lancera la machine virtuelle ou l'image disque en mode lecture seule. Il est idéal pour expérimenter des machines virtuelles ou des images de disque. Aucune modification ne sera réellement enregistrée. Une fois que vous quittez le shell, toutes les modifications seront perdues !
Activer l'accès au réseau pour les VM
Si vous souhaitez télécharger un fichier ou un package dans la machine virtuelle, vous pouvez utiliser --network
option lors de l'exécution de la commande virt-rescue :
$ virt-rescue -d centos8-uefi -i --network
Ou,
$ virt-rescue -a CentOS_8_Server.img -i --network
Cette option active l'accès au réseau à l'intérieur du shell de secours, vous pouvez donc télécharger des éléments depuis Internet.
Virt-rescue a de nombreuses options. Pour plus de détails, reportez-vous aux pages de manuel :
$ man virt-rescue
Image sélectionnée par Miguel Á. Padriñán de Pexels .