Change-Id: I2fe6aac7caec21af26983636d6ec827b3525ee15
3.5 KiB
PXE Boot Server Guide: Magic Dust for Network Boot
Boot DevStack from a PXE server to a RAM disk.
Prerequisites Hardware & OpenWRT
Hardware
The whole point of this exercise is to have a highly portable boot server, so using a small router with a USB port is the desired platform. This guide uses a Buffalo WZR-HP-G300NH as an example, but it is easily generalized for other supported platforms. See openwrt.org for more.
OpenWRT
Any recent 'Backfire' build of OpenWRT will work for the boot server project. We build from trunk and have made the images available at http://openwrt.xr7.org/openwrt.
Installation bit blasting
Install the Image
This process follows the OpenWRT doc OEM Install to tftp the new image onto the router. You need a computer to set up the router, we assume it is a recent Linux or OS/X installation.
Get openwrt-ar71xx-wzr-hp-g300nh-squashfs-tftp.bin
wget http://openwrt.xr7.org/openwrt/ar71xx/openwrt-ar71xx-wzr-hp-g300nh-squashfs-tftp.bin
Connect computer to LAN port 4 (closest to WAN port)
Set computer interface to IP address in the 192.168.11.2
Add static arp entry for router
arp -s 192.168.11.1 <mac-address>
Start TFTP transfer attempt
tftp 192.168.11.1 binary rexmt 1 timeout 60 put openwrt-ar71xx-wzr-hp-g300nh-squashfs-tftp.bin
Power on router. Router will reboot and initialize on 192.168.1.1.
Delete static arp entry for router
arp -d 192.168.11.1
Set computer to DHCP, connect and telnet to router and set root password.
Configure the Router
Update
/etc/opkg.conf
to point to our repo:src/gz packages http://192.168.5.13/openwrt/build/ar71xx/packages
Configure anon mounts:
uci delete fstab.@mount[0] uci commit fstab /etc/init.d/fstab restart
Reset the DHCP address range. DevStack will claim the upper /25 of the router's LAN address space for floating IPs so the default DHCP address range needs to be moved:
uci set dhcp.lan.start=65 uci set dhcp.lan.limit=60 uci commit dhcp
Enable TFTP:
uci set dhcp.@dnsmasq[0].enable_tftp=1 uci set dhcp.@dnsmasq[0].tftp_root=/mnt/sda1/tftpboot uci set dhcp.@dnsmasq[0].dhcp_boot=pxelinux.0 uci commit dhcp /etc/init.d/dnsmasq restart
Set Up tftpboot
Create the
/tmp/tftpboot
structure and populate it:cd ~/devstack tools/build_pxe_boot.sh /tmp
This calls
tools/build_ramdisk.sh
to create a 2GB ramdisk containing a complete development Oneiric OS plus the OpenStack code checkouts.Copy
tftpboot
to a USB drive:mount /dev/sdb1 /mnt/tmp rsync -a /tmp/tftpboot/ /mnt/tmp/tftpboot/ umount /mnt/tmp
Plug USB drive into router. It will be automounted and is ready to serve content.
Now return to the RAM disk Guide to kick off your DevStack experience.