mea*_*rix 6 nfs boot mount pxe initramfs
我正在 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 mount option was specified
Begin: Retrying nfs mount ... Begin: Running /scripts/nfs-premount ... done.
Run Code Online (Sandbox Code Playgroud)
但是,无论我使用什么挂载选项,都会显示此消息,因此这似乎是一个完全不同的问题......
我终于设法解决了它。以下是步骤:
/usr/lib/klibc/bin folder.)将 nfsmount 行更改/usr/share/initramfs-tools/scripts/nfs为:
mount.nfs ${NFSROOT} ${rootmnt} -o nolock ${roflag} ${NFSOPTS}
Run Code Online (Sandbox Code Playgroud)使用mkinitramfs或更新 initramfs 映像update-initramfs。
这将为我的 Ubuntu 10.10 系统启用 nfsroot 上的 fsc 选项。我不知道为什么我不能从 10.10 开始使用 mount.nfs —— 也许是回归?
| 归档时间: |
|
| 查看次数: |
4331 次 |
| 最近记录: |