On Fri, Nov 06, 2015 at 04:16:21PM +0300, Maxim Perevedentsev wrote:
Hello everyone!
I have to implement the functionality of mounting all VM disks/partitions.
E.g. if a VM has 2 disks of 2 partitions each (I get it from virt-filesystems), I want to get the following structure on host node after mount: mnt/ ------hdd0/ -------------volume1/ -------------volume2/ ------hdd1/ -------------volume1/ -------------volume2/
I'd like to use guestmount due to syntax simplicity, but I found out that it's impossible to call e.g. guestmount -a disk.qcow2 -m /dev/sda1:/hdd0/volume1 -m /dev/sda2:/hdd0/volume2 mnt/
So I came to only two possible options: 1) mkdir -p mnt/hdd0/volume1 guestmount -a disk.qcow2 -m /dev/sda1 mnt/hdd0/volume1 .... (Is it safe to use the same disk from multiple guestmounts?)
2) guestfish -a disk.qcow2 " run : mkmountpoint /hdd0 : mkmountpoint /hdd0/volume1 : ... : mount /dev/sda1 /hdd0/volume1 : ... : mount-local mnt/ : mount-local-run"
kill -TERM `pidof guestfish` guestunmount mnt/
Is any of these options safe enough/preferred? Or, maybe, other options? I'd like to avoid guestfs API, threading and so on, and confine myself to command-line.
The mount-local APIs don't require threads, although they can use them. A Perl script should be fairly simple, and is a lot easier to automate that guestfish and much more flexible than guestmount. Have a look at the attached file. In case it's not clear, you have to do 'guestunmount <MOUNTPOINT>' to exit the main program. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com Fedora Windows cross-compiler. Compile Windows programs, test, and build Windows installers. Over 100 libraries supported. http://fedoraproject.org/wiki/MinGW