Може би не много знаят libguestfs, библиотека, написана на C и набор от инструменти, които ви позволяват да осъществявате достъп и да променяте изображенията на виртуални дискове, използвани във виртуалните машини. В допълнение, вие ще можете да работите с няколко Linux KVM-базирани платформи за виртуализация, а VM изображенията ще бъдат монтирани директно на хоста с помощта на модула FUSE и инструментите за монтиране на гости/guestunmount.
Друго хубаво нещо за libguestfs е това има достъп до почти всеки FS, или файлова система, и това включва целия Linux (ext2, ext3, ext4, XFS, btrfs,...), MS Windows (VFAT и NTFS), macOS (HFS и HFS+), както и BSD и дори LVM2 управление на обема. Всичко това както в MBR, така и в GPT.
Що се отнася до типове виртуални дискове до които имате достъп, може да бъде:
- qcow2
- VirtualBox .vdi
- VMWare .vmdk
- Hyper-V .vhd и .vhdx
Можете също да осъществявате достъп и да променяте файлове, локални устройства, ISO изображения, SD карти с памет или да го правите дистанционно чрез протоколи като:
- FTP
- HTTP
- SSH
- ISCSI
- NBD
- GlusterFS
- Цеф
- Овчарско куче
- и т.н.
Освен това, libguestfs не се нуждае от привилегии, което също е интересно. Благодарение на този проект ще разполагате с различни инструменти на командния ред като guestfish, guestmount, guestunmount, virt-rescue за коригиране на виртуални машини, които не могат да се стартират, virt-cat, virt-tar и т.н.
libguestfs също действа като API да можете да свързвате програми за управление на различни езици за програмиране:
- C
- C + +
- Perl
- Питон
- Рубин
- Ява
- PHP
- Haskell
- Ерланг
- Lua
- C#
- и т.н.
Можете също така използвайте го от скриптове, което е много практично при администриране на системи. Също така, този проект на Ричард Джоунс може да бъде инсталиран от репозиториите на много от добре познатите дистрибуции по този начин:
- Debian / Ubuntu и деривати
sudo apt install libguestfs-tools
- Fedora/CentOS/RHEL и производни
sudo dnf install libguestfs
- Arch Linux и деривати
sudo pacman -Sy libguestfs
Между другото, ако сте използвайки libvirt и се опитате да извикате някоя от помощните програми или инструменти, включени в libguestf, ще получите грешка като този:
libguestfs: error: could not create appliance through libvirt.
La разтвор това е толкова просто, колкото експортирането на променлива като "директно", така:
export LIBGUESTFS_BACKEND=direct
Повече информация - Официален уеб сайт