Disable HFS+ journaling from within Mac OS 9

Jan 21, '05 10:01:00AM

Contributed by: cashew

My Mac OS X (10.3.7) system recently went a bit strange, the culprit seemed to be an errant DirectoryService daemon that was taking up all the CPU time and I was unable to kill off. I eventually had to reboot my system to rid myself of it. The sytem went down cleanly and rebooted, but kernel panicked whilst rebooting before it got to the window with the progress bar in it. Using verbose boot mode, I saw messages stating the the 'journal checksum' didn't match was it was supposed to be, which effectively made Mac OS X refuse to mount the volume. That being the boot volume and all, it stopped my machine booting and caused a kernal panic a few lines further on.

I rebooted from my system CD, it refused to mount the boot partition but I ran a disk repair on it and it fixed a couple of problems. Still no luck on the reboot though. I couldn't disable journaling as that requires you to first mount the disk - a problem if the disk won't mount due to bad journaling information! I connected the machine to another OS X system using Firewire target disk mode. Even with the force of the OS X terminal, I could find no way to mount the disk (it would always report 'Volume mounted OK,' and then not mount it), and no way to turn off journaling without mounting the disk.

My system had OS 9 installed on another partition. So I booted into OS 9, and it mounted the dodgey OS X parition with no problems, and gave me full access to it. I assume this is because OS 9 simply ignores the journal. Norton Disk Doctor reported no errors on the disk. I backed up all my files using OS 9, then shared the volume across the network, and mounted it on another OS X machine. I then used the Terminal to rm the .journal and .journal_info_block hidden files on the dodgey OS X volume. These files contain the disk journal information.

I rebooted into OS X in verbose mode. It reported that it couldn't find the .journal_info_block file and was going to disable journaling. It then proceeded to boot fine. The system now appears to be functioning normally. That is basically how I recovered a disk with a bad journal that refused to mount in OS X. Hope this helps someone!

[robg adds: This will clearly only work for machines capable of booting OS 9. If anyone can suggest a non-OS 9 solution, please do so in the comments...]

Comments (11)


Mac OS X Hints
http://hints.macworld.com/article.php?story=20050118184930298