我正在 PXE 引导一个 Ubuntu 10.10 系统,我指定内核参数如下:
append root=/dev/nfs initrd=ubuntu-boot/initrd.img-2.6.35-24-generic
nfsroot=11.22.33.44:/data/nfsroot,fsc ip=dhcp rw
Run Code Online (Sandbox Code Playgroud)
我需要使用挂载选项“fsc”才能使用 FS-cache 功能(cachefilesd 包)。但是,当我尝试这样做时,我在启动时收到以下错误:
nfsmount: bad option 'fsc'
Run Code Online (Sandbox Code Playgroud)
为什么 nfsmount 不允许这个选项?(mount -o fsc在启动后手动挂载时它工作正常。)
我mount -t nfs在文件中将nfsmount 更改为,/usr/share/initramfs-tools/scripts/nfs然后我运行update-initramfs -u更新 initramfs 映像,但似乎仍然出现错误:
mount: unknown nfs mount option 'fsc'
Run Code Online (Sandbox Code Playgroud)
我的猜测是,这是klibc 中挂载功能的限制。解决这个问题的最佳方法是什么?nfsmount 程序需要打补丁吗?
由于这似乎是 klibc 中 nfsmount 工具的限制,我想我可以添加/sbin/mount.nfs到 initramfs 映像并使用此工具挂载 nfsroot。我将它复制到文件夹中/usr/lib/klibc/bin,/usr/share/initramfs-tools/scripts/nfs并按如下方式更新了脚本:
mount.nfs ${NFSROOT} ${rootmnt} -o nolock ${roflag} ${NFSOPTS}
Run Code Online (Sandbox Code Playgroud)
启动更新后的 initramfs 映像后,执行 mount.nfs 时有很长的延迟,然后显示以下消息:
mount.nfs: an incorrect …Run Code Online (Sandbox Code Playgroud)