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 例程。