GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Wie verwendet man libguestfs-Tools zum Bearbeiten von Disk-Images virtueller Maschinen (VM) in CentOS/RHEL/Fedora?

Frage: Aus Versehen hatte ich das Root-Konto in einer virtuellen CentOS-Maschine deaktiviert, die in VMWare ausgeführt wurde. Danach habe ich alle Möglichkeiten ausprobiert, um das „Root“-Konto wiederherzustellen, und mich schließlich entschieden, die VM im Einzelbenutzermodus neu zu starten. Leider konnte die VM nicht im Einzelbenutzermodus gestartet werden und die Fehlermeldungen zeigten an, dass der Startvorgang root erwartet Konto und der Prozess hing auf unbestimmte Zeit. Unten ist der Screenshot, der das Szenario erklärt:

Um das Problem zu beheben, muss ich irgendwie /etc/passwd bearbeiten Datei und aktivieren Sie das Root-Konto. Dazu brauche ich das Disk-Image der virtuellen Maschine – in meinem Fall lief die VM auf VMWare, also brauche ich das vmdk Datei.

Lösung:

In dieser Anleitung zeige ich Ihnen, wie Sie die libguestfs-Tools verwenden um auf die Disk-Image-Datei der virtuellen Maschine (VM) zuzugreifen und sie zu bearbeiten. libguestfs ist eine C-Bibliothek mit einer Reihe von Tools zum Anzeigen und Bearbeiten von Dateien in Gästen, zum Vornehmen von Änderungen an VMs, zum Überwachen der Festplattennutzung, zum Klonen von VMs, zum Formatieren von Festplatten, zum Ändern der Festplattengröße und vielem mehr. Das Tool ist in der Lage, VM-Festplatten-Images von CDs, USB-Festplatten und auch remote über SSH zu lesen.

Vor der Verwendung von libguestfs Tools, bereiten Sie sich mit der Festplatten-Image-Datei Ihrer virtuellen Maschine vor. Die libguestfs unterstützt auch proprietäre Systeme wie VMware und Hyper-V.

Installieren Sie die libguestfs-Tools:

Unter CentOS/Fedora/RHEL:

sudo yum installiere libguestfs-tools

Auf Debian/Ubuntu:

sudo apt-get install libguestfs-tools

Wie ich bereits sagte, enthält libguestfs-Tools viele Befehle wie guestfish, guestmount, guestunmount, virt-alignment-scan, virt-builder, virt-cat, virt-copy, virt-edit, virt-diff, virt-customize, virt -filesystems, virt-format, virt-get-kernel, virt-inspector, virt-list-filesystems, virt-list-partitions, virt-log, virt-ls, virt-make-fs, virt-p2v, virt-p2v -make-disk, virt-rescue, virt-tar und viele mehr. Aber wir verwenden den Befehl guestfish, mit dem Sie auf Images virtueller Maschinen zugreifen und diese ändern können.

Gastfisch:

Der Gastfisch Der Befehl kann sowohl als interaktive Shell als auch als Befehlszeilentool verwendet werden. Mit dem Befehl können Sie ein Disk-Image sowohl im schreibgeschützten Modus (Option –ro) als auch im Lese-/Schreibmodus (Option –rw) öffnen.

Achtung:Stellen Sie sicher, dass Sie die VM herunterfahren, bevor Sie guesfish verwenden, um auf das Image zuzugreifen oder es zu ändern. 

Gastfisch als interaktive Shell verwenden:

# guestfishWillkommen bei guestfish, der interaktiven Shell für das libguestfs-Dateisystem zum Bearbeiten von Dateisystemen virtueller Maschinen 

Lassen Sie uns nun auf die vmdk-Image-Datei zugreifen (z. B. test-flat.vmdk ).

> add-ro test-flat.vmdk 

Hinweis: Achten Sie auf den Befehl add-ro Das heißt, Hinzufügen oder Zugreifen auf das Bild im schreibgeschützten Modus. Wenn Sie Änderungen am Bild vornehmen möchten, müssen Sie das Bild mit Lese-/Schreibberechtigung öffnen (dazu später mehr).

