0

I'm trying to automate the installation of Ubuntu Server 14.04LTS through PXE. I have set up a server that hosts DHCP, TFTP and HTTP. I have set up a DHCP scope with a PXE boot filename. I have copied the Ubuntu Server CD to the web server. I have authored a kickstart file and uploaded that to the web server. All of this was done per the instructions at https://help.ubuntu.com/community/PXEInstallServer.

When the client boots, it does get a DHCP offer, and it does PXE boot. The custom menu entry I have in /var/lib/tftpboot/pxelinux.cfg/default gets displayed, and I can choose this item from the menu.

However, the kickstart file is never requested by the client once the boot menu option is chosen, and the client ultimately panics with an "Unable to mount root fs on unknown-block" error.

My pxelinux.cfg/default looks like this:

# D-I config version 2.0
include ubuntu-installer/amd64/boot-screens/menu.cfg
default ubuntu-installer/amd64/boot-screens/vesamenu.c32
prompt 0
timeout 10

LABEL CustomServerInstall
    MENU LABEL Automated Trusty Install
        KERNEL ubuntu-installer/amd64/linux
    append ks=http://10.1.1.1/ks_ubuntuserver.cfg console=tty0 console=ttyS0 ignore_loglevel

When I choose "Automated Trusty Install" from the menu, I do see the following in the boot text:

[ 3121.134818] Kernel command line: ks=http://10.1.1.1/ks_ubuntuserver.cfg console=tty0 console=ttyS0 ignore_loglevel BOOT_IMAGE=ubuntu-installer/amd64/linux 

So I know my kickstart file path is given to the kernel. However, the file ks_ubuntuserver.cfg is never requested by the client according to /var/log/apache2/access.log

When I enter curl http://10.1.1.1/ks_ubuntuserver.cfg from another machine on the same subnet, I do get the kickstart file I authored.

So... the kickstart file is on the web server, but the kernel never requests it. Can anyone help me figure out what I'm doing wrong?

3
  • Why aren't you specifying an initrd?
    – muru
    Dec 11, 2015 at 22:12
  • Wow, muru, that was a fast response! I added initrd=ubuntu-installer/amd64/initrd.gz and now I'm getting different behavior. Not sure yet if this is a full solution, but I wanted to tell you 'thank you' up front. Hopefully I'll be able to follow up with a success message soon! Dec 11, 2015 at 22:17
  • Muru, if you'd submit your comment as an answer, I'll mark it as the solution to my problem. Thank you! Dec 11, 2015 at 22:39

1 Answer 1

0

You didn't specify an initrd. The bootloader loads the kernel and the initrd. The initrd contains the files that the kernel uses for booting up, including init, since you're not booting to a real installation. Without it, the kernel probably panicked quickly enough.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .