nov 18
系统从 5.4-Release-p8 升级到 6.0-Release 后,cvsd 的初始化工具 cvsd-buildroot 一直不能用:
[root@rednora ~]# cvsd-buildroot /export0/cvsd creating directory structure under /export0/cvsd... done. installing binaries... cvs. locating libnsl.so... not found (probably not fatal) locating libnss_compat.so... not found (probably not fatal) locating /lib/ld-linux.so.2... not found (probably not fatal) locating /lib64/ld-linux-x86-64.so.2... not found (probably not fatal) locating ld-elf.so... /usr/libexec/ld-elf.so.1 locating libnss_compat.so.2... not found (probably not fatal) locating libnss_files.so.2... not found (probably not fatal) locating /usr/libexec/ld.so... /usr/libexec/ld.so locating /usr/lib/ld.so.1... not found (probably not fatal) locating nss_files.so.1... not found (probably not fatal) installing libraries... ld-elf.so.1 ld.so libgnuregex.so.3 libmd.so.3 libcrypt.so.3 libz.so.3 libgssapi.so.8 libkrb5.so.8 libasn1.so.8 libcrypto.so.4 libroken.so.8 libcom_err.so.3 libc.so.6. creating /export0/cvsd/dev devices... FAILED (unable to use devices) adding users to /export0/cvsd/etc/passwd...getent: not found getent: not found getent: not found getent: not found . getent: not found getent: not found getent: not found making /export0/cvsd/etc/pwd.db...done. fixing ownership... done. chrooted system created in /export0/cvsd if your cvs binary changes (new version) you should rerun cvsd-buildroot
研究了一下 cvsd-buildroot 脚本,发现问题在于为 cvsd 创建的 jail 中的 dev/null 和 dev/zero 设备文件失效。找了一圈,发现在 6.0 中加强了 devfs 的使用,需要把 /export0/cvsd/dev 加载为 devfs 才能用:
[root@rednora ~]# mount_devfs devfs /export0/cvsd/dev
但这么操作之后,发现所有设备文件都出现在了 /export0/cvsd/dev 目录中,而我们只是需要 null 和 zero,这就需要用到 devfs 的 rule 设置:
[root@rednora ~]# devfs -m /export0/cvsd/dev ruleset 10 [root@rednora ~]# devfs -m /export0/cvsd/dev rule -s 10 add hide [root@rednora ~]# devfs -m /export0/cvsd/dev rule -s 10 add path null unhide [root@rednora ~]# devfs -m /export0/cvsd/dev rule -s 10 add path zero unhide [root@rednora ~]# devfs -m /export0/cvsd/dev rule -s 10 applyset
经过这些设置,cvsd 又恢复正常了!
@TODO:
这些信息在系统重启后会丢失,需要仔细研究 devfs 在 FreeBSD 系统中使用,添加到相应的启动脚本中。



No comments yet