PXE boot using Grub bootloader fails at mountroot; no PXE devs.
Rick Macklem
rmacklem at uoguelph.ca
Sat Jun 28 20:53:30 UTC 2014
Beeblebrox wrote:
> I'm using grub2 as the pxe bootloader rather than BTX's pxeboot.
>
> I get Grub to load kernel and all necessary modules and boot. It goes
> as far
> as mountroot> and stops. "?" fails to show any pxe devices. If I
> recall
> correctly, when booting from BTX and upon hitting a mountroot
> problem, "?"
> is able to show pxe device. The kernel modules {nfscl.ko,
> nfsclient.ko,
> nfscommon.ko} are loaded through grub.cfg kfreebsd_module entries.
> Using the
> BTX pxeboot system boots and mounts everything normally.
>
> At this point, I could only think of two possibilities: A) the
> grub.cfg
> entry is wrong (which I don't think so since as stated above
> mountroot> "?"
> shows no available pxe devices). Or B) the more plausible reason is
> that I
> need to load some other module which will make the pxe devices become
> visible to the mountroot process. Grub's normal solution to this
> problem
> (pxechainloader $path/pxeboot) has been broken for some time
> unfortunately.
>
> I'd like to make sure that I am loading all the necessary modules
> through
> grub.cfg (for diskless clients) before heading over to the grub mail
> list
> with this problem. Server-side loaded modules: {nfsd.ko, nfslockd.ko,
> nfsserver.ko, nfs_common.ko, acl_nfs4.ko} within kernel: {nfscommon,
> nfssvc,
> nfs, nfscl, nfslock}.
>
I suspect it is linked into the kernel, but you'll need krpc.ko as well.
Btw, if your kernel is built with "options NFS_ROOT", it expects the
structure called nfsv3_diskless to be filled in (FreeBSD's pxeboot does this).
If nfsv3_diskless isn't being filled in by pxeboot or similar, you need
to build your kernel with:
options BOOTP
options BOOTP_NFSROOT
so that the kernel will use dhcp and NFS to acquire the information instead
of expecting it to be filled into nfsv3_diskless.
(The code that this uses is in sys/nfs/bootp_subr.c.)
rick
> As a side comment, under BTX as long as one has "option root-path" in
> dhcpd.conf and a correct fsatb entry for "/", none of the below are
> needed
> in loader.conf - system is able to boot without these and mount ro
> (from
> fstab):
> boot.nfsroot.server="192.168.2.1"
> boot.nfsroot.path="/data/amd6"
> vfs.root.mountfrom="nfs:192.168.2.1:/data/amd64"
> vfs.root.mountfrom="nfs"
>
> Regards.
>
>
>
> -----
> FreeBSD-11-current_amd64_root-on-zfs_RadeonKMS
> --
> View this message in context:
> http://freebsd.1045724.n5.nabble.com/PXE-boot-using-Grub-bootloader-fails-at-mountroot-no-PXE-devs-tp5924518.html
> Sent from the freebsd-net mailing list archive at Nabble.com.
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to
> "freebsd-net-unsubscribe at freebsd.org"
>
More information about the freebsd-net
mailing list