netboot issues, 8.0, mfsroot mount failure

Charles Sprickman spork at bway.net
Wed Feb 17 04:43:32 UTC 2010


On Tue, 16 Feb 2010, Jeremy Chadwick wrote:

> 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"

I made the change on the server, but the box is stuck until I can get over 
there again.  Serial consoles are nice, but not being able to send 
"ctrl-alt-del" is a sad limitation. :)

> 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.

In this case, I'm still using the stock 8.0 mfsroot.  The only change was 
to un-gzip it.  But this particular issue is probably due to the geom 
change you noted, so we'll see what happens on reboot.

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

I'm still stumped as to why it hangs there.  I do have something for it to 
mount there via NFS (the 8.0 dvd contents), and it appears to try, but 
then it just sits there.  Not locked up, just waiting...

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

As soon as she boots, I'll report back.

> 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.

Is it also advisable to blot out any old glabel stuff at the end of the 
disk?  What's the math to get that?  Get a sector count for the whole 
disk, set "bs" to 512 and "skip" to (sector count - 1)?

Thanks,

Charles

> -- 
> | 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 |
>
> _______________________________________________
> freebsd-stable at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>


More information about the freebsd-stable mailing list