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