On Sat, May 31, 2014 at 12:38:15AM +0800, sjy wrote:
Hello, I've tried to use guestfish to lively mount virtual machine image. Here are
some problems I met.
1. The name parameter in below command must be
org.libguestfs.channel.0. or else the guest would produce error
'failed to connect to virtio-serial' and
'/dev/virtio-ports/org.libguestfs.channel.0: No such file or
directory' even though there did exists a file 'com.test.my' in
'dev/virtio-ports' directory.
sudo kvm -drive file=ubuntu-1204-vm.img -m 512 -vga std -k en-us
-vnc :1 -net nic -net
tap,ifname=tap1,script=./qemu-ifup,downscript=no -daemonize -device
virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -chardev
socket,id=charchannel0,path=/var/lib/libvirt/qemu/test.agent,server,nowait
-device
virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.test.my
The daemon (running inside the virtual machine) expects that the
virtio-serial port has the exact name "org.libguestfs.channel.0". If
you give the virtio-serial port any other name then it just won't
work.
2. I leaved the first problem by altering the device name to default
org.libguestfs.channel.0, now I can visit the live guest by
guestfish. However, any write or edit operation like vi or write
don't work even I set --rw option with guestfish. It seems like
guestfish just write the results to a tmp file in /tmp/guestfish**/
directory rather than the guest image file. I don't know if it needs
a writeback operation to make the changes happen. Besides, read
operation like cat can only read files produced before the mount
operation, any real time modification by the guest can't be found
with guestfish --live.
That's pretty odd. What exact guestfish command are you running?
Note that guestfish --live will only work correctly when the guest is
managed by libvirt. So if you're starting the guest using qemu
commands directly, I don't see how it can work. You can see the API
calls that guestfish makes by adding the '-x' option.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html