Is there a nice diskless HOWTO?

Miles Nordin carton at Ivy.NET
Mon Oct 17 16:19:01 PDT 2005

>>>>> "bo" == Bruce O'Neel <edoneel at> writes:

    bo> Hi, Is there a nice diskless HOWTO? 


I believe you can install by hand just as on NetBSD, except while for
NetBSD you just extract the .tgz files, for FreeBSD you have to cat
together the blah.a{b,c,d,e,f} chunks, and then pipe that into gzip |
pax -rpe.  or is it bunzip2, i forget.

The three significant differences I found between FreeBSD and NetBSD
nfsroots are:

 * On NetBSD, the 'option root-path' option is a path only, not a
   server IP, and the IP address of the root NFS server if it differs
   from the 'next-server' goes into the 'option swap-server' field.
   NetBSD doesn't document this, but that's how it is.  On FreeBSD,
   the root-path option is "" as you'd expect.

 * FreeBSD is broken all over the place if the NFS server doesn't
   support locking.  like, 'vi' doesn't work for example.  and AFAICT
   it is impossible to disable the default locking-enabled mount
   options of an NFS root.  NetBSD doesn't use locking anywhere---I
   think there is no working NetBSD code written for NFS locking,
   client or server.

 * NetBSD NFSroot users like to make mfs's and tmpfs's for things like
   /dev, /tmp, /var/run.  FreeBSD doesn't have mount_mfs---it uses
   something else.  I couldn't get FreeBSD's mdmfs to work at all, but
   FreeBSD has a devfs so it's good there's no incentive to make a
   /dev mfs as on NetBSD.

>>>>> "jg" == John-Mark Gurney <gurney_j at> writes:
>>>>> "kk" == Kris Kennaway <kris at> writes:
>>>>> "rw" == Royce Williams <royce at> writes:
>>>>> "a" == alm  <alm at> writes:

    kk> Here's a snippet from my dhcpd.conf
     a> -Configure a static DHCP lease for it: 
     a> host netboot { 
     a>   hardware ethernet <mac-addr> ; 
     a>   option host-name "<hostname>" ;
     a>   fixed-address <IP addr.> ; 
     a>   always-reply-rfc1048 on; 
     a>   filename "/boot/loader"; 
     a>   next-server <TFTP/NFS server> ; 
     a>   option root-path "<TFTP/NFS server>:/mnt" ;
     a> }

It turned out to be pretty easy just to get the system booted once
hearing that /boot/loader could be fed straight to OpenPROM over tftp.


     a> boot net:dhcp

behaved the same on my sparc64 as 'boot net'.  The OpenPROM used RARP
(not DHCP) to find the second-stage loader even with 'boot net:dhcp'.
Then it TFTPs to whatever machine replied to the RARP.  I wonder if
net:dhcp is a cue to Solaris's inetboot?  They have this massively
complicated 'wanboot' framework now, too, including multiple
cryptographic keys and CGI scripts on web servers.  <shudder>.

I put /boot/loader in the tftpboot directory and named it C0A8017C to
match the IP of my Sun,  /boot/loader then used DHCP
(not bootparams) to get just one option, root-path:

host amber {
  fixed-address amber;
  hardware ethernet 08:00:20:xx:xx:xx;
  option root-path "";

and /boot/loader loaded loader.conf and whatever else it needed over
NFS rather than TFTP.  The only thing loaded over TFTP was
the file C0A8017C (a copy of /boot/loader).

     a> lofiadm

I didn't end up using this nor the mfsroot, because I didn't use
sysinstall.  I just extracted all the {base,doc,src,..}.{aa,ab,ac...}
files by hand.  But it's good to have those instructions written down
because others will probably want to netboot into sysinstall.

Now I have three more problems:

 1. The NetBSD NFS server I'm using doesn't support locking, so I
    can't run vipw or pwd_mkdb, and vi always says 'UNLOCKED' in the
    status bar.  I can't 'mount -u -o -L /'
    because the -L option is documented, obeyed only on initial mount,
    not for remount.  Is there a way to get this option turned on for
    the initial root mount?

 2. I tried 'mdmfs -s 32m md /tmp' and it never returned to the
    prompt.  ^C doesn't work, and I can't get to 'ok' or to 'ddb>' by
    pressing BREAK.  Is there a sysctl to obey BREAK?

 3. Boot hung after ``waiting 15 seconds for SCSI devices to settle''
    when I have my Firewire card installed.  The Install CD boots
    successfully with the card installed and even makes an fwe0.  Is
    there a way to use the loader to disable a broken device like this
    SCSI-over-Firewire?  I tried commands like 'disable-module sbp'
    but it always says 'sbp not found'.

sorry for all the questions.  I'm just getting started.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 304 bytes
Desc: not available
Url :

More information about the freebsd-sparc64 mailing list