[Libguestfs] libguestfs-test-tool on ubuntu: kernel panic

David Konerding dek at konerding.com
Tue Aug 9 16:41:47 UTC 2011


First, thanks for the in-depth assistance.  See responses inline below.

On Tue, Aug 9, 2011 at 2:08 AM, Richard W.M. Jones <rjones at redhat.com>wrote:

> On Mon, Aug 08, 2011 at 03:55:07PM -0700, David Konerding wrote:
> > Hi,
> >
> > I am trying to get libguestfs-test-tool working on ubuntu.  The first
> > problem I had was that HiveX won't compile on ubuntu to due to some
> missing
> > symbols (rpl-getopt, I see this has already been reported).  Second
> problem
> > is that if HiveX is not available, guestfish doesn't link because code
> > refers to symbols which aren't compiled into libguestfs (I was able to
> work
> > around this by #ifdeffing references to those functions).
>
> Which version of Ubuntu is this?
>
> hivex should be in Ubuntu already, thanks to Hilko Bengen:
> http://packages.ubuntu.com/oneiric/libhivex-dev
>
>
It's a Lucid Lynx derivative,  and we don't have that package.  Maybe I can
shoehorn it in.

The problem with missing hivex/pcre causing libguestfs builds to break
> is known:
> https://bugzilla.redhat.com/show_bug.cgi?id=723474
>
>
Thanks.   I simply went into inspect_icon.c, and wherever you called an
undefined function, I set the value to NULL, which in most cases invokes the
error path.  IE:

diff -ru libguestfs-1.12.3/src/inspect_icon.c
/usr/local/home/dek/libguestfs-1.12.3/src/inspect_icon.c
--- libguestfs-1.12.3/src/inspect_icon.c        2011-07-20
10:20:58.000000000 -0700
+++ /usr/local/home/dek/libguestfs-1.12.3/src/inspect_icon.c     2011-08-08
14:19:31.000000000 -0700
@@ -75,7 +75,11 @@
   int favicon, highquality;
   size_t size;

+#if defined(HAVE_HIVEX)
   fs = guestfs___search_for_root (g, root);
+#else
+  fs = NULL;
+#endif
   if (!fs)
     return NULL;

