I have a configuration which worked pretty well over a few years, until latest update to Ubuntu Server 20.04. I have a head node: tftpd-hpa which provides pxelinux.0
, kernel, initrdfs and booting parameters:
root=/dev/nfs initrd=node-initramfs nfsroot=auto ip=dhcp rw
The headnode also runs isc-dhcp-server with follow configuration
default-lease-time 3600;
ddns-update-style none;
deny booting;
deny bootp;
option domain-name "XXX";
server-name "node0.XXX";
subnet XXX.XXX.XXX.0 netmask 255.255.255.0 {
allow booting;
allow bootp;
default-lease-time 14400;
max-lease-time 172800;
option domain-name "XXX";
filename "pxelinux.0";
option root-path "XXX.XXX.XXX.1:/XXXXX/nfsroot";
host node1.XXX {
hardware ethernet 00:25:90:5b:cd:b8;
fixed-address XXX.XXX.XXX.2;
option host-name "node1";
option root-path "XXX.XXX.XXX.1:/XXXX/node1";
}
.......
}
Of course the head node runs nfs-kernel-server and exports required directories for nodes.
However, when a diskless node is booting in and should be using nfsroot=auto
to fetch root-path
option from dhcp server, it crashes into rescue mode with message nsfmount: need a path
If I change kernel parameters to
root=/dev/nfs initrd=node-initramfs nfsroot=XXX.XXX.XXX.1:/XXXX/node1 ip=dhcp rw
a diskless node boots up normally.
The kernel and initramfs are standard and the same as for main system in /boot
directory.
Any idea, where root-path
can be lost during booting?