84 lines
		
	
	
	
		
			2.9 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			84 lines
		
	
	
	
		
			2.9 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Macintosh HFS Filesystem for Linux
							 | 
						||
| 
								 | 
							
								==================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HFS stands for ``Hierarchical File System'' and is the filesystem used
							 | 
						||
| 
								 | 
							
								by the Mac Plus and all later Macintosh models.  Earlier Macintosh
							 | 
						||
| 
								 | 
							
								models used MFS (``Macintosh File System''), which is not supported,
							 | 
						||
| 
								 | 
							
								MacOS 8.1 and newer support a filesystem called HFS+ that's similar to
							 | 
						||
| 
								 | 
							
								HFS but is extended in various areas.  Use the hfsplus filesystem driver
							 | 
						||
| 
								 | 
							
								to access such filesystems from Linux.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Mount options
							 | 
						||
| 
								 | 
							
								=============
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								When mounting an HFS filesystem, the following options are accepted:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  creator=cccc, type=cccc
							 | 
						||
| 
								 | 
							
									Specifies the creator/type values as shown by the MacOS finder
							 | 
						||
| 
								 | 
							
									used for creating new files.  Default values: '????'.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  uid=n, gid=n
							 | 
						||
| 
								 | 
							
								  	Specifies the user/group that owns all files on the filesystems.
							 | 
						||
| 
								 | 
							
									Default:  user/group id of the mounting process.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  dir_umask=n, file_umask=n, umask=n
							 | 
						||
| 
								 | 
							
									Specifies the umask used for all files , all directories or all
							 | 
						||
| 
								 | 
							
									files and directories.  Defaults to the umask of the mounting process.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  session=n
							 | 
						||
| 
								 | 
							
								  	Select the CDROM session to mount as HFS filesystem.  Defaults to
							 | 
						||
| 
								 | 
							
									leaving that decision to the CDROM driver.  This option will fail
							 | 
						||
| 
								 | 
							
									with anything but a CDROM as underlying devices.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  part=n
							 | 
						||
| 
								 | 
							
								  	Select partition number n from the devices.  Does only makes
							 | 
						||
| 
								 | 
							
									sense for CDROMS because they can't be partitioned under Linux.
							 | 
						||
| 
								 | 
							
									For disk devices the generic partition parsing code does this
							 | 
						||
| 
								 | 
							
									for us.  Defaults to not parsing the partition table at all.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  quiet
							 | 
						||
| 
								 | 
							
								  	Ignore invalid mount options instead of complaining.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Writing to HFS Filesystems
							 | 
						||
| 
								 | 
							
								==========================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HFS is not a UNIX filesystem, thus it does not have the usual features you'd
							 | 
						||
| 
								 | 
							
								expect:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 o You can't modify the set-uid, set-gid, sticky or executable bits or the uid
							 | 
						||
| 
								 | 
							
								   and gid of files.
							 | 
						||
| 
								 | 
							
								 o You can't create hard- or symlinks, device files, sockets or FIFOs.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HFS does on the other have the concepts of multiple forks per file.  These
							 | 
						||
| 
								 | 
							
								non-standard forks are represented as hidden additional files in the normal
							 | 
						||
| 
								 | 
							
								filesystems namespace which is kind of a cludge and makes the semantics for
							 | 
						||
| 
								 | 
							
								the a little strange:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 o You can't create, delete or rename resource forks of files or the
							 | 
						||
| 
								 | 
							
								   Finder's metadata.
							 | 
						||
| 
								 | 
							
								 o They are however created (with default values), deleted and renamed
							 | 
						||
| 
								 | 
							
								   along with the corresponding data fork or directory.
							 | 
						||
| 
								 | 
							
								 o Copying files to a different filesystem will loose those attributes
							 | 
						||
| 
								 | 
							
								   that are essential for MacOS to work.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Creating HFS filesystems
							 | 
						||
| 
								 | 
							
								===================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The hfsutils package from Robert Leslie contains a program called
							 | 
						||
| 
								 | 
							
								hformat that can be used to create HFS filesystem. See
							 | 
						||
| 
								 | 
							
								<http://www.mars.org/home/rob/proj/hfs/> for details.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Credits
							 | 
						||
| 
								 | 
							
								=======
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The HFS drivers was written by Paul H. Hargrovea (hargrove@sccm.Stanford.EDU)
							 | 
						||
| 
								 | 
							
								and is now maintained by Roman Zippel (roman@ardistech.com) at Ardis
							 | 
						||
| 
								 | 
							
								Technologies.
							 | 
						||
| 
								 | 
							
								Roman rewrote large parts of the code and brought in btree routines derived
							 | 
						||
| 
								 | 
							
								from Brad Boyer's hfsplus driver (also maintained by Roman now).
							 |