I'm trying to build kernel 3.13.9, fetched using apt-get source, and built in a clean debootstrap chroot (both host and chroot being installations of Ubuntu Trusty). My goal is to boot a diskless machine to a console over NFS.I ran make menuconfig and enabled 64-bit kernel, disabled debugging, and made sure I was doing a 64-bit build. In addition, I went to file systems->network file systems, and enabled the following:Network File SystemsNFS Client Support The host has nfs-kernel-server installed, and an export set up for the directory that I would like to use as the root of the network-booted system.PXE boot happens OK, kernel and initrd are loaded, but after a long pause, I'm dumped to a busybox prompt, due to a root filesystem being missing.What could be the cause? (or, is more info needed?)Edit: I'm already passing nfsroot:LABEL linuxKERNEL vmlinuz-3.13.9APPEND root=/dev/nfs initrd=initrd.img-3.13.9 nfsroot=192.168.1.39:/nfsroot,rw ip=dhcp rw
Built the kernel with NFS support but not getting /dev/nfs
linux kernel;nfs;root filesystem
As the kernel documentation states, /dev/nfs is not a real device but only a hint to the kernel to use NFS as rootfs.  You'll also have to tell the kernel where to find this root through the  nfsroot parameter or a properly set up DHCP daemon.  For the latter one to work you'll also have to either configure your kernel to auto-configure its network interfaces or have an initramfs which takes care of this.Also, make sure to have NFS support built into your kernel binary and not as a module (or have an initramfs, which takes care of this).  Same goes for network drivers: you'll most probably want to have the driver for you ethernet NIC built into your kernel image, otherwise you'll have to load it from an initramfs.In short, there are several possibilities:Do as above link tells you: have root=/dev/nfs set, give the correct nfsroot parameter and tell your kernel your network configuration via the ip parameter (this would be the best way to make sure it's working at all, i.e. to rule out a misconfigured DHCP server).Have CONFIG_IP_PNP and CONFIG_IP_PNP_DHCP enabled and set up a DHCP daemon to tell your client which IP address to use and where to find its NFS-root.Build an initramfs which does the correct configuration and NFS-mounting.Edit: I think if you're using an initrd/initramfs as your edit suggests, you'll have to do the NFS-mount in the initrd (resp. your initrd has to be aware of the fact that it has to do so).  Automounting through the kernel (as IP autoconfiguration, IIRC) only works if there's no initrd.