Introduction
It is possible to boot the minix 3 usb image over network using pxelinux and memdisk. This makes use of the PXE protocol supported in some network cards. The network card loads its boot files over network and boot the PC from these files.
Setup
Host system
As a host, use for example Ubuntu 10.04.1. And install the following packages:
- dhcp3-server
- tftpd-hpa
- syslinux
DHCP server
Setup the network interface of the host to a static IP. For example:
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
It is important that eth0 has an IP in the dhcpd IP subnet, otherwise the dhcpd does not work.
Edit the configuration file of the DHCP server /etc/dhcp3/dhcpd.conf:
...
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.20;
filename "pxelinux.0";
}
...
TFTP
Now copy the following files to /var/lib/tftpboot (the dir tftpd reads its files from):
- /usr/lib/syslinux/memdisk (memdisk can emulate a disk drive from an image using bios int 13h)
- /usr/lib/syslinux/pxelinux.0 (the first file)
- /usr/lib/syslinux/menu.c32 (for the menu)
the minix 3 usb image from the download page, call it mnxusb.img
Now create the directory /var/lib/tftpboot/pxelinux.cfg and create the file /var/lib/tftpboot/pxelinux.cfg/default:
default menu.c32 timeout 100 label X menu label Minix3 kernel memdisk append initrd=mnxusb.img
Boot
Now start another machine with network card. On this machine choose LAN boot or PXE boot as boot option. If everything goes well, the menu should popup. Press enter, and the USB image is transferred via network (this can take a while (~40 s), the image is over 100MB :P). When this is done, the system is loading boot sector and minix 3 is started from a ramdrive.
Troubleshooting
VirtualBox
This method has been reported not to work on VirtualBox version 3.2.8 and 3.1.4.
ArchLinux
To allow incoming tftp connections, extend /etc/hosts.allow
... tftpd: ALL in.tftpd: ALL ...
DHCPD
If your DHCP does not work, make sure the network address of your network card is in the subnet specified in the dhcpd configuration.