[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#220163: How to create a PXE d-i netboot testbed in 10 easy steps



Martin Michlmayr wrote:
> * Joe Nahmias <joe@nahmias.net> [2003-11-11 01:43]:
> > 0) OK, after much struggling (and dealing with my nemesis error message
> > 'VFS: Cannot open root device "" or 3a:04') I managed to get the d-i
> > netboot image to work via PXE.  For posterity (and the installation
> > guide) the magic kernel options I needed to make this work are
> > "ramdisk_size=8192 root=/dev/ram0".  If anyone would like assistance
> > setting up a PXE testbed or copies of various configs I use please don't
> > hesitate to ask.
> 
> I'd appreciate it.

Alrighty then, here's how I created my setup for keeping track of
multiple daily d-i netboot builds:

0) apt-get install tftpd-hpa dhcp3-server syslinux wget

1) adduser --group --system tftpd	# Should create user & group tftpd

2) In /etc/inetd.conf:
tftp           dgram   udp     wait    root  /usr/sbin/in.tftpd -p -u tftpd -s /usr/local/tftpboot

3) In /etc/dhcp3/dhcpd.conf:
option domain-name "example.org";			# FIXME
option domain-name-servers 10.15.123.2, 192.168.23.5;	# FIXME

# PXE Boot support for d-i testing
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.101 192.168.1.200;
  option routers 192.168.1.1;
  next-server 192.168.1.22;		# FIXME: IP of this machine (running tftpd-hpa)
  filename "/pxelinux.0";
}

4) mkdir -p /usr/local/tftpboot/pxelinux.cfg

5) cp /usr/lib/syslinux/pxelinux.0 /usr/local/tftpboot/

6) cat > /usr/local/tftpboot/pxelinux.cfg/default
prompt 1
say "Welcome to Joe's PXE boot server!"
say "Will boot debian-installer in 10 seconds..."
timeout 100

label d-i
        kernel d-i/current/vmlinuz
        append load initrd=d-i/current/netboot-initrd.gz devfs=nomount console=tty0 ramdisk_size=8192 root=/dev/ram0
        ipappend 1

7) mkdir -p /usr/local/tftpboot/d-i

8) cat > /usr/local/bin/getdailyimage.sh
#!/bin/sh -e

BUILDROOT=http://people.debian.org/~sjogren/d-i/images
TFTPROOT=/usr/local/tftpboot

today=$(date +"%F")
#today=2003-11-10

mkdir -p ${TFTPROOT}/d-i/${today}

for i in netboot-initrd.gz vmlinuz; do
        wget ${BUILDROOT}/${today}/$i -O ${TFTPROOT}/d-i/${today}/$i
done

rm -f ${TFTPROOT}/d-i/current
ln -s ${today} ${TFTPROOT}/d-i/current

9) chmod +x getdailyimage.sh


After that, you just run getdailyimage.sh, and your PXE clients will be
all set to test today's d-i netboot image.  I think that's it!  Give
this a try and let me know if I forgot to include anything.

Hope this helps!

Joe



Reply to: