On 2020-07-02, Brice Waegeneire wrote: > To support the widest hardware and boot options possible I went with > iPXE > as a chainloader. Meaning that any machine doing a PXE boot (or with > builtin iPXE with restricted feature set) will load the iPXE bootloader > first, which will then properly load the initrd. iPXE is really cool! The main downside is I don't think the support for non-x86 architectures is there, but would be happy to find out otherwise. > Currently I'm working on the initrd part to add NFS mounting capability > to > it. At this point I'm blocked by building a lightweight staticly built > 'nfs-utils' package to be included in the initrd. It's current total > size > 219.2 MiB, I manage to reduced it to 162.2 MiB which is still one order > of > magnitude larger than my initrd at 19 MiB. > > My issue building a static 'nfs-utils' is that it can't find > 'getrpcbynumber{,_r}' “configure: error: Neither getrpcbynumber_r nor > getrpcbynumber are available”. This function should be provided by the > libc > or by libtirpc if it's not that first one. The problem is that > 'libtirpc' > don't build it's own 'getrpcbynumber' because it find one in libc but > nfs-utils can't find it... Have you looked into using klibc (or maybe busybox) instead? They might be smaller and have enough capability to mount NFS. > Some other distros are using the kernel parameter 'nfsroot'[2], but we > probably don't want to use it since it can't be used together with an > initrd and it also mean we need built-in modules for NFS and network > card > driver in the kernel. Debian at least implements support for the nfsroot kernel parameter by emulating the behavior in the initrd, using kernel modules instead of built-ins. Seems like Guix could do the same? If you're trying to use user-space NFS, I suspect you'll run into a lot of issues... Debian at least dropped support for parts of the user-space NFS stack years ago as it had huge numbers of bugs and little activity upstream. Great to hear about progress on this work! live well, vagrant