GRUB 2 network booting with Open Firmware
While it’s also possible to load single files via the Open Firmware
interface already (by typing something like “boot net:
” at the
firmware prompt for example), you need a secondary boot loader like yaboot or
GRUB 2 to handle more complex boot scenarios like loading both,
kernel and an initrd.
GRUB 2 is able to load files via network, too, and this is also working when it is running on an Open Firmware implementation like SLOF. However, while there are a couple of pages on the web that describe how to do network booting with GRUB 2 when it is running on a x86-based PC, I haven’t found a single page that tells you how to do network booting in GRUB when it is running on a POWER-based machine. So here’s how to do it – you basically have got to put something like this in your grub.cfg file:
menuentry 'Network boot' --class os {
insmod net
insmod ofnet
insmod tftp
insmod gzio
insmod part_gpt
# TFTP server address (seems not to work via DHCP configuration):
set net_default_server=10.0.2.2
# DHCP setup:
net_bootp
echo 'Network status: '
net_ls_cards
net_ls_addr
net_ls_routes
echo 'Loading Linux ...'
linux (tftp)/linux
echo 'Loading initial ramdisk ...'
initrd (tftp)/initrd
}
The tricky line here was the “insmod ofnet
” (which adds the
Open Firmware network driver), the other parts are pretty much the same as
on other architectures.