[Libguestfs] Name resolution not working inside virt-customize

Richard W.M. Jones rjones at redhat.com
Tue Mar 10 21:12:12 UTC 2015


On Tue, Mar 10, 2015 at 04:41:22PM -0400, Lee Revell wrote:
> Hi!
> 
> I am trying to use virt-customize to add packages to an image.
> However it seems that there is a problem where a resolv.conf is not
> being installed and thus package installation fails.
> 
> The command is:
> 
> virt-customize -v -x -a trusty-server-cloudimg-amd64-disk1.img
> --run-command "host openstack.org"
>
> I am having a hard time gathering complete output as the command
> seems to corrupt my terminal somehow but I think the relevant lines
> may be:
> 
> [   3.0] Running: host openstack.org
> running command:
> exec >>'/tmp/builder.log' 2>&1
> 
> 
> host openstack.org
> 
> libguestfs: trace: sh "exec >>'/tmp/builder.log' 2>&1\n\n\nhost
> openstack.org\n"
> guestfsd: main_loop: new request, len 0x60
> mount --bind /dev /sysroot/dev
> mount --bind /dev/pts /sysroot/dev/pts
> mount: mount point /sysroot/dev/pts does not exist
> mount --bind /proc /sysroot/proc
> mount --bind /sys/fs/selinux /sysroot/selinux
> mount: mount point /sysroot/selinux does not exist
> mount --bind /sys /sysroot/sys
> mount --bind /sys/fs/selinux /sysroot/sys/fs/selinux
> mount: mount point /sysroot/sys/fs/selinux does not exist
> renaming /sysroot/etc/resolv.conf to /sysroot/etc/g1fbx1fs
> cp /etc/resolv.conf /sysroot/etc/resolv.conf
> cp: cannot stat '/etc/resolv.conf': No such file or directory
> /bin/sh -c exec >>'/tmp/builder.log' 2>&1
> 
> 
> host openstack.org
> 
> And the command fails due to the missing resolv.conf.
> 
> I am using version 1.28.6 build from source on ubuntu 14.04. The
> same image file listed above works perfectly when launched as an
> openstack instance.

I'm afraid our handling of /etc/resolv.conf inside the chroot is a
large (and continuing) source of problems.  Currently this code is
run:

https://github.com/libguestfs/libguestfs/blob/master/daemon/command.c#L148

There are a couple of thing you could do:

 - Don't rely too heavily on name resolution.

 - Use --firstboot* scripts instead, since they genuinely run in guest
   context, and should therefore work more like you expect.

(and I guess a third one .. suggest a better approach to resolv.conf
handling).

Just for comparison, libguestfs 1.29.29 on Fedora host, plus
virt-builder, with a Fedora guest does this:

----------------------------------------------------------------------
$ virt-builder fedora-21 --install /usr/bin/host --run-command "host openstack.org"
[   2.0] Downloading: http://libguestfs.org/download/builder/fedora-21.xz
[   2.0] Planning how to build this image
[   2.0] Uncompressing
[  13.0] Opening the new disk
[  24.0] Setting a random seed
[  24.0] Installing packages: /usr/bin/host
[  49.0] Running: host openstack.org
[  50.0] Setting passwords
virt-builder: Setting random password of root to K0kkVIZXdtgmKtvw
[  53.0] Finishing off
                   Output file: fedora-21.img
                   Output size: 4.0G
                 Output format: raw
            Total usable space: 5.2G
                    Free space: 4.3G (83%)

$ guestfish --ro -a fedora-21.img -i

Welcome to guestfish, the guest filesystem shell for
editing virtual machine filesystems and disk images.

Type: 'help' for help on commands
      'man' to read the manual
      'quit' to quit the shell

Operating system: Fedora release 21 (Twenty One)
/dev/sda3 mounted on /
/dev/sda1 mounted on /boot

><fs> cat /tmp/builder.log 
[lots of yum output deleted]
Installed:
  bind-utils.x86_64 32:9.9.6-8.P1.fc21                                          

Dependency Installed:
  bind-libs.x86_64 32:9.9.6-8.P1.fc21                                           

Dependency Updated:
  bind-libs-lite.x86_64 32:9.9.6-8.P1.fc21                                      
  bind-license.noarch 32:9.9.6-8.P1.fc21                                        

Complete!
openstack.org has address 162.242.140.107
openstack.org mail is handled by 20 mx2.emailsrvr.com.
openstack.org mail is handled by 10 mx1.emailsrvr.com.
----------------------------------------------------------------------

Pino ^^ any ideas?

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top




More information about the Libguestfs mailing list