diskless boot, nfs server behind router

Rick Macklem rmacklem at uoguelph.ca
Tue Jun 29 00:24:29 UTC 2010



On Mon, 28 Jun 2010, Daniel Braniss wrote:

>>
>>
>> On Mon, 28 Jun 2010, alexs at ulgsm.ru wrote:
>>
>>>
>>>
>>> kernel built with:
>>> options     BOOTP          # Use BOOTP to obtain IP address/hostname
>>> options     BOOTP_NFSROOT  # NFS mount root file system using BOOTP info
>>> options     BOOTP_NFSV3
>>>
>> Try building a kernel without the above options, but with
>> options NFS_ROOT
>> specified. I think that's what most pxeboot users do and it was what
>> I had assumed when I looked at the code.
>>
>> If that doesn't fix the problem...I haven't got a solution for you, rick
>
> I use:
> options         BOOTP_NFSV3             # Use NFS v3 to NFS mount root
>
Looking at the code, it appears that BOOTP_NFSROOT doesn't set mygateway
in the nfs_diskless structure, which would explain why the mount of root
in the kernel doesn't work.

I think using NFS_ROOT but not the BOOTPxxx options will work around this
or you could test the following patch and see if it helps. (Testing the
patch would be appreciated, since I don't have any way to test across
multiple subnets and it would be nice to have a fix for the BOOTPxxx
cases.)

rick
--- untested patch for bootp_subr.c ---
--- nfsclient/bootp_subr.c.sav	2010-06-28 19:16:02.000000000 -0400
+++ nfsclient/bootp_subr.c	2010-06-28 19:21:52.000000000 -0400
@@ -1524,6 +1524,7 @@
  			printf(" ");
  			ifctx->gotgw = 1;
  			gctx->gotgw = 1;
+			nd->mygateway = ifctx->gw;
  		}
  	}



More information about the freebsd-stable mailing list