Hello Richard,
I found what the problem was and the udev symlinks where not created. The
init script in the appliance uses a full paths for udevadm (/sbin/udevadm)
which in my case was wrong. In Arch Linux udevadm is hosted under /usr/bin,
not /sbin. When I fixed this, libguestfs was able to communicate with the
appliance VM.
Since PATH variable is defined and exported in init, there is no need in
using full paths for external programs. As far as I've seen this affects
all the git branches in libguestfs's repository. Please find attached a
patch for the master branch.
Nikos Skalkotos,
Athens, Greece
On 24 February 2012 10:25, Richard W.M. Jones <rjones(a)redhat.com> wrote:
On Thu, Feb 23, 2012 at 08:50:12PM +0200, Nikos Skalkotos wrote:
[...]
I don't know specifically why it fails with ArchLinux, but the problem
is caused by the /dev/virtio-ports/* symlinks not getting created by
udev.
/dev/vport0p1 exists:
> crw------- 1 root root 252, 1 Feb 23 18:17 vport0p1
but udev doesn't make the corresponding /dev/virtio-ports symlink:
> /dev/virtio-ports/org.libguestfs.channel.0: No such file or directory
The symlink is supposed to be created by this udev rule:
/lib/udev/rules.d/50-udev-default.rules:KERNEL=="vport*",
ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}"
So I'd start by looking to see if that rule exists in the udev rules
that Arch is using. Secondly if it does exist, is the corresponding
*.rules being copied into the appliance? (Check appliance/supermin.d/
hostfiles)
In an old Ubuntu that has udev that predates having this rule, we add
the following patch:
http://libguestfs.org/download/binaries/ubuntu1004-packages/0002-ubuntu-1...
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v