Commit | Line | Data |
---|---|---|
5040a0ac | 1 | .. SPDX-License-Identifier: GPL-2.0 |
1da177e4 | 2 | |
5040a0ac | 3 | ================================== |
1da177e4 LT |
4 | Macintosh HFS Filesystem for Linux |
5 | ================================== | |
6 | ||
5040a0ac MCC |
7 | |
8 | .. Note:: This filesystem doesn't have a maintainer. | |
9 | ||
10 | ||
11 | HFS stands for ``Hierarchical File System`` and is the filesystem used | |
1da177e4 | 12 | by the Mac Plus and all later Macintosh models. Earlier Macintosh |
5040a0ac | 13 | models used MFS (``Macintosh File System``), which is not supported, |
1da177e4 LT |
14 | MacOS 8.1 and newer support a filesystem called HFS+ that's similar to |
15 | HFS but is extended in various areas. Use the hfsplus filesystem driver | |
16 | to access such filesystems from Linux. | |
17 | ||
18 | ||
19 | Mount options | |
20 | ============= | |
21 | ||
22 | When mounting an HFS filesystem, the following options are accepted: | |
23 | ||
24 | creator=cccc, type=cccc | |
25 | Specifies the creator/type values as shown by the MacOS finder | |
26 | used for creating new files. Default values: '????'. | |
27 | ||
28 | uid=n, gid=n | |
29 | Specifies the user/group that owns all files on the filesystems. | |
30 | Default: user/group id of the mounting process. | |
31 | ||
32 | dir_umask=n, file_umask=n, umask=n | |
33 | Specifies the umask used for all files , all directories or all | |
34 | files and directories. Defaults to the umask of the mounting process. | |
35 | ||
36 | session=n | |
37 | Select the CDROM session to mount as HFS filesystem. Defaults to | |
38 | leaving that decision to the CDROM driver. This option will fail | |
39 | with anything but a CDROM as underlying devices. | |
40 | ||
41 | part=n | |
42 | Select partition number n from the devices. Does only makes | |
43 | sense for CDROMS because they can't be partitioned under Linux. | |
44 | For disk devices the generic partition parsing code does this | |
45 | for us. Defaults to not parsing the partition table at all. | |
46 | ||
47 | quiet | |
48 | Ignore invalid mount options instead of complaining. | |
49 | ||
50 | ||
51 | Writing to HFS Filesystems | |
52 | ========================== | |
53 | ||
54 | HFS is not a UNIX filesystem, thus it does not have the usual features you'd | |
55 | expect: | |
56 | ||
5040a0ac | 57 | * You can't modify the set-uid, set-gid, sticky or executable bits or the uid |
1da177e4 | 58 | and gid of files. |
5040a0ac | 59 | * You can't create hard- or symlinks, device files, sockets or FIFOs. |
1da177e4 LT |
60 | |
61 | HFS does on the other have the concepts of multiple forks per file. These | |
62 | non-standard forks are represented as hidden additional files in the normal | |
63 | filesystems namespace which is kind of a cludge and makes the semantics for | |
64 | the a little strange: | |
65 | ||
5040a0ac | 66 | * You can't create, delete or rename resource forks of files or the |
1da177e4 | 67 | Finder's metadata. |
5040a0ac | 68 | * They are however created (with default values), deleted and renamed |
1da177e4 | 69 | along with the corresponding data fork or directory. |
5040a0ac | 70 | * Copying files to a different filesystem will loose those attributes |
1da177e4 LT |
71 | that are essential for MacOS to work. |
72 | ||
73 | ||
74 | Creating HFS filesystems | |
5040a0ac | 75 | ======================== |
1da177e4 LT |
76 | |
77 | The hfsutils package from Robert Leslie contains a program called | |
78 | hformat that can be used to create HFS filesystem. See | |
c69f22f2 | 79 | <https://www.mars.org/home/rob/proj/hfs/> for details. |
1da177e4 LT |
80 | |
81 | ||
82 | Credits | |
83 | ======= | |
84 | ||
ab05210b MPS |
85 | The HFS drivers was written by Paul H. Hargrovea (hargrove@sccm.Stanford.EDU). |
86 | Roman Zippel (roman@ardistech.com) rewrote large parts of the code and brought | |
87 | in btree routines derived from Brad Boyer's hfsplus driver. |