通用线程: 高级文件系统实现者指南,第 6 部分

豆豆网   技术应用频道   2008年04月15日  【字号: 收藏本文

内容摘要:Daniel Robbins 通过向您演示如何在 Linux 2.4 下来安装这些高级文件系统回答这些问题。在这一安装过程中,Daniel 向您演示了如何使用一个初始化封装器来(最终!)将您的系统转换到“devfs mode”。

  devfsd.conf,续上

REGISTER    ^pt[sy]/.*   IGNORE
CHANGE     ^pt[sy]/.*   IGNORE
REGISTER    .*       COPY  /dev-state/$devname $devpath
CHANGE     .*       COPY  $devpath /dev-state/$devname
CREATE     .*       COPY  $devpath /dev-state/$devname

  这几行告诉 devfsd 使用 /dev-state 作为用于设备许可权和所有权变更以及任何用户可以创建的兼容设备的资源库。在头两行中,显式地告诉 devfsd ,当内核中注册了任何伪终端设备或当它们的属性被更改时,不要执行任何特殊的操作。如果没有这几行,则在重引导系统之后,仍然会保留伪终端的许可权和所有权。那样做不太理想,因为应该总是在系统启动之后给予伪终端一套新的缺省许可权。

  接下来的三行为所有其它设备打开 /dev-state 持久性。特别地,注册设备或 devfsd 自己启动时,将 从 /dev-state 恢复设备的任何属性(以及复制给任何现有的兼容设备),并且我们将立即 备份属性的任何更改,以及将任何新兼容设备创建到 /dev-state 中去。

  CFUNCTION 和符号链接

  给出以下几行,最终完成 devfsd.conf:

  devfsd.conf,结束

REGISTER    ^cdrom/cdrom0$     CFUNCTION GLOBAL symlink cdroms/cdrom0 cdrom
UNREGISTER   ^cdrom/cdrom0$     CFUNCTION GLOBAL unlink cdrom
REGISTER    ^misc/psaux$      CFUNCTION GLOBAL symlink misc/psaux mouse
UNREGISTER   ^misc/psaux$      CFUNCTION GLOBAL unlink mouse

  这最后四行是可选的,但它们也值得一看。虽然对于设备节点,/dev-state 持久性工作得非常好,但对符号链接却根本不起任何作用,它会忽略符号链接。因此,这就产生一个问题:人们怎么确保 /dev/mouse 或 /dev/cdrom 符号链接不仅存在,而且在重新引导系统之后它还是存在的呢?幸运的是, devfsd 可配置性非常好,这四行(或类似这样的,可以定制你的特定系统)将完成这一任务。头两行告诉 devfsd ,当注册 /dev/cdrom/cdrom() 时,使 /dev/cdrom 符号链接出现。为了做到这一点, devfsd 实际上执行指定的 libc 函数的动态调用,这里是 symlink() 和 unlink() 。该文件的最后两行使用相同的方法,在 /dev/misc/psaux(PS/2 鼠标)设备注册到 devfs 时,创建 /dev/mouse 符号链接。根据 您的系统来定制这几行,然后保存该文件。如果您愿意,可以 下载这个 devfsd.conf 文件,用在您自己的系统上。

  重新引导之前的注意事项

  在重新引导之前,您可能想看一下 Richard Gooch 的 devfs FAQ;您可能会找到关于 devfs 命名方案的信息,这些信息对于熟悉新风格设备名是非常有帮助的(请参阅下面的 参考资料)。我还建议您打印一份 本系列第 5 部分,以备您在解决与引导相关的问题时,能利用“紧急 bash 抢救”指导。记住,如果初始化封装器因为某种原因而崩溃,请遵循我的紧急抢救指导,重新安装根文件系统为读/写,然后执行下面步骤,这总是可以除去它的:

  如果需要,请返回至使用封装器前的状态

# cd /sbin
# mv init wrapper.sh
# mv init.system init

  在执行完这些步骤,并将文件系统重新安装成只读,然后,重新引导之后,系统将返回到使用预封装器前的状态。现在继续,重新引导,体验一下 devfs!

来源:ibm    作者:Daniel Robbins    责编:豆豆技术应用

正在加载评论...