Frequently Asked Questions about the HFS filesystem for Linux Paul H. Hargrove, hargrove@sccm.Stanford.EDU version 1.0.3, 27 Apr 1997 This document provides answers to some of the most frequently asked questions about the HFS filesystem for Linux. It is currently pretty rough and totally unorganized. Corrections, additions and clarifica- tions are appreciated. The most current version of this document is kept on The HFS for Linux Page . ______________________________________________________________________ Table of Contents: 1. What is this FAQ about? 2. What is HFS? 3. How I mount AppleShare volumes? 4. What is the current version of the HFS filesystem. 5. How stable is the current version? 6. Is there a mailing list for discussion of the HFS filesystem? 7. What version of Linux do I need to be running? 8. Will it run on my (your processor type here)? 9. Will it run under (your non-Linux operating system here)? 10. Why can I mount some HFS CDROMs but not others? 11. What does ``only 1024-char blocks implemented (512)'' mean? 12. Why do I get a message about a bad or unknown partition table? 13. Can I mount multiple HFS partitions from the same Macintosh disk? 14. In what ways can I write to HFS filesystems? 15. Does the HFS filesystem work with 400k or 800k Macintosh diskettes? 16. How can I format an HFS filesystem? 17. How can I fsck an HFS filesystem? 18. Why do I get ``error -50'' messages from my Mac when using netatalk? 19. Why does my Macintosh show generic application and document icons? 20. How owns all the copyrights and trademarks? ;-) 20.1. This Document 20.2. The Software 20.3. Trademarks ______________________________________________________________________ 11.. WWhhaatt iiss tthhiiss FFAAQQ aabboouutt?? This FAQ is about the HFS filesystem for Linux, which is available in two forms. The stand-alone version (called hfs_fs) is a Linux kernel loadable module implementing the Macintosh HFS filesystem. The HFS filesystem is also included in some distributions of the Linux kernel source (in the directory linux/fs/hfs). This version can be compiled as a loadable module or compiled into the kernel. Either version allows a machine running Linux to read and write disks from a Macintosh (almost) as though they were native Linux disks. 22.. WWhhaatt iiss HHFFSS?? 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. 33.. HHooww II mmoouunntt AApppplleeSShhaarree vvoolluummeess?? The HFS filesystem is for mounting local filesystems only. There is an experimental afpfs by Ben Hekster heksterb@acm.org available from http://www.odyssey.co.il/~heksterb/Software/afpfs/. 44.. WWhhaatt iiss tthhee ccuurrrreenntt vveerrssiioonn ooff tthhee HHFFSS ffiilleessyysstteemm.. As of version 1.0.3 of this FAQ, version 0.95 is the most recent. You can always find the most recent version on The HFS for Linux Page . Announcements of new versions are made to the comp.os.linux.announce newsgroup. 55.. HHooww ssttaabbllee iiss tthhee ccuurrrreenntt vveerrssiioonn?? Version 0.95 is considered to be ``beta'' software, so I recommend making backups of anything important before you start playing. It is relatively free of bugs due to lots of testing of the previous releases. After a suitable period without new bugs the I will consider the software to be ``stable'' and the version number will jump to 1.0. 66.. IIss tthheerree aa mmaaiilliinngg lliisstt ffoorr ddiissccuussssiioonn ooff tthhee HHFFSS ffiilleessyysstteemm?? There is no mailing list devoted exclusively to the HFS filesystem. However, announcements of new versions are posted to the ``linux- atalk'' and ``hfs-interest'' lists. I will see bug reports sent to those lists but e-mail is more reliable (hargrove@sccm.Stanford.EDU). To subscribe to hfs-interest send e-mail with a body of ``subscribe hfs-interest (your e-mail address)'' to majordomo@ccs.neu.edu. To subscribe to linux-atalk send e-mail with a body of ``SUBSCRIBE LINUX-ATALK (Your full name)'' to listserv@netspace.org. 77.. WWhhaatt vveerrssiioonn ooff LLiinnuuxx ddoo II nneeeedd ttoo bbee rruunnnniinngg?? To compile and use the stand-alone distribution of the HFS filesystem you will need Linux kernel version 2.0.1 or newer compiled with modules enabled (CONFIG_MODULES). To compile you will need the kernel headers which match the kernel you are running. This is covered in more detail in the installation instructions in INSTALL.txt. If your kernel came with HFS in the kernel source tree then HFS should work with your Linux version. There may be small problems with a few of the development kernel releases. For these releases check the HFS for Linux Page for patches. 88.. WWiillll iitt rruunn oonn mmyy ((yyoouurr pprroocceessssoorr ttyyppee hheerree))?? The code is carefully written to be independent of your processor's word size and byte-order, so if your machine runs Linux it can run the HFS filesystem. However some younger ports don't yet have support for loadable modules. Note that HFS is tested most extensively on Intel platforms. So there could be subtle compilation problems on other platforms. If you encounter any that are not addressed by the documentation then please let me know. 99.. WWiillll iitt rruunn uunnddeerr ((yyoouurr nnoonn--LLiinnuuxx ooppeerraattiinngg ssyysstteemm hheerree))?? No. There is a port in progress to NetBSD. I know of no other active porting attempts. If you are interested in porting the HFS filesystem to another Unix-like operating system, I am interested in providing what guidance I can. 1100.. WWhhyy ccaann II mmoouunntt ssoommee HHFFSS CCDDRROOMMss bbuutt nnoott ootthheerrss?? In the past there was a known incompatibility with some ``hybrid'' CDROMs that appear as HFS disks on Macs and as ISO9660 disks on other systems. I think I have fixed the problem. So, if you encounter this particular problem or have problems with specific non-hybrid CDROMs please e-mail me with the title and manufacturer of the CD. 1111.. WWhhaatt ddooeess ````oonnllyy 11002244--cchhaarr bblloocckkss iimmpplleemmeenntteedd ((551122))'''' mmeeaann?? This message comes from the kernel and indicates that an attempt was made to read a 512-byte block from a device that doesn't support 512-byte blocks. The HFS filesystem only works with 512-byte blocks, and therefore doesn't function with these devices. Eventually it may be able to use 1024-byte (or even 2048-byte) blocks when necessary. Ideally the device driver should be enhanced to support 512-byte blocks so that the various filesystems which need 512-byte blocks don't each need to work around it. 1122.. WWhhyy ddoo II ggeett aa mmeessssaaggee aabboouutt aa bbaadd oorr uunnkknnoowwnn ppaarrttiittiioonn ttaabbllee?? If your Linux kernel doesn't understand Macintosh partition tables it gives this warning when it can't find a partition table it recognizes. To support partitioned media with such kernels, decoding of Mac partition tables is done by the HFS filesystem so you should still be able to mount the disk. However, to do so you will need to mount the raw device (such as /dev/sdb instead of /dev/sdb4) and use the part mount option to indicate which partition you want. 1133.. CCaann II mmoouunntt mmuullttiippllee HHFFSS ppaarrttiittiioonnss ffrroomm tthhee ssaammee MMaacciinnttoosshh ddiisskk?? Only if your kernel understands Macintosh partition tables. It the kernel doesn't understand the Macintosh partition table, the HFS filesystem must access the raw device. Therefore, the kernel thinks the entire drive is in use and prevents additional mounts on it. 1144.. IInn wwhhaatt wwaayyss ccaann II wwrriittee ttoo HHFFSS ffiilleessyysstteemmss?? The HFS filesystem is as capable as the MS-DOS or VFAT filesystems, except that certain things can only be done with a file's data fork. You ccaann: +o Create, delete and rename directories and data forks of files with the caveat that names are case insensitive (so foo and Foo are the same file or directory). +o Run Linux executables or shared libraries on an HFS disk if they are stored in the data fork of a file. +o Read, write and truncate both forks of files and the Finder's metadata of files and directories. +o Mmap data forks of files (and the resource fork if the filesystem is mounted with the fork=cap option). +o Toggle the 'w' permission bits (as a group) of data forks. +o Change the i_mtime of files and directories. You ccaannnnoott: +o Create, delete or rename resource forks of files or the Finder's metadata. Note, however, that they are created (with defaults values), deleted and renamed along with the corresponding data fork or directory. +o Run Linux executables or shared libraries on an HFS disk if they are stored in the resource fork of a file. +o Mmap the Finder's metadata (when fork=cap) or AppleDouble header files (when fork=double or fork=netatalk). +o Change permissions on directories. +o Change the uid or gid of files or directories. +o Set the set-uid, set-gid or sticky permission bits. +o Create multiple links to files. +o Create symlinks, device files, sockets or FIFOs. 1155.. DDooeess tthhee HHFFSS ffiilleessyysstteemm wwoorrkk wwiitthh 440000kk oorr 880000kk MMaacciinnttoosshh ddiisskkeetttteess?? Yes and no. The software is fully capable of dealing with HFS disks of any size. However, the 400k and 800k diskettes are written in a physical format that is incompatible with most non-Macintosh floppy drives. Note also that almost all 400k Macintosh diskettes are MFS, not HFS. 1166.. HHooww ccaann II ffoorrmmaatt aann HHFFSS ffiilleessyysstteemm?? Robert Leslie (rob@mars.org) has written a package for working with HFS filesystems (like mtools plus a graphical interface). One program in the package is hformat which can format HFS filesystems. The latest version can be found on the HFS Utilities home page . 1177.. HHooww ccaann II ffsscckk aann HHFFSS ffiilleessyysstteemm?? Right now you'll have to use a Macintosh to do this. However, Rob Leslie is working on an fsck for HFS filesystems. 1188.. WWhhyy ddoo II ggeett ````eerrrroorr --5500'''' mmeessssaaggeess ffrroomm mmyy MMaacc wwhheenn uussiinngg nneettaattaallkk?? To be compatible with netatalk's afpd you will need to use netatalk version 1.4b1 or newer and mount the HFS filesystem with the ``afpd'' mount option. More information is provided in the ``afpd'' subsection of the ``Mount Options'' section of the HFS documentation (HFS.txt if you have the stand-alone HFS distribution or linux/Documentation/filesystems/hfs.txt if HFS is in your kernel source tree.) 1199.. WWhhyy ddooeess mmyy MMaacciinnttoosshh sshhooww ggeenneerriicc aapppplliiccaattiioonn aanndd ddooccuummeenntt iiccoonnss?? When using the ``afpd'' mount option the Desktop database on the disk is not made available to Netatalk's afpd. Because of this mounting an HFS filesystem across the network to a Macintosh may result in the Finder showing generic application and document icons. Additionally double clicking on a document will fail to start the correct application. If the disk is writable you can make Netatalk build a new Desktop database in its own format by holding down the Option key while selecting the volume in the Chooser. If the disk is not writable then these problems can be worked around by copying the application to a local disk on the Macintosh. 2200.. HHooww oowwnnss aallll tthhee ccooppyyrriigghhttss aanndd ttrraaddeemmaarrkkss?? ;;--)) 2200..11.. TThhiiss DDooccuummeenntt This document is Copyright (c) 1996, 1997 by Paul H. Hargrove. Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copies above, provided a notice clearly stating that the document is a modified version is also included in the modified document. Permission is granted to copy and distribute translations of this document into another language, under the conditions specified above for modified versions. Permission is granted to convert this document into another media under the conditions specified above for modified versions provided the requirement to acknowledge the source document is fulfilled by inclusion of an obvious reference to the source document in the new media. Where there is any doubt as to what defines ``obvious'' the copyright owner reserves the right to decide. 2200..22.. TThhee SSooffttwwaarree The HFS filesystem software is Copyright (c) 1994-1997 by Paul H. Hargrove. The software is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. The software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with the software in the file ``COPYING''; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 2200..33.. TTrraaddeemmaarrkkss +o ``Finder'' is a trademark of Apple Computer, Inc. +o ``Apple'', ``AppleShare'', and ``Macintosh'' are registered trademarks of Apple Computer, Inc. +o ``MS-DOS'' is a registered trademarks of Microsoft Corporation. +o All other trademarks are the property of their respective owners.