`DevStack `__ - `Overview <../overview.html>`__ - `Changes <../changes.html>`__ - `FAQ <../faq.html>`__ - `git.openstack.org `__ - `Gerrit `__ 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 - 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.