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