Linux 的 Macintosh HFS 文件系统¶
注意
这个文件系统没有维护者。
HFS 代表 Hierarchical File System
(分层文件系统),是 Mac Plus 和所有后续 Macintosh 型号使用的文件系统。 早期的 Macintosh 型号使用 MFS (Macintosh File System
)(Macintosh 文件系统),它不受支持。 MacOS 8.1 及更高版本支持名为 HFS+ 的文件系统,它与 HFS 类似,但在各个方面进行了扩展。 使用 hfsplus 文件系统驱动程序从 Linux 访问此类文件系统。
挂载选项¶
挂载 HFS 文件系统时,接受以下选项
- creator=cccc, type=cccc
指定 MacOS Finder 显示的用于创建新文件的创建者/类型值。 默认值:'????'。
- uid=n, gid=n
指定文件系统上所有文件的所有者的用户/组。默认值:挂载进程的用户/组 ID。
- dir_umask=n, file_umask=n, umask=n
指定用于所有文件、所有目录或所有文件和目录的 umask。默认为挂载进程的 umask。
- session=n
选择要作为 HFS 文件系统挂载的 CDROM 会话。默认值是将此决定留给 CDROM 驱动程序。此选项对于 CDROM 以外的任何底层设备都将失败。
- part=n
从设备中选择分区号 n。 这仅对 CDROM 有意义,因为它们不能在 Linux 下进行分区。 对于磁盘设备,通用的分区解析代码会为我们完成此操作。 默认值是不解析分区表。
- quiet
忽略无效的挂载选项,而不是抱怨。
写入 HFS 文件系统¶
HFS 不是 UNIX 文件系统,因此它不具备你期望的常用功能
你无法修改 set-uid、set-gid、sticky 或可执行位,也无法修改文件的 uid 和 gid。
你无法创建硬链接或符号链接、设备文件、套接字或 FIFO。
HFS 另一方面具有每个文件的多个分支的概念。 这些非标准分支在普通文件系统命名空间中表示为隐藏的附加文件,这是一种不太理想的做法,使得语义有点奇怪。
你无法创建、删除或重命名文件的资源分支或 Finder 的元数据。
但是,它们会与相应的数据分支或目录一起创建(使用默认值)、删除和重命名。
将文件复制到不同的文件系统会丢失 MacOS 工作所必需的那些属性。
创建 HFS 文件系统¶
来自 Robert Leslie 的 hfsutils 软件包包含一个名为 hformat 的程序,该程序可用于创建 HFS 文件系统。 有关详细信息,请参见 <https://www.mars.org/home/rob/proj/hfs/>。
鸣谢¶
HFS 驱动程序由 Paul H. Hargrovea 编写 (hargrove@sccm.Stanford.EDU)。 Roman Zippel (roman@ardistech.com) 重写了代码的很大一部分,并引入了源自 Brad Boyer 的 hfsplus 驱动程序的 btree 例程。