netboot issues, 8.0, mfsroot mount failure

Jeremy Chadwick freebsd at jdc.parodius.com
Wed Feb 17 02:11:40 UTC 2010


On Tue, Feb 16, 2010 at 08:28:03PM -0500, Charles Sprickman wrote:
> Howdy,
> 
> I'm having some problems getting 8.0 to install over the network.
> I've got my dhcp, tftp and nfs server working well, and I've tested
> all three services from this host before attempting to boot over the
> network.
> 
> pxeboot seems to work, and I see it get loaded via tftp.  The kernel
> boots, and parses the options in loader.conf that exist in my
> nfs-exported 8.0 DVD fileset:
> 
> [root at archive /home/spork/tmp]# cat
> /usr/local/netboot/freebsd8/boot/loader.conf
> mfsroot_load="YES"
> mfsroot_type="mfs_root"
> mfsroot_name="/boot/mfsroot"
> boot_multicons="YES"
> boot_serial="YES"
> console="comconsole,vidconsole"
> vfs.root.mountfrom="ufs:/dev/md0c"
> 
> I see the kernel does find mfsroot and attaches it:
> 
> md0: Preloaded image </boot/mfsroot> 4423680 bytes at 0xc0f6dfe0
> 
> But then when it's ready to mount the root filesystem, I get this:
> 
> SMP: AP CPU #1 Launched!
> Trying to mount root from ufs:/dev/md0c
> ROOT MOUNT ERROR:
> 
> If you have invalid mount options, reboot, and first try the
> following from the loader prompt:
> 
>      set vfs.root.mountfrom.options=rw
> 
> and then remove invalid mount options from /etc/fstab.
> 
> It doesn't really state what the error is.  It's hinting that it's
> read-only, but that seems odd.  Even if it couldn't mount r/w,
> shouldn't it just drop to single-user at this point?
> 
> Next it tries nfs:
> 
> Trying to mount root from nfs:
> NFS ROOT: 192.168.1.111:/usr/local/netboot/freebsd8
> em0: link state changed to UP
> 
> And there it sits.  Remotely I can't do anything.  If I'm local, I
> can ctrl-alt-del a few times and then about a minute later it does
> an orderly restart.

We've been talking off-list about this (and other things), but at this
point I'm pretty sure the problem is that the local slice naming
convention has changed in RELENG_8 from what it was in RELENG_7.

This is the cause/result of the "GEOM overhall" (or whatever it is; I
don't know what to call it.  Is it libdisk changes?  GEOM?  Both?  I
really don't know).  Basically, the way the full size of the disk gets
handled differs now from RELENG_7.  (See footnote for "fun")  So, try
changing this:

vfs.root.mountfrom="ufs:/dev/md0c"

...to this (look closely):

vfs.root.mountfrom="ufs:/dev/md0"

Remember: the mfsroot image is essentially a UFS filesystem that's
mounted as memory disk.  Since you re-created mfsroot (like you're
supposed to :-) ) on a RELENG_8 box, the layout is different.

The NFS root mount you see happening later is a result of the root
filesystem not being available.  This is normal if mfsroot fails.

Please let me (on the list) know if this fixes your problem.

Footnote: This is why I tell folks to zero out the first 8192 bytes of
any disk they've previously installed FreeBSD on (even if the disk has
no filesystems/slices on it).  The way FreeBSD determines the size of
the disk differs in RELENG_8; I believe GEOM "figures it out" on its own
now, while previous releases relied on the "c" slice.  The method I've
recommended: do dd if=/dev/zero of=/dev/adX bs=512 count=16.

-- 
| Jeremy Chadwick                                   jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |



More information about the freebsd-stable mailing list