Być może niewielu wie libguestfs, biblioteka napisana w C oraz zestaw narzędzi umożliwiających dostęp i modyfikację obrazów dysków wirtualnych używanych w maszynach wirtualnych. Ponadto będziesz mógł pracować z kilkoma platformami wirtualizacji opartymi na Linux KVM, a obrazy VM będą montowane bezpośrednio na hoście za pomocą modułu FUSE i narzędzi guestmount/guestunmount.
Kolejną fajną rzeczą w libguestfs jest to, że może uzyskać dostęp do prawie każdego FSlub system plików, który obejmuje wszystkie systemy Linux (ext2, ext3, ext4, XFS, btrfs,…), MS Windows (VFAT i NTFS), macOS (HFS i HFS+), a także BSD, a nawet zarządzanie woluminami LVM2. Wszystko to zarówno w MBR, jak i GPT.
Jeśli chodzi o typy dysków wirtualnych do którego masz dostęp, może to być:
- qkrowa2
- VirtualBox.vdi
- VMWare.vmdk
- Hyper-V .vhd i .vhdx
Możesz także uzyskać dostęp i modyfikować pliki, urządzenia lokalne, obrazy ISO, karty pamięci SD lub zrobić to zdalnie przez protokoły się:
- FTP
- HTTP
- SSH
- iSCSI
- NBD
- GlusterFS
- Cef
- Owczarek
- itd.
Ponadto libguestfs nie potrzebuje uprawnień, co też jest ciekawe. Dzięki temu projektowi będziesz mieć różne narzędzia wiersza poleceń, takie jak guestfish, guestmount, guestunmount, virt-rescue do naprawy nieuruchamiających się maszyn wirtualnych, virt-cat, virt-tar itp.
libguestfs działa również jako API aby móc łączyć programy zarządzające w różnych językach programowania:
- C
- C + +
- Perl
- Python
- Rubin
- Java
- PHP
- Haskell
- Erlang
- Luka
- C#
- itd.
Można również użyj go ze skryptów, co jest bardzo praktyczne przy administrowaniu systemami. Ponadto ten projekt Richarda Jonesa można zainstalować z repozytoriów wielu znanych dystrybucji w ten sposób:
- Debian / Ubuntu i pochodne
sudo apt install libguestfs-tools
- Fedora/CentOS/RHEL i pochodne
sudo dnf install libguestfs
- Arch Linux i pochodne
sudo pacman -Sy libguestfs
Przy okazji, jeśli jesteś przy użyciu libvirt i spróbujesz wywołać dowolne z narzędzi lub narzędzi zawartych w libguestfs, otrzymasz błąd lubię to:
libguestfs: error: could not create appliance through libvirt.
La solución to tak proste, jak wyeksportowanie zmiennej jako „bezpośredniej”, tak:
export LIBGUESTFS_BACKEND=direct
Więcej informacji - Oficjalna strona internetowa