Sunday, July 19, 2020

386BSD at last!

So, Friday I was looking at the 386BSD repository (as you do) and noticed something quite interesting...

boot.exe

...wtf is a boot.exe? It is a DOS utility that allows you to boot an 386bsd kernel. Similar to (and the basis of?) the utility that used to ship in early FreeBSD cds.

After a brief test in VirtualBox (as you do) I set up an 86Box machine to test it out -and then another, and another, and so on.

Ignoring all of the dead ends and tangents, what I did can be summarized thusly:


  1. I cloned the 386BSD 1.0 repository inside of WSL
  2. I created a tar file (three, actually -a base, X386 and source) and put it on an iso
  3. I created a new 86Box machine, with a 504mb (no larger -or 386BSD's install crashes) drive.
  4. I added a second 504mb drive to that machine.
  5. I attached that drive onto a working FreeBSD 2.0 86Box machine.
  6. Booting into FreeBSD, I mounted the iso I created and the 386BSD drive and untarred all of the archives onto it
  7. After shutting that down, I booted the 386BSD machine and from dos typed boot 386bsd.sma wd1a
  8. I ran through the install process from the secondary hard drive to install 386BSD to the first
  9. I "enjoyed" my new 386BSD 1.0 installation!


...mind the quotes. The install is very rough, and I had to do some things I'm not proud of (ln /usr/bin/true /usr/sbin/sendmail) and some things I shouldn't have had to do (cp /etc/MAKEDEV /mnt/etc/MAKEDEV) (cd /mnt/dev;MAKEDEV

...and the included source does NOT compile, though I can't rule out a fuck-up on my part.

There's quite a few subtleties to all of this; missing directories, odd permissions and at this moment it only seems to work with extremely specific 86Box machines (NEC Pentium, to be exact). Also the TERM variable seems to be set to xterm which is a complete W.T.F. Then there's the question of setting the date (you can, but it doesn't persist)

...but at this point, that's all trivia; the important thing is that I have a "working" configuration.

"Working"



automating zfs mounts -a quick and very dirty script

 #!/bin/sh for x in obj xsrc src pkgsrc pkgsrc/distfiles pkgsrc/packages pkg         do zfs create ext/$x zfs set mountpoint=/usr/$x ext/$x ...