Ubuntu installer over PXE doesn't see network adapters => can't download preseed

I'm booting one virtualbox VM from another virtualbox VM (with cobbler) over PXE. Both machines have 2 adapters: 1) external network and 2) host-only network.

The "client" VM successfully boots into the installer over PXE (using the host-only network adapter), but then the installer doesn't even try to download the preseed file (according to server logs) or get an IP address (again according to server logs - which do show the TFTP requests before).

I drop into a shell and see that:

  • "ip a" shows only the loopback adapter
  • Reading dmesg shows that apparently no adapters have been found
  • lsmod seems to show no signs of network adapter modules either
  • lspci does show both network controllers.
  • There are essentially no drivers in /lib/modules/...../kernel/drivers/net (probably this is the reason?)

How do I make the installer see my network adapters, or at least how do I find the cause of this problem?

Here's the PXE menu entry:

default linux
prompt 0
timeout 1
label linux
        kernel /images/ubuntu-10.04-server-x86_64/vmlinuz
        ipappend 2
        append initrd=/images/ubuntu-10.04-server-x86_64/initrd.gz  locale=  interface=auto text root=/dev/sda1 priority=critical  auto url=http://192.168.56.101/cblr/svc/op/ks/system/pierrot hostname=pierrot domain=local.lan suite=lucid

Solution 1:

OK, I figured it out.

Turns out that there are two initrd images in the Ubuntu ISO that I was using:

[jkff@localhost tmp]$ find /mnt/ubuntu-server/ -name 'initrd.gz'
/mnt/ubuntu-server/install/initrd.gz
/mnt/ubuntu-server/install/netboot/ubuntu-installer/amd64/initrd.gz

The first one of these does not include network drivers. The second one does. Cobbler picked the first one (due to this), so of course without network drivers it couldn't find the NICs and download the preseed.

Now I have to figure out a way to make Cobbler use the proper initrd...