Diese kurze Anleitung beschreibt, was Virt-Rescue ist , wie man virtuelle Maschinen mit dem Befehlszeilendienstprogramm Virt-rescue in Linux-Betriebssystemen rettet.
Was ist Virt-Rescue?
Virt-Rettung ist wie eine Rettungs-CD, aber nur für virtuelle Maschinen. Es bietet eine einfache Notfall-Shell und einige Wiederherstellungstools, um Probleme in einer virtuellen Maschine oder in Festplatten-Images zu untersuchen und zu beheben.
Bitte beachten Sie, dass sich Virt-Rescue von Guestfish unterscheidet. Guestfish ist eine interaktive Shell zum Bearbeiten und Vornehmen von Änderungen an virtuellen Maschinen und Disk-Images.
Im Gegensatz dazu ist Virt-Rescue besonders geeignet, um eine virtuelle Maschine zu retten, die nicht gestartet werden konnte. Wenn eine VM nicht bootet, können Sie einfach mit virt-rescue eine Rescue-Shell auf der VM oder dem Disk-Image starten und versuchen, das Problem mit den Standard-Linux-Befehlen zu beheben.
Sie können virt-rescue auf jeder Disk-Image-Datei oder jedem Gerät verwenden, nicht nur auf einer virtuellen Maschine. Es kann beispielsweise auf USB-Laufwerken, SD-Karten und Festplatten verwendet werden. Es erfordert keine Root-Berechtigung, es sei denn, Sie benötigen Root, um das Disk-Image zu öffnen.
Virt-Rescue ist Teil von libguestfs das viele Befehlszeilenprogramme für den Zugriff und die Änderung von Festplatten-Images virtueller Maschinen bereitstellt.
Retten Sie virtuelle Maschinen mit Virt-Rescue
Stellen Sie sicher, dass die virtuellen Maschinen ausgeschaltet sind. Sie dürfen Rescue Shell auf keinem Live ausführen virtuelle Maschinen oder Disk-Images.
Gehen Sie wie folgt vor, um eine Notfall-Shell auf der problematischen virtuellen Maschine auszuführen:
$ virt-rescue -d centos8-uefi -i
Ersetzen Sie "centos8-uefi"
mit dem Namen Ihrer virtuellen Maschine. Die Liste der verfügbaren VMs finden Sie mit "virsh list --all"
Befehl.
Sie können eine Notfall-Shell auch direkt auf einem oder mehreren Disk-Images ausführen, wie unten:
$ virt-rescue -a CentOS_8_Server.img -i
Hier, -i
(--inspector
)-Flag wird verwendet, um die Dateisysteme der virtuellen Maschinen automatisch einzuhängen. Wenn Sie es nicht verwenden, müssen Sie die Dateisysteme der virtuellen Maschine manuell in einem leeren Verzeichnis mit dem Namen /sysroot
einhängen .
Sie landen nun in einer interaktiven Bash-Shell, wo Sie viele gewöhnliche Linux-Befehle verwenden können, um die virtuellen Maschinen zu retten.
[...] 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.
Von der Rescue-Shell aus können Sie mit den herkömmlichen Linux-Befehlen beginnen, um die VM zu reparieren.
Wie oben erwähnt, werden die Dateisysteme des Gastcomputers in /sysroot
eingehängt Verzeichnis.
Sie können dies mit "ls"
überprüfen Befehl:
><rescue> ls /sysroot/ bin dev home lib64 mnt proc run srv tmp var boot etc lib media opt root sbin sys usr
Um in /sysroot
zu chrooten Verzeichnis zuerst:
><rescue> chroot /sysroot
Um die Rescue-Shell zu verlassen, geben Sie exit
ein und drücken Sie die Eingabetaste oder drücken Sie Ctrl+d
.
VMs im schreibgeschützten Modus starten
Wie bereits erwähnt, sollten Sie Rescue Shell nicht auf Live-VMs ausführen. Aber wenn Sie es aus irgendeinem Grund trotzdem tun wollten, verwenden Sie --ro
Option zur Verwendung von "virt-rescue"
sicher auf einem Live Disk Image oder einer VM.
$ virt-rescue -d centos8-uefi -i --ro
Oder,
$ virt-rescue -a CentOS_8_Server.img -i --ro
Der --ro
Option startet die VM oder das Disk-Image im schreibgeschützten Modus. Es ist ideal zum Experimentieren mit VMs oder Disk-Images. Es werden keine Änderungen tatsächlich gespeichert. Sobald Sie die Shell verlassen, gehen alle Änderungen verloren!
Netzwerkzugriff für VMs aktivieren
Wenn Sie eine Datei oder ein Paket in die virtuelle Maschine herunterladen möchten, können Sie --network
verwenden Option beim Ausführen des virt-rescue-Befehls:
$ virt-rescue -d centos8-uefi -i --network
Oder,
$ virt-rescue -a CentOS_8_Server.img -i --network
Diese Option ermöglicht den Netzwerkzugriff innerhalb der Rettungs-Shell, sodass Sie Inhalte aus dem Internet herunterladen können.
Virt-Rescue hat viele Möglichkeiten. Weitere Einzelheiten finden Sie in den Manpages:
$ man virt-rescue
Vorgestelltes Bild von Miguel Á. Padriñán von Pexels .