vault backup: 2025-03-14 10:34:49
This commit is contained in:
11
.obsidian/workspace.json
vendored
11
.obsidian/workspace.json
vendored
@@ -55,12 +55,12 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "markdown",
|
"type": "markdown",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "99 Work/0 OneSec/OneSecNotes/70 Meetings/10.03.2025 - Meeting Jerry Simulator Update.md",
|
"file": "2 Personal/Home Lab/Repairshop/Data Recovery from corrupted Harddisks.md",
|
||||||
"mode": "source",
|
"mode": "source",
|
||||||
"source": false
|
"source": false
|
||||||
},
|
},
|
||||||
"icon": "lucide-file",
|
"icon": "lucide-file",
|
||||||
"title": "10.03.2025 - Meeting Jerry Simulator Update"
|
"title": "Data Recovery from corrupted Harddisks"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -135,8 +135,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"direction": "horizontal",
|
"direction": "horizontal",
|
||||||
"width": 279.5,
|
"width": 279.5
|
||||||
"collapsed": true
|
|
||||||
},
|
},
|
||||||
"right": {
|
"right": {
|
||||||
"id": "1017d1cf4a473028",
|
"id": "1017d1cf4a473028",
|
||||||
@@ -328,9 +327,10 @@
|
|||||||
},
|
},
|
||||||
"active": "48ee6f423cb002c4",
|
"active": "48ee6f423cb002c4",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
|
"99 Work/0 OneSec/OneSecNotes/70 Meetings/10.03.2025 - Meeting Jerry Simulator Update.md",
|
||||||
|
"2 Personal/Home Lab/Repairshop/Data Recovery from corrupted Harddisks.md",
|
||||||
"0 Journal/0 Daily/2025-03-13.md",
|
"0 Journal/0 Daily/2025-03-13.md",
|
||||||
"Temporary/10.03.2025 - WG Kickoff Meeting.md",
|
"Temporary/10.03.2025 - WG Kickoff Meeting.md",
|
||||||
"99 Work/0 OneSec/OneSecNotes/70 Meetings/10.03.2025 - Meeting Jerry Simulator Update.md",
|
|
||||||
"2 Personal/Home Lab/MAC/Dotfiles.md",
|
"2 Personal/Home Lab/MAC/Dotfiles.md",
|
||||||
"99 Work/0 OneSec/OneSecNotes/70 Meetings",
|
"99 Work/0 OneSec/OneSecNotes/70 Meetings",
|
||||||
"99 Work/0 OneSec/OneSecNotes/Untitled.md",
|
"99 Work/0 OneSec/OneSecNotes/Untitled.md",
|
||||||
@@ -365,7 +365,6 @@
|
|||||||
"0 Journal/0 Daily/2022-12-08.md",
|
"0 Journal/0 Daily/2022-12-08.md",
|
||||||
"0 Journal/0 Daily/2024-04-12.md",
|
"0 Journal/0 Daily/2024-04-12.md",
|
||||||
"OneNote/OSD/ESC/ST-Motor Control.md",
|
"OneNote/OSD/ESC/ST-Motor Control.md",
|
||||||
"0 Journal/0 Daily/2024-02-28.md",
|
|
||||||
"Attachments/DO-254 Summary.md/Exported image 20231126172013-3.png",
|
"Attachments/DO-254 Summary.md/Exported image 20231126172013-3.png",
|
||||||
"Attachments/Size Up Apus One.md/Exported image 20231126172013-5.png",
|
"Attachments/Size Up Apus One.md/Exported image 20231126172013-5.png",
|
||||||
"99 Work/0 OneSec/OneSecNotes/30 Engineering Skills/Computer Science/Untitled.canvas",
|
"99 Work/0 OneSec/OneSecNotes/30 Engineering Skills/Computer Science/Untitled.canvas",
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
title: Data Recovery from corrupted Harddisks
|
||||||
|
created_date: 2025-03-14
|
||||||
|
updated_date: 2025-03-14
|
||||||
|
aliases:
|
||||||
|
tags:
|
||||||
|
---
|
||||||
|
# Data Recovery from corrupted Harddisks
|
||||||
|
|
||||||
|
## Typical Workflow
|
||||||
|
1. Clone the disk before file recovery (see [this article](https://www.r-studio.com/Clone_Disks_Before_File_Recovery.shtml))
|
||||||
|
2. Perform all recovery steps on the clone
|
||||||
|
|
||||||
|
### Disk Cloning
|
||||||
|
#### Using ddrescue
|
||||||
|
1. Find the disk on the system
|
||||||
|
We first need to find the disk that we want to clone. We can do this with apps like DiskUtility.app or with the command `diskutil list` (assuming you are using a mac). Lets assume the faulty drive is `/dev/disk3`.
|
||||||
|
2. Unmount the disk
|
||||||
|
The next step is to unmount the disks:
|
||||||
|
`diskutil unmountDisk /dev/disk3`
|
||||||
|
3. Use `ddrescue` to clone the disk:
|
||||||
|
First run:
|
||||||
|
```bash
|
||||||
|
sudo ddrescue -f -n /dev/disk3 /Volumes/Data/valeria_hdd.img /Volumes/Data/valeria_rescue.log
|
||||||
|
```
|
||||||
|
- `-f`: makes sure to write to a file and not to a disk
|
||||||
|
- `-n`: skip the scraping and only copy healthy sectors of the disk
|
||||||
|
- logfile: very important because it keeps track of what sectors are healthy and which ones are not, meaning we will have more effective consecutive runs.
|
||||||
|
|
||||||
|
Second run:
|
||||||
|
```bash
|
||||||
|
sudo ddrescue -d -r3 /dev/disk3 /Volumes/Data/valeria_hdd.img /Volumes/Data/valeria_rescue.log
|
||||||
|
```
|
||||||
|
- `-d`: direct disk access: can help with certain errors
|
||||||
|
- `-r3`: tries to read bad sectors 3 times: meaning it really tries to read them
|
||||||
|
|
||||||
|
> [!important] Important: keep the image path and the logfile path identical
|
||||||
|
> When keeping the paths identical ddrescue will read the logfile and already know where to look for bad sectors. If it succeeds in reading them it will insert the data into the right location of the disk image which is already written.
|
||||||
|
|
||||||
|
If everything worked out we should now have a disk image that we can mount on our system and browse the files which are still on there.
|
||||||
|
|
||||||
Reference in New Issue
Block a user