<html aria-label="message body"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">Hi,<div><br id="lineBreakAtBeginningOfMessage"><div><blockquote type="cite"><div>On 3 Sep 2026, at 09:06, Todd Vernon via rescue <rescue@sunhelp.org> wrote:</div><div><div><div name="messageBodySection"><div class="p2">For the original SunOS ND boot, the sequence is:</div>
<ol type="1">
<li><span class="s1">The Sun-2 PROM reads</span> <span class="s2"><strong>blocks 1\u201315 of</strong></span> <code><span class="s2"><strong>/dev/ndp0</strong></span></code><span class="s1">. Those blocks contain</span> <code>bootnd</code><span class="s1">.</span></li>
<li><code>bootnd</code> <span class="s2">is not simply loading another fixed range of raw blocks. It understands enough of the Unix filesystem on the public ND device to find and load the file</span> <code><span class="s1"><strong>/boot</strong></span></code><span class="s2">.</span></li>
<li><code>/boot</code> <span class="s2">then understands the filesystem and loads</span> <code><span class="s1"><strong>/vmunix</strong></span></code> <span class="s2">from that same public ND filesystem.</span></li>
<li><span class="s1">Once</span> <code>vmunix</code> <span class="s1">is executing, the kernel\u2019s ND driver takes over and mounts its configured root, typically the client\u2019s private ND partition such as</span> <code>nd0</code><span class="s1">.</span></li></ol></div></div></div></blockquote><div><br></div><div>There's two ways (well actually three) of getting it to work.</div><div>First is to extend the functionality of ndbootd to provide /boot and /vmunix as well as the first+second stage boot loaders.</div><div>Second is to use ndd and change the <code>MAX_MINOR <font face="Helvetica">variable to go to 0x40 (ndp0) and provide a file from ndd, that contains the correct information.</font></code></div><div><code><font face="Helvetica">(Third is using non-original boot loaders that load the kernel via NFS and then have the kernel do the rest via nd0.)</font></code></div><div><code><font face="Helvetica"><br></font></code></div></div><div><blockquote type="cite"><div><div name="messageBodySection"><div class="p1">So <span class="s2"><strong>yes, there is effectively a third piece</strong></span><span class="s1">, if we\u2019re calling the PROM-loaded</span> <code>bootnd</code> <span class="s1">stage 1. But</span> <code>/boot</code> <span class="s1">isn\u2019t sitting at some predetermined ND block number after block 16. It\u2019s an ordinary file in the filesystem contained on</span> <code>/dev/ndp0</code><span class="s1">.</span> <code>bootnd</code> <span class="s1">reads the filesystem metadata over ND, locates</span> <code>/boot</code><span class="s1">, and loads it. Then</span> <code>/boot</code> <span class="s1">similarly locates and loads</span> <code>/vmunix</code><span class="s1">. The SunOS 3 reboot documentation also identifies</span> <code>/boot</code> <span class="s1">as the system bootstrap and</span> <code>/vmunix</code> <span class="s1">as the system image.</span><span class="s1 Apple-converted-space"> </span></div>
<div class="p2">That\u2019s the important distinction with NetBSD\u2019s <code>ndbootd</code><span class="s1">. Modern</span> <code>ndbootd</code> <span class="s1">deliberately constructs a</span> <span class="s2"><strong>fake minimal ND disk</strong></span><span class="s1">:</span></div>
<ul>
<li><span class="s1">block 0: disk label-ish</span></li>
<li><span class="s1">blocks 1\u201315:</span> <code>bootyy</code></li>
<li><span class="s1">block 16 onward:</span> <code>netboot</code></li></ul></div></div></blockquote><div>This is the crux: "block 16 onward: netboot". How should this look? A small filesystem with /boot and /vmunix on it? Or does the boot loader expect the netboot program to start exactly at block 16? Or is it a small filesystem wich the first file netboot (does that then end up in block 16?) and blocks 1-15 overwritten with bootyy? Or </div><div>There's quite a few parameters which makes it hard to find out what is correct. Even Claude first mentions bootnd and then bootyy to be the first stage.</div><div><br></div><div>My SCSI2SD broke so I can't run SunOS 3.x on the real hardware at the moment, and I can't get any emulator to work. Also, I tried netbooting 4.0.3 and install SunOS on a SCSI disk but several disks work but will not be detected at boot time, the latest I tried (a Fujitsu) seemed to work but I cannot get boot blocks on it.</div><div><br></div><div>Although computers have become way more complex, it is clear that you need to know much less to operate them these days ;-)</div><div><br></div><div>Walter.</div></div></div></body></html>