执行完 mount -av, 你就有个运作中的文档系统了. 建个一般的fstab, 这样稍后你便可, 把它复制到每个客户端. 你的 fstab 应该看起来像:

  1. server:/clients/hostname    /               nfs     default  1 1  
  2. server:/bin                 /bin            nfs     default  1 1  
  3. server:/usr                 /usr            nfs     default  1 1  
  4. server:/sbin                /sbin           nfs     default  1 1  
  5. server:/home                /home           nfs     default  1 1  
  6. server:/lib                 /lib            nfs     default  1 1  
  7. server:/clients/etc         /server/etc     nfs     default  1 1  
  8. server:/clients/var         /server/var     nfs     default  1 1  
  9. none                        /proc           proc    default  1 1 

请注意, 关键字 default 或许不会有效于所有不同版本的挂载. 你可以把它更改为 rw 或 ro, 或者移除全部的 default 1 1.再者, 确定你伺服器的 /etc/exports, 看起来像:

  1. /clients/hostname   hostname.domainname(rw,no_root_squash)  
  2. /clients/etc        hostname.domainname(ro,no_root_squash)  
  3. /clients/var        hostname.domainname(ro,no_root_squash)  
  4. /usr                hostname.domainname(ro,no_root_squash)  
  5. /sbin               hostname.domainname(ro,no_root_squash)  
  6. /bin                hostname.domainname(ro,no_root_squash)  
  7. /lib                hostname.domainname(ro,no_root_squash)  
  8. /home               hostname.domainname(rw,no_root_squash) 

对每台主机而言, 第一行应该各自独立, 除此之外, 其他行可替换为主机遮罩 (hostmask), 使你所有的主机都能相契 (如 pc*.domain -然而要记住, * 只能代换没有句点的字串). 我建议你, 让大部分的目录唯读, 不过这由你决定. no_root_squash 将确保使用者 root,在客户端上, 对于 nfsd 实际也有 root 权限. 请查证 man exports(5).

假如你要让使用者, 也能从客户端执行 passwd, 那请确定 /etc 可读可写 (rw) 而非唯读 (ro). 不过, 这并不明智.请注意另一件, 有关文档 rc.S 的事. 在 Slackware 执行 rc.S, 预设会每次都建立新的 /etc/issue 和 /etc/motd. 假如这些档从伺服器挂载为唯读 (ro), 那这个功能一定要停用, 而且我建议, 在任何情况都应停用.

最后, 如果你伺服器, 要和客户端一样, 拥有相同的使用者资料库 (userbase), 你应在下列两种方式作选择,

1) 使用 NIS (YellowPages - 请参考 yp-howto), 这样, 接收自 NIS 伺服器之故, 每个客户端都会各自有 /etc/passwd 以及 /etc/group.

2) 大多数情况, 简单的 symbolic link 就够了. 因此, 你需要 hardlink /clients/etc/passwd到 /etc/passwd, 或者你喜欢用 symbolic link 的话, 那就把 /etc/passwd连结到 /clients/etc/passwd (反过来说, 这是因为客户端并不挂载伺服器的 etc 目录). 至于 /etc/group, 方法也一样.

3.2. 建立单一客户端专用的 etc 目录

一般而言, 在客户端的 etc 中, 文档大部分应该 symbolic link 到目录 /server/etc. 然而, 有些文档应随每台硬件的差异, 而彼此不同,而有些只在载入核心时才用到. 目录 etc 中, 你最少需要的档, 如下:

  1. resolv.conf  
  2. hosts  
  3. inittab  
  4. rc.d/rc.S  
  5. fstab 

既然这五个档, 在所有客户端都可以相同, 你可以直接把它们hardlink, 或者再复制一次. 不过, rc.S 与 fstab 两档, 最好是每个客户端各复制一份. 你还需要每个客户端, 各自一份 etc/HOSTNAME.我个人是建议, 所有的 rc.d 档, 每个客户端都要各自有一份, 因为组态和硬件可能彼此相异.为每个客户端, 把适当的 swap 行, 加入其 fstab 档:

  1. /dev/swap_partition                 swap    swap    default  1 1 

客户端其余的 /etc 档, 你可以 hardlink 到文档 /clients/etc/*, 或把它们 symbolic link 到 /server/etc (这是 /clients/etc/ 的挂载点).确定你的主机能正确的 resolve, 无论是透过 named 还是 etc/hosts.在 etc/hosts 中记录伺服器的 IP, 而不倚赖 resolve, 这方式不错. 假如你只倚赖 named 的 resolve, named 出了个问题, 将使你客户端无法开机.

3.3. 开机

现在, 你该作的就是, 开机, 十指交叉, 期望每件事都正常运作。

4. 建立更多的客户端

如果你已跟著我的指示, 作到这里, 那这应该很简单 - cd 到 /clients,键入:

  1. cp -a hostname1 hostname2 

然后, 确定你检查了这几点:rc.d/* 档符合软硬件组态etc/HOSTNAME 正确, fstab 的 swap 行正确, dev/mouse, dev/modem,dev/cdrom 这三个的 symbolic links 正确.


相关内容