Disk I/O errors while reading journal during boot

boothard drive

A few days ago my MacBook crashed after it got hot as it didn't go into hibernate and was stored in a backpack. No damage seems to have occurred apart from my corrupted HDD. After trying to get it out of hibernate, which wasn't successful, I forced the MacBook to shut down by keeping the power button pressed until it would shut down.

Problem I'm experiencing now is that the MacBook won't boot and shuts down after the grey loading bar passes the +/- 40% mark. The disk is also not recognized when booted from an external HDD. Starting in safe mode is impossible. Starting the machine in verbose mode shows that there is a problem with replaying the journal. The error reads as follows:

This morning I was successful in booting from my internal HDD, however, after putting the MacBook back to sleep, the problem returned. In order to fix the problem and get my machine to boot again I've tried to following things:

  1. Boot into recovery mode (cmd + r) and use disk utility to verify and repair the HDD. The disk shows up, but my Macintosh HD partition is greyed out. Both show:

    problems were found with the partition map which might prevent booting
    Error: couldn't mount disk

  2. Install a fresh OS X version on my external HDD and try to use Data Rescue and testdisk to rescue data and analyze the disk. Data is safe-ish by now, although j would live to fix the problems without installing everything again and the data rescue output is a mess. Testdisk does recognize the disk. The disk also shows up in diskutil list, it returns:

    /dev/disk0   
    0:      GUID_partition_scheme                        *160.0 GB     disk0
    1:                        EFI EFI                     209.7 MB   disk0s1
    2:                  Apple_HFS Macintosh HD            799.0 GB   disk0s2
    3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
    /dev/disk1   
    0:      GUID_partition_scheme                        *1.0 TB     disk1
    1:                        EFI EFI                     209.7 MB   disk1s1
    2:                  Apple_HFS Seagate Expansion Drive 999.3 GB   disk1s2
    3:                 Apple_Boot Recovery HD             650.0 MB   disk1s3
    

    After running gpt -r show /dev/disk0 the disk will drop and not show up in diskutil anymore, OS X will say: Disk Not Ejected Properly

    Testdisk says the structure of all three partitions is ok and the start and end do match the GPT results. The deeper search however shows some errors:

    I have no idea if these are related.

  3. In single user mode I've tried to do the following: Run fsck -f to scan the target disk/partition, results seem to be fine. However, after fsck saying that "The volume Macintosh HD appears to be ok." It says: /dev/disk0s2: I/O error

    gpt -r show /dev/disk0 returns normal values, as in that my boot partition seems to be of the correct size and holds the correct values. Being:

          start       size  index  contents
              0          1         PMBR
              1          1         Pri GPT header
              2         32         Pri GPT table
             34          6         
             40     409600      1  GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B
         409640  310902592      2  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
      311312232    1269536      3  GPT part - 426F6F74-0000-11AA-AA11-00306543ECAC
      312581768          7         
      312581775         32         Sec GPT table
      312581807          1         Sec GPT header
    

Any suggestions on how to tackle this problem?

Curious part is that I got the machine back to work earlier today but the problem showed up again after hibernation as mentioned earlier.

Best Answer

An io error during fsck / single user mode means inventory your backups, perform data recovery if needed, format and erase the drive.

At that point, you will either have a stable volume to reinstall the OS or continuing hardware errors meaning a repair or drive swap.

You could also buy time by installing the OS on to an external drive and postpone the data recovery / backup decision point. Often failing drives work well for read operations for far longer than any write operations.