这个问题可能很简单,但我就是搞不懂,已经在这里呆了一整天了。任何建议都非常感谢。
我有两个盒子,一个作为服务器,另一个作为客户端运行。
服务器运行 Ubuntu 11.04,根文件系统位于 LVM2 逻辑卷上,静态 IP 192.168.2.20。安装干净的系统后,我将完整的根分区复制到另一个 LV,例如 /dev/data/root。所有文件都位于该 LV 上的 /nfsroot 文件夹下。我制作了 /dev/data/root 的两个快照(使用 lvcreate -s),分别为 /dev/data/master 和 /dev/data/node1。我将这两个 LV 挂载在服务器上作为 /mnt/{master,node1},并创建了 /mnt/master/nfsroot/master 和 /mnt/node1/nfsroot/node1 文件,这样我就不会迷路。然后我通过 NFS(nfs-kernel-server)将这两个挂载共享为
/mnt/master/nfsroot 192.168.2.0/24(rw,no_root_squash,async,insecure,no_subtree_check)
/mnt/node1/nfsroot 192.168.2.0/24(rw,no_root_squash,async,insecure,no_subtree_check)
我安装了这些 NFS 共享并在正确的位置看到了正确的文件。
然后我按照无盘 Ubuntu 操作指南安装了其他用于网络启动的组件https://help.ubuntu.com/community/DisklessUbuntuHowto。我的 2 号机的 PXElinux 配置是
DEFAULT linux
LABEL linux
KERNEL vmlinuz-2.6.38-8-server
APPEND root=/dev/nfs initrd=initrd.img-2.6.38-8-server nfsroot=192.168.2.20:/mnt/node1/nfsroot ip=dhcp rw
盒子 2 启动成功,但当我查看 / 时,我看到了 /master 文件。我检查了 /proc/cmdline 和 nfsroot,
nfsroot=192.168.2.20:/mnt/node1/nfsroot
还mount | grep ' / '
显示 192.168.2.20:/mnt/node1/nfsroot
然后我将两个共享挂载到 /mnt/{master,node1} 下的 box 2 上。即使挂载不同的服务器共享,两个文件系统似乎也映射到服务器上的同一个(主)共享。
有人知道原因吗?
有关描述问题的屏幕截图,请参阅http://ww3.sinaimg.cn/large/64b3c41egw1do3ftklgshj.jpg
答案1
如果有人来寻求答案,我想在这里提出我的解决办法。
我通过将 nfs-kernel-server 更改为 unfsd 解决了这个问题。无需更改 PXE 配置或客户端上的任何内容,问题就消失了。
但是还没有尝试 Fox 针对 fsid 的修复。
答案2
看起来您确实缺少 fsid=0 导出并使用 NFS4。因此,您应该/mnt 192.168.2.0/24(ro,fsid=0,no_subtree_check,sync)
在 /etc/exports 中添加类似第一个导出的内容,然后重新导出...
有关 nfs4 的一些信息是这里。