Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0
0002 
0003 ==================================
0004 Macintosh HFS Filesystem for Linux
0005 ==================================
0006 
0007 
0008 .. Note:: This filesystem doesn't have a maintainer.
0009 
0010 
0011 HFS stands for ``Hierarchical File System`` and is the filesystem used
0012 by the Mac Plus and all later Macintosh models.  Earlier Macintosh
0013 models used MFS (``Macintosh File System``), which is not supported,
0014 MacOS 8.1 and newer support a filesystem called HFS+ that's similar to
0015 HFS but is extended in various areas.  Use the hfsplus filesystem driver
0016 to access such filesystems from Linux.
0017 
0018 
0019 Mount options
0020 =============
0021 
0022 When mounting an HFS filesystem, the following options are accepted:
0023 
0024   creator=cccc, type=cccc
0025         Specifies the creator/type values as shown by the MacOS finder
0026         used for creating new files.  Default values: '????'.
0027 
0028   uid=n, gid=n
0029         Specifies the user/group that owns all files on the filesystems.
0030         Default:  user/group id of the mounting process.
0031 
0032   dir_umask=n, file_umask=n, umask=n
0033         Specifies the umask used for all files , all directories or all
0034         files and directories.  Defaults to the umask of the mounting process.
0035 
0036   session=n
0037         Select the CDROM session to mount as HFS filesystem.  Defaults to
0038         leaving that decision to the CDROM driver.  This option will fail
0039         with anything but a CDROM as underlying devices.
0040 
0041   part=n
0042         Select partition number n from the devices.  Does only makes
0043         sense for CDROMS because they can't be partitioned under Linux.
0044         For disk devices the generic partition parsing code does this
0045         for us.  Defaults to not parsing the partition table at all.
0046 
0047   quiet
0048         Ignore invalid mount options instead of complaining.
0049 
0050 
0051 Writing to HFS Filesystems
0052 ==========================
0053 
0054 HFS is not a UNIX filesystem, thus it does not have the usual features you'd
0055 expect:
0056 
0057  * You can't modify the set-uid, set-gid, sticky or executable bits or the uid
0058    and gid of files.
0059  * You can't create hard- or symlinks, device files, sockets or FIFOs.
0060 
0061 HFS does on the other have the concepts of multiple forks per file.  These
0062 non-standard forks are represented as hidden additional files in the normal
0063 filesystems namespace which is kind of a cludge and makes the semantics for
0064 the a little strange:
0065 
0066  * You can't create, delete or rename resource forks of files or the
0067    Finder's metadata.
0068  * They are however created (with default values), deleted and renamed
0069    along with the corresponding data fork or directory.
0070  * Copying files to a different filesystem will loose those attributes
0071    that are essential for MacOS to work.
0072 
0073 
0074 Creating HFS filesystems
0075 ========================
0076 
0077 The hfsutils package from Robert Leslie contains a program called
0078 hformat that can be used to create HFS filesystem. See
0079 <https://www.mars.org/home/rob/proj/hfs/> for details.
0080 
0081 
0082 Credits
0083 =======
0084 
0085 The HFS drivers was written by Paul H. Hargrovea (hargrove@sccm.Stanford.EDU).
0086 Roman Zippel (roman@ardistech.com) rewrote large parts of the code and brought
0087 in btree routines derived from Brad Boyer's hfsplus driver.