In previous post I described how to setup PXE server and boot Debian installer using it. I mentioned that provided setup is limited and some extensive configuration is needed to make it useful for real world example. Since that time I learned that there is chain command in iPXE, which give ability to use arbitrary TFTP server as boot file source.
Using RPi PXE server
For example by changing my test network topology from previous post to something like that:
In short Raspberry Pi contain our PXE server configured in previous post. TL-MR3420 is our DHCP server and PC Engines APU2A4 is our target box where we want to install Debian.
We need to change
eth0 configuration, so our PXE server will get IP
automatically from DHCP:
Then reboot PXE server.
First enter iPXE on APU2 board by pressing
<Ctrl-B> during boot. You should
see something like that:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Then obtain DHCP address:
Now we can boot over the network using RPi PXE server:
1 2 3
192.168.0.100 is RPi PXE server and
/srv/tftp/pxelinux.0 is path
on RPi exposed through TFTP configuration.
Debian installer modification
Tab in the main installer window:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Change boot command line to print output to serial:
Enter. You will see complains about video mode like this:
Follow this instruction by waiting or hitting
Space. Then you should have
This is typical installation except it happen over serial. As a storage I used 16GB USB stick with guided partitioning. At the end I also installed GRUB on USB stick MBR.
Be patient if serial console will be blank for some time it happen when installing over network.
After reboot you should be able to choose USB stick from boot menu (F10) and your Debian on APU2 should be ready:
1 2 3 4 5 6 7 8 9 10 11 12 13
Now when you have Debian installed on your system you can think about various improvements. For example:
- Xen installation
- Putting together automated installation using PXE server
- Setup NFS and TFTP for Linux kernel development and testing
I hope this post was useful. If you think that it can be improved please comment. Thanks for reading.