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. 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? Thanks in advance. Regards, - Chen
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
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