At 2016-07-21 17:45:13, "Richard W.M. Jones" <rjones@redhat.com>
wrote:>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.
Hi, Rich.
Thanks for your quick reply.
the virtio modules in kmods did existed in this machine.
with -v -v -v, I got:
...
supermin: build: excluding
/lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/scsi/virtio_scsi.ko
...
supermin: ext2: copy_file
/lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/scsi/virtio_scsi.ko ->
/lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/scsi/virtio_scsi.ko
...
Then I got:
supermin: ext2: copy_file /lib/modules/3.supermin: ext2: creating minimal initrd
'/root/test/aaa.lopr92ap/initrd'
supermin: ext2: wrote 0 modules to minimal initrd
But did not got this kind of log:
supermin: ext2: initrd: visiting module kernel/drivers/scsi/virtio_scsi.ko
Which found on the machine supermin works fine.
It looks strange.
Regards,
- Chen
>
>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