libguestfs ist eine C -Bibliothek und ein Satz von Werkzeugen für den Zugriff auf und die Bearbeitung von virtuellen Festplattenabbildern, die in der Plattformvirtualisierung verwendet werden. Mit den Werkzeugen lassen sich virtuelle Maschinen (VMs), die von libvirt verwaltet werden, sowie Dateien innerhalb von VMs anzeigen und bearbeiten , Änderungen an VMs per Skript automatisieren, VMs erstellen und vieles mehr. [ 3 ] Sie wurde entwickelt, um Sicherheitsprobleme zu vermeiden, die beim direkten Einbinden virtueller Festplattenabbilder auf dem Hostsystem auftreten können. [ 4 ]
libguestfs kann auf nahezu jedes Dateisystem zugreifen, darunter alle bekannten Linux-Dateisysteme ( ext2 / 3 / 4 , XFS , btrfs usw.), alle Windows-Dateisysteme ( VFAT und NTFS ), alle Mac OS X- und BSD-Dateisysteme, LVM2 -Volume-Management, MBR- und GPT -Partitionen, Raw-Disks, qcow2 , VirtualBox VDI , VMware VMDK , Hyper-V VHD /VHDX, Dateien, lokale Geräte, CD- und DVD-ISOs, SD-Karten oder remote über FTP, HTTP, SSH , iSCSI , NBD , GlusterFS , Ceph , Sheepdog und vieles mehr. libguestfs benötigt keine Root-Berechtigungen.
Die C- API für libguestfs kann mit C- und C++- Programmen verknüpft werden. Sie verfügt über offizielle Bindungen für Perl , Python , Ruby , Rust , Java , OCaml , PHP , Haskell , Erlang , Lua , Golang und C# . [ 3 ]
libguestfs enthält Kommandozeilenprogramme, die die Nutzung über Shell-Skripte oder die Kommandozeile ermöglichen. [ 3 ] Es bietet zwei eigene „Shells“ für die interaktive Nutzung: guestfish für allgemeine Operationen und virt-rescue zur Reparatur nicht bootfähiger virtueller Maschinen. Mehrere Tools, die an gewöhnliche Unix -Befehle angelehnt sind, wie virt-cat und virt-tar , stehen ebenfalls zur Verfügung . [ 5 ] Mithilfe des FUSE- Moduls können Gastdateisysteme mit dem Befehl guestmount auf dem Host eingebunden werden . [ 3 ]
libguestfs funktioniert unter anderem, indem es eine Appliance (eine kleine Linux-Distribution) in einer virtuellen Maschine ausführt. [ 6 ] Dies kann entweder mit QEMU oder libvirt erreicht werden . Diese beiden können wiederum entweder TCG (Softwareemulation) oder KVM (hardwarebeschleunigt) verwenden. [ 7 ]
Struktur
libguestfs ist nur ein Teil des größeren libguestfs-Projekts. Jedes der folgenden Archive ist ein separates Quellcode-Archiv (Tarball): [ 8 ]
- libguestfs, die Bibliothek.
- guestfs-tools, die Kommandozeilenprogramme, die libguestfs verwenden.
- hivex, die Windows-Registry-Bearbeitungsbibliothek (mit Befehlszeilenprogrammen).
- libnbd, eine Benutzerbibliothek, die einen Client für Netzwerkblockgeräte bereitstellt .
- nbdkit, Code für einen Netzwerk-Blockgeräteserver.
- Supermin, Werkzeuge zur Erstellung von „Appliances“.
- virt-p2v, ein Tool zur Umwandlung einer physischen Maschine in eine KVM-Instanz.
- virt-v2v, ein Tool zur Konvertierung einer Nicht-KVM-Hypervisor-Instanz in eine KVM-Instanz.
Einige dieser Komponenten (nbd-bezogen und hivex) werden von den libguestfs-Autoren separat erstellt, da sie für die Implementierung bestimmter Funktionen in libguestfs benötigt werden, können aber auch unabhängig von der Bildverarbeitungsfunktionalität verwendet werden. Andere sind Werkzeuge, die auf libguestfs aufbauen, aber über dessen ursprünglichen Funktionsumfang hinausgehen.
Hivex
Hivex ist eine C-Bibliothek der Autoren zum Lesen und Schreiben von Windows-Registry- Hive-Dateien. Sie enthält mehrere Konsolenprogramme zur Bearbeitung dieser Dateien. Hivex selbst kann keine virtuellen Maschinenabbilder verarbeiten. Zum Bearbeiten von Dateien in VM-Abbildern stellt libguestfs das Programm „virt-win-reg“ bereit. [ 9 ]
Siehe auch
- Kernelbasierte virtuelle Maschine (KVM)
- QEMU
- libvirt
- OpenStack
- Linux-Anwendungsbereich § Virtualisierung
Referenzen
- ^ "Historische Versionen von libguestfs" .
- ^ "libguestfs 1.58.1 stable" .
- ^ a b c d "Beschreibung von der Startseite" .
- ^ „Eine Erinnerung daran, warum man Gast-Disk-Images niemals auf dem Host-Betriebssystem einbinden sollte . “
- ^ „Funktionen in Fedora 12“ .
- ^ „Manual page guestfs-performance(1): engineering libguestfs for greatest performance“ . libguestfs.org .
- ^ „Manual page guestfs(3), sections "backend" and "backend settings"" .
- ^ "Index von /" . download.libguestfs.org . Abgerufen am 07.09.2025 .
- ^ "hivex - Windows Registry "hive" extraction library" . libguestfs.org . Abgerufen am 07.09.2025 .