GRUB appears capable of booting the kernel, but can't pass any kernel
options. This appears to include passing the root file system, requiring
it to be typed by hand later on.
The NetBSD loader is, unsurprisingly, not subject to this restriction. I'd
be tempted to go with packaging this and using it as our primary boot
mechanism unless anyone objects. The one problem I can think of is that it
stores the bootcode in /boot, which is a directory under Linux systems. Do
we want to leave /boot as a directory and move the BSD bootcode in there
(presumably patching things slightly in the process) or leave it as is?
the location of "/boot" as a file is pretty irrelevant for i386. when
"installboot" is run, it hard codes the inodes for it into the 2nd
stage loader (biosboot.sym) and reloads it. so when you run installboot
you can simply give it a pathname other than "/boot" and it will use it
when it comes to booting.
to be honest, i've slowly come to appreciate /boot as a directory.
- From: Matthew Garrett <email@example.com>