Re: mounting root from NFS via ROOTDEVNAME

From: Eggert, Lars <lars_at_netapp.com>
Date: Thu, 31 Jan 2013 11:27:36 +0000
Hi,

On Jan 30, 2013, at 22:43, Craig Rodrigues <rodrigc_at_crodrigues.org> wrote:
> What you need to do is, before the FreeBSD kernel boots, your
> loader needs to export some environment variables.  This will trigger
> the various behaviors in the FreeBSD mount code.

the loader can export some environment variables (this is how I get the serial console working.)

> So as I suggested before, you should continue with:
> 
> (1)  Have /usr/home/elars/dst/etc/fstab with:
> #  Options  Dump Pass
> 10.11.12.13:/usr/home/elars/dst/       /         nfs      ro        0    0

Done.

> (2)  From your loader, you need to export this environment variable, so
> that the kernel can get it with getenv().  You need at least:
> 
> vfs.root.mountfrom=nfs:10.11.12.13:/usr/home/elars/dst

Done.

> Now, there are some other environment variables you need to export from the
> loader.  
> 
> boot.netif.ip
> boot.netif.netmask
> boot.netif.gateway
> boot.nfsroot.server
> boot.nfsroot.path

Done. I also ripped out all the BOOTP* options from the kernel.

However, this still fails:

Trying to mount root from nfs:10.11.12.13:/usr/home/elars/dst []...
mountroot: waiting for device 10.11.12.13:/usr/home/elars/dst ...
Mounting from nfs:10.11.12.13:/usr/home/elars/dst failed with error 19.

Loader variables:
  vfs.root.mountfrom=nfs:10.11.12.13:/usr/home/elars/dst

Manual root filesystem specification:
  <fstype>:<device> [options]
      Mount <device> using filesystem <fstype>
      and with the specified (optional) option list.

    eg. ufs:/dev/da0s1a
        zfs:tank
        cd9660:/dev/acd0 ro
          (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)

  ?               List valid disk boot devices
  .               Yield 1 second (for background tasks)
  <empty line>    Abort manual input

mountroot> 

I did a tcpdump and no traffic shows up on the correct interface (em4). I guess I need to set yet another loader environment variable to indicate which interface I'd like to use. Looking at the source, I only see boot.netif.name, but setting that to em4 doesn't help either.

Any further ideas?

Thanks,
Lars
Received on Thu Jan 31 2013 - 10:27:38 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:34 UTC