« Avi ♥ Tekserve | Main | Aw, Snap! »

The truth about HFS+ Journaling

There's a guy named Scott Moulton who runs a drive recovery and forensics business. He gives talks about hard drive recovery and posts them on YouTube. They're fascinating and definitely worth watching. But in his latest one (10 Things About Hard Drives 4/6) he confuses two events in the history of HFS+, and in the process makes HFS+ look very bad. HFS+ may have issues, but Scott is just plain wrong here.

[Edit: After posting this I found that Scott annotated the video with a correction. What an honorable guy. Thanks, Scott! The post remains because I love hearing myself speak.]

His argument is that ext3 is just ext2 with journaling, so you can use ext2 tools on it. In contrast, he says, when Apple added journaling to HFS+, they did it a way that caused old tools (and computers) to see an empty disk with a file “Where_have_all_my_files_gone?”

That confuses the adding of journaling to HFS+ (2002) with the introduction of HFS+ (1998). The analogy is easily corrected.

When a journal was added to ext2 in 2001, yielding ext3, it was done in such a way that tools used to manipulate ext2 volumes, as well as computers that could handle the ext2 format, could use ext3-formatted drives.

If I substitute in “HFS+”, that sentence remains 100% accurate:

When a journal was added to HFS+ in 2002, yielding Journaled HFS+, it was done in such a way that tools used to manipulate HFS+ volumes, as well as computers that could handle the HFS+ format, could use Journaled HFS+-formatted drives.

“Where_have_all_my_files_gone?” is something entirely different.

In 1998, Apple introduced HFS+, which, while similar in structure to HFS, is actually a different format. Therefore, if you were to plug in into an older Mac, the older Mac wouldn't be able to make much sense of it. Therefore, Apple decided to wrap HFS+ volumes with an HFS wrapper, to make sure that older computers could at least show the user something.

It's like taking an NTFS drive and hooking it up to a Win95 machine. You don't expect it to show the contents, right? Similarly, if you were to take an HFS+ drive and hook it up to a System 7 Mac, you wouldn't expect it to show the contents, right? At least it explains to the user why it doesn't work.

But Scott makes it sound like turning on the journaling of HFS+ all of a sudden makes it unreadable by non-journaling machines. That's absolutely incorrect.

On a side note, he rails against HFS+ for putting Finder metadata into the catalog but is confused why Vista doesn't keep the last-accessed timestamp up to date any more. Scott, you can't take both sides of the issue. Yes, it's silly to keep hammering the catalog to keep metadata up to date that doesn't need to be journaled (backward compatibility is a bitch). That's why Vista stopped. Metadata writes have a real cost. Microsoft stopped updating the timestamps for exactly the reason with which you clobber Apple (and properly so).

TrackBack

TrackBack URL for this entry:
http://www.drissman.com/cgi-sys/cgiwrap/drissman/mt/mt-tb.cgi/876

Post a comment