> Anyway, including the diagnostic output in case it helps.
> [...]
> > execl: /init: No such file or directory
> > febootstrap: debug: listing directory /
> >     2 d .                040755 4096 88619:5000
> >     2 d ..               040755 4096 88619:5000
> >    11 d lost+found       040700 16384 0:0
> >    12 d bin              040750 4096 23083:5000
> >    13 d boot             040750 4096 23083:5000
> >    14 d etc              040750 4096 23083:5000
> >   109 d lib              040750 4096 23083:5000
> >   156 d sbin             040750 4096 23083:5000
> >   157 d usr              040750 4096 23083:5000
> >   534 d var              040750 4096 23083:5000
> >   690 - init             100750 3264 23083:5000
> > febootstrap: debug: listing directory /bin
> >    12 d .                040750 4096 23083:5000
> >     2 d ..               040755 4096 88619:5000
> >   540 l rbash            120777 4 0:0 -> bash
> >   541 l sh               120777 9 0:0 -> /bin/bash
> > febootstrap: debug: listing directory /lib
> >   109 d .                040750 4096 23083:5000
> >     2 d ..               040755 4096 88619:5000
> >   110 d cryptsetup       040750 4096 23083:5000
> >   113 d firmware         040750 4096 23083:5000
> >   145 d init             040750 4096 23083:5000
> >   146 d modules          040750 4096 23083:5000
> >   147 d security         040750 4096 23083:5000
> >   148 d udev             040750 4096 23083:5000
> >   551 l libaio.so.1      120777 15 0:0 -> libaio.so.1.0.1
> >   552 l libbsd.so.0      120777 15 0:0 -> libbsd.so.0.2.0
> >   553 l libdbus-1.so.3   120777 18 0:0 -> libdbus-1.so.3.4.0
> >   554 l libdrm_intel.so.1 120777 21 0:0 -> libdrm_intel.so.1.0.0
> >   555 l libdrm_nouveau.so.1 120777 23 0:0 -> libdrm_nouveau.so.1.0.0
> >   556 l libdrm_radeon.so.1 120777 22 0:0 -> libdrm_radeon.so.1.0.0
> >   557 l libfuse.so.2     120777 16 0:0 -> libfuse.so.2.8.1
> >   558 l libgcrypt.so.11  120777 19 0:0 -> libgcrypt.so.11.5.2
> >   559 l libglib-2.0.so.0 120777 23 0:0 -> libglib-2.0.so.0.2400.1
> >   560 l libnih-dbus.so.1 120777 20 0:0 -> libnih-dbus.so.1.0.0
> >   561 l libnih.so.1      120777 15 0:0 -> libnih.so.1.0.0
> >   562 - libntfs-3g.so.75.0.0 100644 266616 0:0
> >   563 l libntfs-3g.so.75 120777 20 0:0 -> libntfs-3g.so.75.0.0
> >   564 l libparted.so.0   120777 18 0:0 -> libparted.so.0.0.1
> >   565 l libpcre.so.3     120777 17 0:0 -> libpcre.so.3.12.1
> >   566 l libply-boot-client.so.2 120777 27 0:0 ->
> libply-boot-client.so.2.0.0
> >   567 l libply-splash-core.so.2 120777 27 0:0 ->
> libply-splash-core.so.2.0.0
> >   568 l libply-splash-graphics.so.2 120777 31 0:0 ->
> > libply-splash-graphics.so.2.0.0
> >   569 l libply.so.2      120777 15 0:0 -> libply.so.2.0.0
> >   570 l libpng12.so.0    120777 18 0:0 -> libpng12.so.0.42.0
> >   571 l libpopt.so.0     120777 16 0:0 -> libpopt.so.0.0.0
> >   572 l libslang.so.2    120777 17 0:0 -> libslang.so.2.2.2
> >   573 l libss.so.2       120777 12 0:0 -> libss.so.2.0
> >   574 l libudev.so.0     120777 16 0:0 -> libudev.so.0.6.1
> >   575 l libulockmgr.so.1 120777 20 0:0 -> libulockmgr.so.1.0.1
> >   576 l libusb-0.1.so.4  120777 19 0:0 -> libusb-0.1.so.4.4.4
> > febootstrap: debug: listing directory /lib64
>
> The problem is that both /bin/bash and libc are completely missing
> from the appliance.
>
>
i see.


> During the build, was febootstrap able to download all the packages it
> needed?
>
>
Looks like it (I see a bunch of package downloads, none of them failed).
However, I re-ran this, and I see this (the list is some ~thousands of
files, I guess the entire unpacked root filesystem?)

febootstrap: warning: some host files are unreadable by non-root
febootstrap: warning: get your distro to fix these files:
        /bin/bash
        /bin/cat

I am going to try to reproduce this step with strace to see what the
underlying problem is.  Well, that wasn't very useful- I don't see any calls
to /bin/bash in the host file system that are failing.

Which version of febootstrap are you using?  (Generally speaking, you
> should always try to use a recent version)
>
>
My distribution had 2.1-4, but I downloaded febootstrap-3.8 and used that.

Do /bin/bash and /lib/libc.so.* appear in appliance/supermin.d/hostfiles?
>
>
I see /bin/sh and /bin/rbash.  no /bin/bash and no libc.so at all.


> Do the paths to the programs / libraries in hostfiles match up with
> what is available on the host filesystem?
>

Hmm, not sure.  i could check this but I'm wondering if the problem I noted
above is significant enough that I don't need it.


>

Have you installed (on the host) all the packages that are listed in
> appliance/packagelist?
>
>
I hadn't (zfs-fuse, gfs2 and a few others were missing).  They are installed
now.  But it didn't make any difference.



> Is febootstrap downloading packages which match up with the packages
> installed on the host?  You'll have problems if your apt configuration
> is significantly different from what is actually installed on your
> host, eg. if 'unstable' packages are installed on the host, but the
> unstable repo is disabled in sources.list.
>
>
Nope, I've got no unstable packages installed.

> Rich.
>
> --
> Richard Jones, Virtualization Group, Red Hat
> http://people.redhat.com/~rjones
> Read my programming blog: http://rwmj.wordpress.com
> Fedora now supports 80 OCaml packages (the OPEN alternative to F#)
> http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20110809/d7e44217/attachment.htm>


More information about the Libguestfs mailing list