uechi.io/_posts/2018-02-15-data-recovery.markdown
2018-08-03 14:06:51 +09:00

52 lines
1.8 KiB
Markdown

---
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`.