Det är kanske inte många som vet libguestfs, ett bibliotek skrivet i C och en uppsättning verktyg som låter dig komma åt och ändra de virtuella diskavbildningarna som används i virtuella maskiner. Dessutom kommer du att kunna arbeta med flera Linux KVM-baserade virtualiseringsplattformar, och VM-bilderna kommer att monteras direkt på värden med hjälp av FUSE-modulen och guestmount/guestunmount-verktygen.
En annan trevlig sak med libguestfs är det kan komma åt nästan alla FS, eller filsystem, och det inkluderar all Linux (ext2, ext3, ext4, XFS, btrfs,...), MS Windows (VFAT och NTFS), macOS (HFS och HFS+), såväl som BSD och till och med LVM2 volymhantering. Allt detta i både MBR och GPT.
Som för typer av virtuella diskar som du kan komma åt kan vara:
- qcow2
- VirtualBox .vdi
- VMWare .vmdk
- Hyper-V .vhd och .vhdx
Du kan också komma åt och ändra filer, lokala enheter, ISO-bilder, SD-minneskort eller göra det på distans via protokoll som:
- FTP
- HTTP
- SSH
- iSCSI
- NBD
- GlusterFS
- Ceph
- Sheepdog
- och så vidare
Vidare, libguestfs behöver inte privilegier, vilket också är intressant. Tack vare detta projekt kommer du att ha olika kommandoradsverktyg som guestfish, guestmount, guestunmount, virt-rescue för att fixa omstartbara virtuella datorer, virt-cat, virt-tar, etc.
libguestfs fungerar också som ett API för att kunna länka ledningsprogram i olika programmeringsspråk:
- C
- C + +
- Perl
- Python
- Rubin
- java
- PHP
- Haskell
- Erlang
- lua
- C#
- och så vidare
Du kan också använda det från skript, vilket är mycket praktiskt när man administrerar system. Dessutom kan detta projekt av Richard Jones installeras från repos för många av de välkända distroerna på detta sätt:
- Debian / Ubuntu och derivat
sudo apt install libguestfs-tools
- Fedora/CentOS/RHEL och derivat
sudo dnf install libguestfs
- Arch Linux och derivat
sudo pacman -Sy libguestfs
Förresten, om du är det använder libvirt och du försöker anropa något av verktygen eller verktygen som ingår i libguestfs, kommer du att få en fel så här:
libguestfs: error: could not create appliance through libvirt.
La lösning det är så enkelt som att exportera en variabel som "direkt" så här:
export LIBGUESTFS_BACKEND=direct
Mer information - Officiell hemsida