---
title: Guide to recover data from damaged HDD
date: 2018-02-15 12:45:00 +09:00
---

This is a complete guide describes how to rescue your data from old and wrecked HDD.

Suppose you are using macOS and your endangered disk is formatted with HFS+.

# Beforehand

## Inspect

Use `diskutil list` to verify that which drive is damaged.

This article assumes that `disk2` is the damaged AND a partition `disk2s2` is what you expected to be rescued. You don't want to save `disk2s1` that is usually EFI partition.

## Damage Control

To prevent extra load, unmount the damaged disk: `diskutil unmountDisk disk2`.

# Rescue

If you never been `ddrescue`, `brew install ddrescue` to install them on your machine.

```bash
cd /Volumes/AnotherDriveLargerThanDamagedDrive
sudo ddrescue -n -v /dev/disk2s2 ./hdimage.dmg ./mapfile
```

So this command will start rescuing your data from `/dev/disk2s2` partition to `hdimage.dmg` while writing log to `mapfile`.

You might want to rescue data as fast as possible. option `-n` is here for. This will skip scraping phase that causes aggressive disk access.

Option `-v` stand for verbose logging.

```bash
sudo ddrescue -r5 -v /dev/rdisk2s2 ./hdimage.dmg ./mapfile
```

When the first command completed, do it again with different parameters to aggressively scrape bad area failed to access the first time.

Option `-r5` means ddrescue will try rescuing damaged area for 5 times.

And `/dev/disk2s2` become `/dev/rdisk2s2` this time. `r` stand for raw so this will access the disk more direct way.

> Beware: You MUST use same `hdimage.dmg` and `mapfile` between two commands. `mapfile` remains information of which blocks were rescued.

# Aftercare

Mount `hdimage.dmg` and copy files and directories to a new drive. If the image is broken, you can recover it using `testdisk`.