initrd and NFS

Jon Peatfield (J.S.Peatfield@damtp.cam.ac.uk)
17 May 1997 03:43:07 +0100


It seems a bad idea that the NFSroot code has to have so many extra
bits in the kernel. e.g. all the network setup code bootp, actual NFS
mount etc. I know it can be removed from memory after use, but this
really all belongs in userland.

If the change_root code were altered to take an already mounted
file-system, (rather than just a device number pushed by magic), then
NFSroot could be done by an initrd which mounts the filesystem (from
userland) and then signals the kernel to do the change.

This also allows all the other "nodev" file-systems to be used for
root without special magic.

e.g. one implementation might be to mount the new fs on the top of /
(after making sure that the i_count of / is 1 :-) and exits. The
change_root code then has the job of umounting the underlying fs :-)
(probably not much worse than what is done now).

I now wait to be shot down and have it explained why this won't
work...

-- 
Jon Peatfield,  DAMTP,  Computer Officer,   University of Cambridge
Telephone: +44 1223  3 37852    Mail: J.S.Peatfield@damtp.cam.ac.uk