[rescue] Q about sun2 boot flow
Walter Belgers
walter+rescue at belgers.com
Wed Sep 2 18:44:16 UTC 2026
Hi,
I am trying to get a Sun 2 to boot from the network. Booting NetBSD or SunOS 4.0.3 is not a problem, it's your plain old rarp/tftp/nfs sequence but with ndbootd added for the stage1 and stage2 boot loaders.
But, I'd like to netboot an older SunOS (1.x/2.x/3.x) using ND (network disk) and am trying to understand the boot process. As far as I understand, this happens:
b ie() will send an ND request to "minor 0x40" (the public disk) for blocks 0~15, which are 512b blocks with 0 being a disk label and the rest making up stage 1 (which can be 7.5KB at most).
Stage 1will then run and request blocks 16 and higher from ND minor 0x40 which is then run as stage 2.
But.. what happens then? How does stage 2 boot the kernel? Is there a third stage boot loader in the boot blocks that is fetched via ND? Or does the kernel also come from ND minor 0x40? I am trying to figure this out by reading the code but I'm not a coder and could not figure this out :-/. I also asked Tom Lyon who AFAIK wrote ND but after 40 years his memory was a bit hazy ;-)
Eventually, /dev/nd0 (or equivalent as stated in /etc/fstab) will be mounted as the root filesystem, which is again served via ND, but this can be on minor 0 (/dev/ndp == minor 0x40, /dev/nd0 == minor 0). Ndbootd only implements booting via minor 0x40 so cannot be used for this, but there's a tool ndd that can provide this functionality. Both can run together as they will ignore requests for the other minor.
At one point I had a setup that used a 2nd stage bootloader that used NFS (yes, cheating) to mount the root filesystem and start a SunOS 3.2 kernel, which would then revert to using ND to bootstrap the system. (2nd stage: "root on nfs:/export/sunos/root fstype nfs", but kernel says "root on nd0" and act accordingly).
I do know I could just run SunOS 4.0.3 and set up a boot service but I'd like to run the boot server on modern hardware (without cheating and using an emulator).
Regards,
Walter.
More information about the rescue
mailing list