2

My main HDD is failing to boot. (Neither Normal, Safe mode nor Single User). I can only boot from Recovery Mode or DVD.

The scenario was the following:

  • Computer was asleep (lid down).
  • Lifted the lid then connected USB mouse.
  • Mouse nor trackpad nor keyboard responded.
  • Closed the lid, removed the USB mouse then opened the lid again.
  • Trackpad and keyboard responsive once again, but after trying to close some programs computer freezes.
  • Shutdown computer by pressing power button for 10 seconds.
  • At restart computer doesn't boot anymore.

When booting in verbose I noticed the following:

...
...
USBMSC Identifier (non-unique): 000000009833 0x5ac 0x8403 0x9833
disk0s2: I/O error.
0 [Level 3] [ReadUID 0] [Facility com.apple.system.fs] [ErrType IO] [ErrNo 5] [IOType Write] [PBlkNum 2] [FSLogMsgID 61471212] [FSLogMsgOrder First]
0 [Level 3] [ReadUID 0] [Facility com.apple.system.fs] [FSLogMsgID 61471212] [FSLogMsgOrder Last]
jnl: unknown-dev: update_fs_block: failed to update block 2 (ret 5)
jnl: unknown-dev: journal_open: Error replaying the journal!
hfs: early jnl init: failed to open/create the journal (retval 0)
Kernel is LP64
com.apple.launchd                       1          com.apple.launchd
com.apple.launchd                       1          com.apple.launchd
***
com.apple.launchd                       1          com.apple.launchd
** /dev/rdisk0s2 (NO WRITE)
** Root file system
   Executing fsck_hfs (version diskdev_cmds-557-393)
jnl: disk0s2: replay_journal: from 13043200 to: 3971072 (joffset 0x15502000)
disk0s2: I/O error.
0 [Level 3] [ReadUID 0] [Facility com.apple.system.fs] [ErrType IO] [ErrNo 5] [IOType Write] [PBlkNum 2] [LBlkNum 2] [FSLogMsgID 1396728806] [FSLogMsgOrder First]
0 [Level 3] [ReadUID 0] [Facility com.apple.system.fs] [DevMode devfs] [MountPth /dev] [Path /dev/disk0s2] [FSLogMsgID 1396728806] [FSLogMsgOrder Last]
jnl: disk0s2: update_fs_block: failed to update block 2 (ret 5)
jnl: disk0s2: journal_open: Error replaying the journal!
hfs_mount: journal_open == NULL; couldn't be opened on Macintosh HD
mount_hfs: Invalid argument
FIP USER Space POST: Integrity test failed!
BootCacheControl: could not unlink bootcache playlist /var/db/BootCache.playlist: 30 Read-only file system

After that it just gets stuck and never gets past that.

I booted in recovery mode then tried verify and repair disk with disk utilities put is seems to be OK. However Macintosh HD cannot be mounted.

Tried fsck_hfs from Recovery Mode terminal then got Macintosh HD cannot be repaired.

I'll want to know if there is anyway to rescue the system without reinstalling Mac OSX or at least a way to recover some files from the drive before reinstalling Mac OSX.

2 Answers 2

1
  • there may be no way to rescue the system without reinstalling Mac OSX.
  • you might look into booting into single-user mode
  • that said, to the extent you care about un-backed up data on the hard drive, it might be wise to recover files BEFORE trying to reinstall/recover further
  • I have had good luck with DiskWarrior
  • You MAY be able to boot the broken disk/laptop in "Target Disk Mode" - if it has Firewire, if you have the cable, and if you have another Mac with Firewire to attach it to.
  • Failing that, you or a person with appropriate tools could remove the internal disk drive, attach it to a USB/SATA adapter of the appropriate kind and use DiskWarrior on it.

Good Luck!

3
  • I can't boot into single user mode. Tried DiskWarrior but it doesn't see the drive (what I managed to read is that if the volume cannot be mounted then DiskWarrior will not see it). I'll try with something like Data Rescue to recover my files. If that fails then I'll try removing the HDD and connect it to another computer because the other mac around is a white macbook with firewire 400 while mine is firewire 800, unless that doesn't matter to try the Target Disk Mode. Thanks Commented Oct 11, 2012 at 5:23
  • Sorry, my bad. I actually can boot into single user mode. I'll try to backup my data from there Commented Oct 11, 2012 at 5:33
  • As I recall, one can connect Firewire 400 to Firewire 800 if you have the right cable. It automatically will downgrade the speed to 400... Commented Oct 12, 2012 at 6:16
1

You should boot into single-user mode (hit CMD-S at startup) and try to run repair manually:

fsck -y

Then exit/reboot.


If won't help, to repair a volume that won't mount, follow this guide.

Here are different methods of mounting of the volume:

  • sudo mount -t hfs /dev/disk3s2 /mnt (create /mnt folder before: sudo mkdir /mnt)
  • sudo /System/Library/Filesystems/hfs.fs/hfs.util -MU disk3s2 ~/temp/ fixed readonly nosuid nodev
  • sudo diskutil mount readOnly /dev/disk3s2

testdisk

You can use testdisk command to repair the partition table:

sudo testdisk ~/temp/flashdrive.dmg

See the following demonstration.

ddrescue

If won't work, use ddrescue utility to image the HFS+ volume:

sudo ddrescue -v /dev/disk3s2 ~/temp/foobar.dmg ~/temp/logfile.log

Then try to mount the image it-self:

$ hdiutil attach -nomount ~/temp/foobar.dmg
/dev/disk5                                               

$ diskutil list
...
/dev/disk5
#:   TYPE NAME     SIZE       IDENTIFIER
0:        foobar   *500.1 GB   disk5

$ mount -t hfs -r /dev/disk5 ~/temp/
mount_hfs: Invalid argument

$ mount -t hfs -r /dev/disk5s0 ~/temp/
GetMasterBlock: Error 2 opening /dev/rdisk5s0
mount_hfs: No such file or directory

$ mount /dev/disk5 ~/temp/
mount: You must specify a filesystem type with -t.

$ diskutil mount readOnly /dev/disk5
Volume on disk5 failed to mount; if it has a partitioning scheme, use "diskutil mountDisk"
If the volume is damaged, try the "readOnly" option

$ diskutil mountDisk readOnly /dev/disk5
Volume(s) mounted successfully
# Despite the promising "Volume(s) mounted successfully" message, nothing was mounted

$ mount -t hfs -r /dev/disk5s0 ~/temp/
GetMasterBlock: Error 2 opening /dev/rdisk5s0
mount_hfs: No such file or directory

$ mount -t hfs -r /dev/disk5 ~/temp/
GetMasterBlock: Error 16 opening /dev/rdisk5
mount_hfs: Resource busy

DiskWarrior

  1. sudo hdiutil mount -nomount -readwrite ~/temp/foobar.dmg.
  2. The image should now appear in DiskWarrior or Disk Utility for repair.

See: Recovering Disk Images with DiskWarrior

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .