下一页 上一页 目录

6. 基本原理

6.1 简介

UmsdosLinux 文件直接映射到 Ms-DOS 文件。这是一种一对一的转换。文件内容完全不会被修改。Umsdos 仅处理文件名。对于特殊文件(例如链接和设备),它引入了特殊的管理方式。

对于每个目录,都有一个名为 --linux-.--- 的文件。

6.2 Umsdos 可以替代 Ms-DOS 文件系统。

Umsdos 可以被认为是 Linux 的 Ms-DOS 文件系统的通用超集。事实上,这种能力或灵活性引起了关于 Umsdos 的很多困惑。原因如下。尝试像这样挂载一个新格式化的 DOS 软盘。

        mount -t umsdos /dev/fd0 /mnt
        

并执行此操作,

        ls / >/mnt/LONGFILENAME
        ls -l /mnt
        

你将得到以下结果

        -rwxr-xr-x   1 root     root          302 Apr 14 23:25 longfile
        

到目前为止,看起来 Umsdos 文件系统并没有比 Linux 的普通 Ms-DOS 文件系统做更多的事情(实际上什么也没做)。

???

6.3 目录提升

到目前为止,看起来相当普通。诀窍在于此。除非被提升,否则 DOS 目录将以与 Ms-DOS 文件系统相同的方式被 Umsdos 管理。Umsdos 在每个子目录中使用一个特殊文件来实现 Umsdos 的扩展功能(长文件名、所有权等)和 DOS 文件系统的限制之间的转换。这个文件对于 Umsdos 用户是不可见的,但在你启动 DOS 时是可见的。为了避免不必要地用这些文件 (--linux-.---) 塞满 DOS 分区,这个文件现在是可选的。如果不存在,Umsdos 的行为就像 Ms-DOS

当一个目录被提升后,任何后续操作都将以通常对 UnixLinux 用户可用的完整语义来执行。之后创建的所有子目录都将被静默提升。

此功能允许你将你的 DOS 分区在逻辑上组织成 DOS 内容和 Linux 内容。重要的是要理解这些 --linux-.--- 文件确实占用一些空间(通常每个目录 2k)。DOS 通常使用大的簇(对于 500MB 分区,簇可以达到 16k),因此避免到处放置 --linux-.--- 可以节省你的空间。

6.4 如何提升:/sbin/umssync

可以随时使用 /sbin/umssync 提升目录。它可以随时使用。提升目录会执行以下操作

/sbin/umssync 维护现有的 --linux-.--- 文件。它并非总是从头开始创建。它只是在其中添加缺失的条目(在 DOS 会话期间创建的文件)。它还将从 --linux-.--- 中删除 DOS 目录中不再存在的文件。umssync 的名字由此而来。它使 --linux-.--- 与底层 DOS 目录同步。

6.5 在启动时使用 /sbin/umssync

如果 /etc/rc.d/rc.S 中没有调用 /sbin/umssync,则最好在文件末尾添加一个调用。以下命令适用于大多数系统

        /sbin/umssync -r99 -c -i+ /
        

-c 选项阻止 umssync 提升目录。它只会更新现有的 --linux-.--- 文件。

如果你在 DOS 会话期间访问 Linux 目录,此命令非常有用。Linux 没有有效的方法来判断目录是否已被 DOS 修改,因此 Umsdos 无法根据需要执行 umssync 操作。

6.6 如何取消提升

使用 DOS 删除 --linux-.--- 文件。你会后悔的。

6.7 在 DOS 会话期间创建的文件怎么样?

除非你在 DOS 添加或删除文件的目录上使用 umssync,否则你会注意到一些问题


下一页 上一页 目录