Potser no molts coneixen libguestfs, una biblioteca escrita a C i un conjunt d'eines que et permeten accedir i modificar les imatges de disc virtual emprades a les màquines virtuals. A més, podràs treballar amb diverses plataformes de virtualització basades en KVM de Linux, i les imatges de les MV es muntaran directament sobre el host fent ús del mòdul FUSE i amb les eines guestmount/guestunmount.
Un altre detall positiu de libguestfs és que pot accedir a gairebé qualsevol FS, o sistema de fitxers, i això inclou tots els de Linux (ext2, ext3, ext4, XFS, btrfs,…), els de MS Windows (VFAT i NTFS), els de macOS (HFS i HFS+), així com els de BSD, i fins i tot gestió de volums LVM2. Tot això tant a MBR com a GPT.
Pel que fa als tipus de discos virtuals als que pot accedir, poden ser:
- qcow2
- VirtualBox .vdi
- VMWare .vmdk
- Hyper-V .vhd i .vhdx
També podeu accedir i modificar arxius, dispositius locals, imatges ISO, targetes de memòria SD, o fer-ho de forma remota a través de protocols com:
- FTP
- HTTP
- SSH
- iSCSI
- NBD
- GlusterFS
- Ceph
- Pastor
- etcètera...
D'altra banda, libguestfs no necessita privilegis, cosa que també resulta interessant. Gràcies a aquest projecte, tindràs diverses eines de línia d'ordres com ara guestfish, guestmount, guestunmount, virt-rescue per reparar les MV que no arrenquen, virt-cat, virt-tar, etc.
libguestfs també actua com una API per poder vincular programes d'administració a diversos llenguatges de programació:
- C
- C + +
- Perl
- Pitó
- Ruby
- Java
- PHP
- Haskell
- Erlang
- lua
- C#
- etcètera...
també pots utilitzar-lo des de scripts, cosa que resulta molt pràctica a l'hora d'administrar sistemes. A més, aquest projecte de Richard Jones es pot instal·lar des dels repos de moltes de les distros conegudes d'aquesta manera:
- Debian / Ubuntu i derivats
sudo apt install libguestfs-tools
- Fedora/CentOS/RHEL i derivats
sudo dnf install libguestfs
- Arch Linux i derivats
sudo pacman -Sy libguestfs
Per cert, si hi ets usant libvirt i intentes invocar alguna de les utilitats o eines incloses en libguestfs, rebràs un error com aquest:
libguestfs: error: could not create appliance through libvirt.
La solució és tan simple com exportar una variable com a «direct» així:
export LIBGUESTFS_BACKEND=direct
Més informació - Lloc web oficial