[Libguestfs] How to debug supermin5 issue?

Richard W.M. Jones rjones at redhat.com
Thu Jul 21 09:45:13 UTC 2016


On Thu, Jul 21, 2016 at 04:54:46PM +0800, Chen Hanxiao wrote:
> 
> Hi, Rich:
> 
>       I met a supermin issue on CentOS 7.1:
> 
> supermin: version: 5.1.10
> supermin: rpm: detected RPM version 4.11
> supermin: package handler: fedora/rpm
> supermin: acquiring lock on /root/test/aaa/lock
> supermin: build: /usr/lib64/guestfs/supermin.d
> supermin: build: visiting /usr/lib64/guestfs/supermin.d/base.tar.gz type gzip base image (tar)
> supermin: build: visiting /usr/lib64/guestfs/supermin.d/daemon.tar.gz type gzip base image (tar)
> supermin: build: visiting /usr/lib64/guestfs/supermin.d/excludefiles type uncompressed excludefiles
> supermin: build: visiting /usr/lib64/guestfs/supermin.d/hostfiles type uncompressed hostfiles
> supermin: build: visiting /usr/lib64/guestfs/supermin.d/init.tar.gz type gzip base image (tar)
> supermin: build: visiting /usr/lib64/guestfs/supermin.d/packages type uncompressed packages
> supermin: build: visiting /usr/lib64/guestfs/supermin.d/udev-rules.tar.gz type gzip base image (tar)
> supermin: build: 185 packages, including dependencies
> supermin: build: 30676 files
> supermin: build: 17495 files, after removing unreadable files
> supermin: build: 8834 files, after matching excludefiles
> supermin: build: 8840 files, after adding hostfiles
> supermin: build: 8870 files, after munging
> supermin: kernel: picked kernel vmlinuz-3.10.0-229.el7.x86_64
> supermin: kernel: picked modules path /lib/modules/3.10.0-229.el7.x86_64
> supermin: kernel: kernel_version 3.10.0-229.el7.x86_64
> supermin: kernel: modules /lib/modules/3.10.0-229.el7.x86_64
> supermin: ext2: creating empty ext2 filesystem '/root/test/aaa.8v6mujxm/root'
> supermin: ext2: populating from base image
> supermin: ext2: copying files from host filesystem
> supermin: ext2: copying kernel modules
> supermin: ext2: creating minimal initrd '/root/test/aaa.8v6mujxm/initrd'
> supermin: ext2: wrote 0 modules to minimal initrd
>                                 ^
>                                  |
> 
> It seam that supermin failed to write modules into initrd.

That doesn't look good!

What is supposed to happen here is that the modules path
(/lib/modules/3.10.0-229.el7.x86_64) is searched in order to find any
modules matching one of these patterns:

  https://github.com/libguestfs/supermin/blob/master/src/ext2_initrd.ml#L33-L52

You could try doing for example:

  find /lib/modules/3.10.0-229.el7.x86_64/ -name 'ext4.ko*'

BTW this isn't always a problem.  It could be that you are using a
self-compiled CentOS kernel which doesn't have any modules
(eg. everything is compiled into the kernel).  If libguestfs still
works, then there's nothing to worry about.  However I am not aware of
any CentOS distributed kernels which are configured like that.

You can also try choosing a different kernel, by setting:

  export SUPERMIN_KERNEL_VERSION=3.10.0-123.el7.x86_64
  export SUPERMIN_KERNEL=/boot/vmlinuz-$SUPERMIN_KERNEL_VERSION
  export SUPERMIN_MODULES=/lib/modules/$SUPERMIN_KERNEL_VERSION

> But it works fine on another centos 7.1 machine.
> 
> Could you please give me some hints on how to debug this kind of issue?

You can get more debugging by adding more -v options, eg:

  supermin5 --build -f ext2 -v -v -v /usr/lib64/guestfs/supermin.d -o /tmp/appliance.d

The effect of using -v multiple times is to increase the "debug"
setting in the code, so more messages may be printed, for example:

  https://github.com/libguestfs/supermin/blob/master/src/ext2_initrd.ml#L62

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v




More information about the Libguestfs mailing list