Earlier today my 2009 iMac emitted I/O errors trying to copy files. So I ran disk utility, verify disk to see if anything was amiss. It was. But as it's my startup disk I couldn't repair it, so I tried safe mode. Safe mode worked the very first time, but when I rebooted it shows the progress bar filling up, before halting. Every time I turn it on now, the same progress bar then crash happens. Booting in verbose mode reveals fsck is failing with signal 8.
Using single-user mode, as that's as far as I'm aware the only way I can get any access to the system, I've been running fsck_hfs. However, it always fails. Below is the output from fsck_hfs -d /dev/disk0s2.
** /dev/rdisk0s2
Using cacheBlockSize=32K cacheTotalBlock=65536 cacheSize=2097152K.
** Root file system
Executing fsck_hfs (version diskdev_cmds-491.6~3).
** Verifying volume when it is mounted with write access.
** Checking Journaled HFT Plus volume.
** Checking extents overflow file.
** Checking catalog file.
Missing thread record (id = 9931104)
Missing thread record (id = 16434146)
Missing thread record (id = 19370458)
disk0s2: I/O error
hfs_swap_BTNode: offsets 10 and 11 out of order (0x0000, 0x0000)
Invalid node structure
(4, 115897)
** The volume Macintosh HD could not be verified completely.
volume check failed with error 7
volume type is pure HFS+
primary MDB is at block 0 0x00
alternate MDB is at block 0 0x00
primary VHB is at block 2 0x02
alternate VHB is at block 1952491198 0x74622d5e
sector size = 512 0x200
VolumeObject flags = 0x07
total sectors for volume = 1952591200 0x74622d60
total sectors for embedded volume = 0 0x00
I absolutely need to be able to boot to use it as an external monitor.
launchctl load /System/Library/LaunchDaemons/com.apple.kextd.plist
launchctl load /System/Library/LaunchDaemons/com.apple.notifyd.plist launchctl load /System/Library/LaunchDaemons/com.apple.configd.plist
launchctl load /System/Library/LaunchDaemon/com.apple.DirectoryServices.plist
I then did some other stuff, don't know if it was necessary, and thenshutdown -h now
, and when that didn't work,exit
.