# HFS Utilities

HFS is the ``Hierarchical File System,'' the native volume format used on modern Macintosh computers. hfsutils is the name of a comprehensive software package being developed to permit manipulation of HFS volumes from UNIX and other systems.

In addition to the original UNIX version, several ports enable use under DOS, Windows 95/NT, and OS/2.

## Contents

The package contains a variety of tools originally developed for use under UNIX systems:

- Several command-line programs (hformat, hmount, hls, hcopy, et al.)
  The command-line programs are intended to be used in the same vein as the mtools command-line programs used to access MS-DOS filesystems.

- An X-based front-end for browsing and copying files (xhfs)
  The graphical front-end provides point-and-click access to Macintosh volumes, which is often more convenient than the command line. Files can be copied using a variety of transfer modes (MacBinary, BinHex, text, etc.)

- A Tcl package and interface for scriptable access to volumes
  The Tcl interface offers a scriptable HFS ``shell'' that is more efficient than the external command-line programs and allows for greater extensibility.

- A C library for low-level access to volumes
  The C library can be linked with other programs to allow them to manipulate Macintosh files in their native format. For example, an implementation of the Macintosh Resource Manager could be built on top of this library to provide seamless access to data objects contained within the resource forks of Macintosh files. The C library is also ideal for implementing access to HFS volumes on other foreign systems.

Support is included for manipulation of volumes of virtually any size and on any medium (floppy disk, SCSI disk, CD-ROM, Zip drive, image file, etc.) Partitioned media are also supported.

Support for Apple's new Extended Format (HFS+) is currently planned, but not yet available.

The obsolete MFS volume format used by early Macintosh computers on 400K floppies is not supported. Furthermore, although Macintosh 800K floppies use the HFS volume format, many systems are physically incapable of reading the low-level format of these disks because of a hardware limitation. (Most PCs fall into this category and will not be able to read or write these disks.) An image of an 800K floppy will work fine, however, as should today's common 1440K high-density floppies.

Use of the Tcl and Tk interfaces is optional; you may build only the command-line tools if desired.

## Current Status

See the complete version history for current status information.

## Author and Copyright

Robert Leslie is the author of all code distributed in the hfsutils package and retains the copyright thereof. The software is licensed under the terms of the GNU General Public License, Version 2, and is therefore freely redistributable. Alternate licensing terms may be negotiated by contacting the author.

## Feedback

If you use this software, please share some feedback with the author and other users. Here are the comments people have left to date. This forum also serves as a list of Frequently Asked Questions, complete with answers.

You may wish to subscribe to the hfs-user mailing list. This list is for both general and technical discussion of HFS, as well as for announcements of new software releases.

## Availability

hfsutils has been in widespread use since 1996, with reports of successful ports to many different operating systems. You are encouraged to use the software and report bugs to the author, but there is absolutely no warranty.

The most recent version of the software is available for FTP.

If you don't have the Tcl or Tk libraries and want to build the hfsutils X interface or Tcl command-line tool, you will need to obtain and install the Tcl/Tk libraries first. Be sure you get the most recently patched versions of Tcl 7.6 and Tk 4.2; with other versions your mileage may vary.

## Related Work

The following may also be of interest:

- Lauri Pesonen's HFV/DSK Explorer, an HFS volume browser for Windows (based on hfsutils) with special support for Executor and vMac users.
- Marcus Better's port of hfsutils for DOS, Windows 95/NT, and OS/2.
- Marcus Better's native HFS/2 driver for OS/2.
- Paul Hargrove's kernel implementation of HFS for Linux.
- James Pearson's mkhfs utility for creating HFS CD-ROM images from a UNIX directory tree.
- James Pearson's mkhybrid for creating ISO9660/HFS shared hybrid CD-ROM images.
- Issue 93 of the Be Newsletter: HFS integration into BeOS using hfsutils.
- Peter A. Dinda (et al.)'s MacFS, another, previous implementation of HFS.
- Abacus Research and Development, Inc. (ARDI) is developing a commercial Macintosh emulator called Executor which can also read and write HFS-formatted media.
- Apple is moving towards a new volume format, Sequoia, also known as HFS+ or ``Extended Format''. This new format has been made available to Macintosh users as of MacOS 8.1. Support in hfsutils for the new format is planned, but not yet available.

| Copyright © 1996-2000 Robert Leslie |