New in libguestfs ≥ 1.21.30 is the ability to use guestfish and some of the virt tools with remote disks.
Currently you can use remote disks over NBD, GlusterFS, Ceph, Sheepdog and (recently upstream) SSH.
For this example I’ll use SSH because it needs no setup, although this requires absolutely the latest qemu and libguestfs (both from git).
Since we don’t have libvirt support for ssh yet, so this only works with the direct backend:
$ export LIBGUESTFS_BACKEND=direct
I can use a
ssh:// URI to add disks with guestfish, guestmount and most of the virt tools. For example:
$ virt-rescue -a ssh://localhost/tmp/f17x64.img [... lots of boot messages ...] Welcome to virt-rescue, the libguestfs rescue shell. Note: The contents of / are the rescue appliance. You have to mount the guest's partitions under /sysroot before you can examine them. ><rescue> mount /dev/vg_f17x64/lv_root /sysroot ><rescue> cat /sysroot/etc/redhat-release Fedora release 17 (Beefy Miracle)
Apart from being a tiny bit slower, it just works as if the disk was local:
$ virt-df -a ssh://localhost/tmp/f17x64.img Filesystem 1K-blocks Used Available Use% f17x64.img:/dev/sda1 487652 63738 398314 14% f17x64.img:/dev/vg_f17x64/lv_root 28316680 4285576 22586036 16%
$ guestmount -a ssh://localhost/tmp/f17x64.img -i /tmp/mnt $ ls /tmp/mnt bin dev home lib64 media opt root sbin sys usr boot etc lib lost+found mnt proc run srv tmp var $ cat /tmp/mnt/etc/redhat-release Fedora release 17 (Beefy Miracle) $ guestunmount /tmp/mnt