Immer run ausführen Befehl, bevor Sie die Dateisysteme im Disk-Image wie unten gezeigt auflisten:

> ausführen â 25% â|âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠-:- 50% ige â|âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:3 A 75% â|âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:1 100% â|âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00.00 

Der obige Befehl braucht eine Weile, um das Bild zu lesen. Sobald Sie fertig sind, können Sie die verfügbaren Dateisysteme auf der Festplatte wie unten gezeigt auflisten:

> list-filesystems /dev/vda1:ext4/dev/VolGroup/lv_home:ext4/dev/VolGroup/lv_root:ext4/dev/VolGroup/lv_swap:swap

Jetzt muss ich /dev/VolGroup/lv_root mounten für den Zugriff auf /etc/passwd .

> Mount /dev/VolGroup/lv_root / 

Da ich das Bild im schreibgeschützten Modus geöffnet habe, kann ich nur /etc/passwd anzeigen .

> cat /etc/passwd :::::::::::::::::::::::

Hier ist der vollständige Schnappschuss:

# guestfishWillkommen bei guestfish, der interaktiven Shell für das libguestfs-Dateisystem zum Bearbeiten von Dateisystemen virtueller Maschinen 
> add-ro test-flat.vmdk> ausführen â 50% â|âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠-:- 75% â|âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00:0 100% â|âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ⧠00.00>   mount / dev / volgroup / lv_root / > cat /etc/passwd ::::::::::::::::::::::::::::::> Beenden 

Guestfish als Befehl verwenden und eine Datei bearbeiten:

# guestfish --rw --add test-flat.vmdk -i edit /etc/passwd

Achten Sie auf die Optionen

  • –rw – um das Disk-Image der VM im Lese-/Schreibmodus zu öffnen
  • –hinzufügen – fügt das Image „test-flat.vmdk“ hinzu
  • -ich – Mountet die Laufwerke automatisch von einem Image einer virtuellen Maschine
  • bearbeiten – Befehl zum Bearbeiten der Datei

Mit dem obigen Befehl können Sie eine Datei direkt aus dem Bild bearbeiten und auch speichern.

Einige weitere Beispiele:

Angenommen, Sie möchten /etc/resolv.conf aktualisieren in einem Gast, dann können Sie das folgendermaßen tun.

# guestfish \
   add disk.vmdk : run : mount /dev/VolGroup/lv_root / : \
   write /etc/resolv.conf "nameserver 8.8.8.8" 

Guestfish verwenden, um mit ssh auf ein entferntes Disk-Image zuzugreifen:

# guestfish -a ssh://somedomain.com/path/to/disk.vmdk 

guestfish kann Ihnen helfen, Wunder zu vollbringen, daher ist es eine gute Idee, einen Blick auf seine Hilfeseite zu werfen.

# guestfish -N help

Das ist es. Besuchen Sie libguestfs.org für weitere Informationen.


Cent OS
  1. So installieren Sie Python 3.5 unter CentOS/RHEL und Fedora

  2. [Linux] :So konfigurieren Sie yum für die Verwendung des CentOS-Repositorys auf dem RHEL-Computer

  3. Wie entpacke ich ein 7z-Paket in CentOS/RHEL/Fedora?

  4. CentOS / RHEL 7 :So extrahieren Sie das initramfs-Image und bearbeiten/anzeigen es

  5. CentOS / RHEL :So installieren Sie Open Virtual Machine Tools für virtuelle Maschinen, die auf VMWare gehostet werden

So installieren Sie KVM unter CentOS 8 / RHEL 8

So installieren Sie Cockpit unter CentOS 7 / RHEL 7 und Fedora 28

So installieren Sie pgAdmin 4 unter CentOS 7 / RHEL 7 und Fedora 29 / Fedora 28

So installieren und verwenden Sie Firewalld in CentOS / RHEL

So installieren Sie die virtuelle HipHop-Maschine unter CentOS 7

So installieren Sie Wine 5.0 auf CentOS, RHEL und Fedora