HFS Plus or HFS+ was developed by Apple Inc. and serves as the primary file system of OS X. HFS+ was introduced with the January 19, 1998 release of Mac OS 8.1. HFS+ was developed as a replacement for the Hierarchical File System (HFS) as the primary file system used in Macintosh computers (or other systems running Mac OS.)
Features of HFS+ Data Volumes
HFS Plus can address 232 allocation blocks, allowing a volume size of 8EB and also a file size of 8EB. HFS+ uses forks, analogous to Additional Data Streams (ADS) used in NTFS volumes, although until 2006 only the resource and data forks were used.
As of Mac OS X v10.3, all HFS Plus volumes have journaling set by default, allowing the file system to be recovered from a crash or power failure, when the operating system is booted. With Mac OS X Snow Leopard 10.6, HFS+ compression was added, also referred to as AppleFSCompression. Compressed data can be stored in either an extended attribute or the resource fork.
Internal HFS+ Data Structures
The HFS Plus Volume Header is located in the sector 2 of the file system, with an alternate copy located in the second to last sector, as a backup. The Volume Header contains all the information about the file system, including the locations of all the system areas and useful meta-data.
The system areas contain the Allocation File, Catalog File, Extents Overflows and Attributes File. Apart from the Allocation File, these are all stored as a B-Tree, which keeps the information sorted, allowing fast searching, sequential access, insertions and deletions. The data blocks follow the initial Catalog File allocation, which may contain extents for each of the system files.
Recoverability of an HFS Plus Volume
The loss of, or corruption to only a few particular sectors, or a reformat can render the data on the volume almost completely unrecoverable, leaving on a data trawl as a viable option to recover any usable data. The loss of the header for the Catalog File is a situation most data recovery solutions are unable to handle. The DiskEng software is however able to deal with this problem, any data loss only caused by any further damage to the file system.