[Hilko is in the best position to answer these questions. My own
On Mon, May 21, 2012 at 02:04:40PM +0200, Zoltan wrote:
I'm trying to install libguestfs on Debian squeeze installed from
It does not work. Here are the details:
I was able to install libguestfs-tools and its dependencies.
However, aptitude removed the following two packages: qemu and
qemu-system. I'm not sure if it's okay or not. If I try to install
those packages back, I get the following:
# aptitude install qemu qemu-system
The following NEW packages will be installed:
0 packages upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 16.6 MB of archives. After unpacking 50.9 MB will be used.
The following packages have unmet dependencies:
qemu-system: Depends: openbios-ppc (>= 1.0+svn1018) but
1.0+svn640-1 is installed.
Depends: openbios-sparc (>= 1.0+svn1018) but
1.0+svn640-1 is installed.
My first question is, is this normal? Do I need the qemu and
qemu-system packages installed? What about these openbios
libguestfs requires a recent qemu, and kernel>= 2.6.34.
Specifically it needs the virtio-serial feature of qemu and the
kernel. You can check if qemu has virtio-serial by doing:
$ qemu -device \? 2>&1 | grep virtio-serial
name "virtio-serial-pci", bus PCI, alias "virtio-serial"
name "virtserialport", bus virtio-serial-bus
name "virtconsole", bus virtio-serial-bus
where you may need to replace 'qemu' by whatever name your qemu/KVM
binary is really called.
You can check if your kernel was compiled with virtio-serial by
looking at /boot/config-* and checking for CONFIG_VIRTIO_CONSOLE=(y|m)
The next problem I have encountered: When I installed
libguestfs-tools, aptitude also installed the cryptsetup (
cryptsetup/squeeze uptodate 2:1.1.3-4squeeze2 ) package as a
dependency. Since then, every time I run update-initramfs, I get
libguestfs uses host tools (such as cryptsetup) to process disk images
(encrypted disk images in this case). So it depends on many host
tools of this sort.
# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-2.6.32-5-amd64
cryptsetup: WARNING: failed to detect canonical device of /dev/md1
cryptsetup: WARNING: could not determine root device from /etc/fstab
I use RAID1 arrays md1 and md3 on my system. I googled "cryptsetup:
WARNING: failed to detect canonical device" and "cryptsetup:
WARNING: could not determine root device" to no avail. I mean, some
other people get these warnings too, but I haven't find any solution
to get rid of these warning messages. Since these are just warnings,
I guess I can just ignore these?
Now, back to the main issue: libguestfs does not work! When I run
libguestfs-test-tool, it stops with the following error:
Failed to connect to virtio-serial channel.
This is a fatal error and the appliance will now exit.
Usually this error is caused by either QEMU or the appliance
kernel not supporting the vmchannel method that the
libguestfs library chose to use. Please run
'libguestfs-test-tool' and provide the complete, unedited
output to the libguestfs developers, either in a bug report
or on the libguestfs redhat com mailing list.
This indicates too old qemu and/or kernel.
When I try to use the virt-filesystems tool, after about 2-3 seconds
it stops with an error message that says:
# virt-filesystems -a myimagefile.img
libguestfs: error: guestfs_launch failed, see earlier error messages
Then in the log files I see these:
libvirtd: 04:49:11.561: warning : qemudStartup:1832 : Unable to
create cgroup for driver: No such device or address
libvirtd: 04:49:11.729: warning : lxcStartup:1900 : Unable to create
cgroup for driver: No such device or address
Basically, none of the libguestfs tools work on my Debian squeeze
system... What can I do to make libguestfs install properly?
You need to get newer qemu and/or kernel.
I thought that maybe I should install a newer Linux kernel from
backports? Currently I use the following squeeze kernel:
linux-image-2.6.32-5-amd64/squeeze uptodate 2.6.32-45
Do I need to install 3.x kernel for libguestfs ?
BTW, the following packages are installed from the squeeze-backports
(or Bengen's) repository on my system:
febootstrap/squeeze uptodate 3.14-2~bpo60+1
ipxe/squeeze uptodate 1.0.0+git-2.149b50-1~bpo60+1
kvm/squeeze uptodate 1:0.14.1+dfsg-4~bpo60+1
libguestfs0/squeeze uptodate 1:1.16.17-1~bpo60+1
libguestfs-perl/squeeze uptodate 1:1.16.17-1~bpo60+1
libguestfs-tools/squeeze uptodate 1:1.16.17-1~bpo60+1
qemu-keymaps/squeeze uptodate 0.14.1+dfsg-3~bpo60+1
qemu-kvm/squeeze uptodate 0.14.1+dfsg-4~bpo60+1
qemu-user/squeeze uptodate 0.14.1+dfsg-3~bpo60+1
qemu-utils/squeeze uptodate 0.14.1+dfsg-3~bpo60+1
seabios/squeeze uptodate 1.6.3-2~bpo60+1
vgabios/squeeze uptodate 0.7a-1~bpo60+1
Do I miss something?
I would really appreciate if someone can point me to the right