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: