Repair disk from single user mode (fsck fails) 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.
You can try to force fsck_hfs to rebuild the catalog by running

fsck_hfs -Rc -d /dev/disk0s2


or (if you want to avoid having to answer the prompts)

fsck_hfs -y -Rc -d /dev/disk0s2


Of course this will only fix logical damages and keep failing if the disk itself is damaged.