Subject: Re: Net boot question
To: Alex Pelts <alexp@broadcom.com>
From: Andy Ruhl <acruhl@gmail.com>
List: port-cobalt
Date: 11/14/2005 05:27:03
On 11/12/05, Alex Pelts <alexp@broadcom.com> wrote:
> Hi,
> Due to my resent problems with netbsd upgrade (probably my fault so
> don't flame me please) I desided to depvelop recovery strategy.
>
> Well, my other problem is that I run windows at home and windows does
> not make for good nfs host. BUT cygwin does.
> So far my progress have been very encouraging:
> 1. I got nfs working on cygwin
> 2. I was able to mount it from the qube and get uid/gid mapped correctly
> so they show up as root/wheel. Device nodes are checked and served
> correctly!
> 3. I found dhcpd server and was able to compile it and actually got it
> running.
> 4. I was able to start netboot and get some progress on this.
>
> My ultimate goal is to provide netboot environment for qube hosted on
> cygwin. This way you are not limited to unix-like os to netboot a qube,
> which is a good thing IMHO. I also want to write a howto document with
> enough details so anyone can reproduce it. Plus I will try to host all
> the needed files that I created during this process.
>
> Now for my problem:
>
> The kernel I compiled for that purpose will not boot :(. It boots
> perfectly from hard drive but will not boot from nfs. I have no idea
> why. I am 100% sertain that nfs boot is working fine. I got an old
> kernel from 2.0 restore cd that I made earlier and that would boot but
> will not load init because of a new userland (2.1). I will try to get
> the whole userland that matches this kernel and try again.
>
> I build a custom 2.1 kernel because GENERIC is too big to boot on qube
> using native bootloader. I probably took out more than I should. Last
> thing I see from that kernel is :
>
> invalid bootinfo (standalone boot?)
> [ Kernel symbol table missing! ]
>
> And that is it. Anyone could enlighten me on what must be included in
> kernel in order for it to boot over nfs? It is still possible that the
> kernel is just too big. Mine is slightly under 1 meg compressed.

So we don't get lost in semantics, let's talk this through.

#1, how are you forcing the Qube to netboot? It doesn't want to do it
on it's own, if you're talking about it loading a kernel over the
network. I believe you must manually intervene to make this happen.
Are you doing this?

#2, The bootloader can be put in place of the real netbsd kernel, as
long as you have an actual netbsd "a" partition to load the kernel
from, and that kernel can then mount root over nfs. Is this what you
are wanting to do? This removes the limitation on kernel size. Quick
example:

On fdisk partition #1, ID 131 (linux), you have /boot/vmlinux.gz. But
this is really just /usr/mdec/boot from NetBSD (gzipped of course),
which knows how to find wd0a to boot a kernel from.

This is how I boot my Qube2. To make it mount an nfs root, you'd just
need to tweak the config line in the kernel and rebuild it (see
netboot guide).

I think it's highly valuable to explain a netboot environment using
Cygwin. Please post details. This would be good info to go into the
netboot guide (if it's not already there, I haven't looked for a
while).

Andy