libguestfs

[3] It was created because of security issues, when virtual disk images are mounted directly on the host system.

), any Windows filesystem (VFAT and NTFS), any Mac OS X and BSD filesystems, LVM2 volume management, MBR and GPT disk partitions, raw disks, qcow2, VirtualBox VDI, VMWare VMDK, Hyper-V VHD/VHDX, on files, local devices, CD and DVD ISOs, SD cards, or remotely over FTP, HTTP, SSH, iSCSI, NBD, GlusterFS, Ceph, Sheepdog, and much more.

There is a rescue shell called virt-rescue for fixing unbootable virtual machines.

Multiple tools are available modeled after ordinary Unix commands, such as virt-cat and virt-tar.

[5] libguestfs is also an API that can be linked with C and C++ management programs and has bindings for Perl, Python, Ruby, Java, OCaml, PHP, Haskell, Erlang, Lua, Golang and C#.