15040a0acSMauro Carvalho Chehab.. SPDX-License-Identifier: GPL-2.0
25040a0acSMauro Carvalho Chehab
35040a0acSMauro Carvalho Chehab==================================
45040a0acSMauro Carvalho ChehabMacintosh HFS Filesystem for Linux
55040a0acSMauro Carvalho Chehab==================================
65040a0acSMauro Carvalho Chehab
75040a0acSMauro Carvalho Chehab
85040a0acSMauro Carvalho Chehab.. Note:: This filesystem doesn't have a maintainer.
95040a0acSMauro Carvalho Chehab
105040a0acSMauro Carvalho Chehab
115040a0acSMauro Carvalho ChehabHFS stands for ``Hierarchical File System`` and is the filesystem used
125040a0acSMauro Carvalho Chehabby the Mac Plus and all later Macintosh models.  Earlier Macintosh
135040a0acSMauro Carvalho Chehabmodels used MFS (``Macintosh File System``), which is not supported,
145040a0acSMauro Carvalho ChehabMacOS 8.1 and newer support a filesystem called HFS+ that's similar to
155040a0acSMauro Carvalho ChehabHFS but is extended in various areas.  Use the hfsplus filesystem driver
165040a0acSMauro Carvalho Chehabto access such filesystems from Linux.
175040a0acSMauro Carvalho Chehab
185040a0acSMauro Carvalho Chehab
195040a0acSMauro Carvalho ChehabMount options
205040a0acSMauro Carvalho Chehab=============
215040a0acSMauro Carvalho Chehab
225040a0acSMauro Carvalho ChehabWhen mounting an HFS filesystem, the following options are accepted:
235040a0acSMauro Carvalho Chehab
245040a0acSMauro Carvalho Chehab  creator=cccc, type=cccc
255040a0acSMauro Carvalho Chehab	Specifies the creator/type values as shown by the MacOS finder
265040a0acSMauro Carvalho Chehab	used for creating new files.  Default values: '????'.
275040a0acSMauro Carvalho Chehab
285040a0acSMauro Carvalho Chehab  uid=n, gid=n
295040a0acSMauro Carvalho Chehab  	Specifies the user/group that owns all files on the filesystems.
305040a0acSMauro Carvalho Chehab	Default:  user/group id of the mounting process.
315040a0acSMauro Carvalho Chehab
325040a0acSMauro Carvalho Chehab  dir_umask=n, file_umask=n, umask=n
335040a0acSMauro Carvalho Chehab	Specifies the umask used for all files , all directories or all
345040a0acSMauro Carvalho Chehab	files and directories.  Defaults to the umask of the mounting process.
355040a0acSMauro Carvalho Chehab
365040a0acSMauro Carvalho Chehab  session=n
375040a0acSMauro Carvalho Chehab  	Select the CDROM session to mount as HFS filesystem.  Defaults to
385040a0acSMauro Carvalho Chehab	leaving that decision to the CDROM driver.  This option will fail
395040a0acSMauro Carvalho Chehab	with anything but a CDROM as underlying devices.
405040a0acSMauro Carvalho Chehab
415040a0acSMauro Carvalho Chehab  part=n
425040a0acSMauro Carvalho Chehab  	Select partition number n from the devices.  Does only makes
435040a0acSMauro Carvalho Chehab	sense for CDROMS because they can't be partitioned under Linux.
445040a0acSMauro Carvalho Chehab	For disk devices the generic partition parsing code does this
455040a0acSMauro Carvalho Chehab	for us.  Defaults to not parsing the partition table at all.
465040a0acSMauro Carvalho Chehab
475040a0acSMauro Carvalho Chehab  quiet
485040a0acSMauro Carvalho Chehab  	Ignore invalid mount options instead of complaining.
495040a0acSMauro Carvalho Chehab
505040a0acSMauro Carvalho Chehab
515040a0acSMauro Carvalho ChehabWriting to HFS Filesystems
525040a0acSMauro Carvalho Chehab==========================
535040a0acSMauro Carvalho Chehab
545040a0acSMauro Carvalho ChehabHFS is not a UNIX filesystem, thus it does not have the usual features you'd
555040a0acSMauro Carvalho Chehabexpect:
565040a0acSMauro Carvalho Chehab
575040a0acSMauro Carvalho Chehab * You can't modify the set-uid, set-gid, sticky or executable bits or the uid
585040a0acSMauro Carvalho Chehab   and gid of files.
595040a0acSMauro Carvalho Chehab * You can't create hard- or symlinks, device files, sockets or FIFOs.
605040a0acSMauro Carvalho Chehab
615040a0acSMauro Carvalho ChehabHFS does on the other have the concepts of multiple forks per file.  These
625040a0acSMauro Carvalho Chehabnon-standard forks are represented as hidden additional files in the normal
635040a0acSMauro Carvalho Chehabfilesystems namespace which is kind of a cludge and makes the semantics for
645040a0acSMauro Carvalho Chehabthe a little strange:
655040a0acSMauro Carvalho Chehab
665040a0acSMauro Carvalho Chehab * You can't create, delete or rename resource forks of files or the
675040a0acSMauro Carvalho Chehab   Finder's metadata.
685040a0acSMauro Carvalho Chehab * They are however created (with default values), deleted and renamed
695040a0acSMauro Carvalho Chehab   along with the corresponding data fork or directory.
705040a0acSMauro Carvalho Chehab * Copying files to a different filesystem will loose those attributes
715040a0acSMauro Carvalho Chehab   that are essential for MacOS to work.
725040a0acSMauro Carvalho Chehab
735040a0acSMauro Carvalho Chehab
745040a0acSMauro Carvalho ChehabCreating HFS filesystems
755040a0acSMauro Carvalho Chehab========================
765040a0acSMauro Carvalho Chehab
775040a0acSMauro Carvalho ChehabThe hfsutils package from Robert Leslie contains a program called
785040a0acSMauro Carvalho Chehabhformat that can be used to create HFS filesystem. See
79c69f22f2SAlexander A. Klimov<https://www.mars.org/home/rob/proj/hfs/> for details.
805040a0acSMauro Carvalho Chehab
815040a0acSMauro Carvalho Chehab
825040a0acSMauro Carvalho ChehabCredits
835040a0acSMauro Carvalho Chehab=======
845040a0acSMauro Carvalho Chehab
855040a0acSMauro Carvalho ChehabThe HFS drivers was written by Paul H. Hargrovea (hargrove@sccm.Stanford.EDU).
865040a0acSMauro Carvalho ChehabRoman Zippel (roman@ardistech.com) rewrote large parts of the code and brought
875040a0acSMauro Carvalho Chehabin btree routines derived from Brad Boyer's hfsplus driver.
88