Donnerstag, 21. Mai 2020

Datenrettung aus einem Synology NAS - Overlay erzeugen

Ein Bekannter von mir ist mit einem kaputten Synology NAS gekommen,
eine Platte läuft gar nicht mehr an, die andere wird zwar erkannt aber im Kernel Log sind gleich ein paar Errors zu sehen.

[12389.196872] scsi 7:0:0:0: Direct-Access     WDC WD30 EFRX-68EUZN0     8105 PQ: 0 ANSI: 6
[12389.198196] sd 7:0:0:0: Attached scsi generic sg4 type 0
[12389.198420] sd 7:0:0:0: [sdc] Spinning up disk...
[12390.203014] ..........ready
[12399.419688] sd 7:0:0:0: [sdc] 5860533168 512-byte logical blocks: (3.00 TB/2.73 TiB)
[12399.419692] sd 7:0:0:0: [sdc] 4096-byte physical blocks
[12399.419860] sd 7:0:0:0: [sdc] Write Protect is off
[12399.419863] sd 7:0:0:0: [sdc] Mode Sense: 53 00 00 08
[12399.420185] sd 7:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[12399.420334] sd 7:0:0:0: [sdc] Optimal transfer size 33553920 bytes not a multiple of physical block size (4096 bytes)
[12399.503865]  sdc: sdc1 sdc2 sdc5
[12399.506543] sd 7:0:0:0: [sdc] Attached SCSI disk
[12400.017949] sd 7:0:0:0: [sdc] tag#3 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[12400.017952] sd 7:0:0:0: [sdc] tag#3 Sense Key : Medium Error [current] 
[12400.017953] sd 7:0:0:0: [sdc] tag#3 Add. Sense: Unrecovered read error
[12400.017955] sd 7:0:0:0: [sdc] tag#3 CDB: Read(16) 88 00 00 00 00 00 00 90 3e e8 00 00 00 08 00 00
[12400.017958] blk_update_request: critical medium error, dev sdc, sector 9453288 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 0
[12400.527720] sd 7:0:0:0: [sdc] tag#2 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[12400.527750] sd 7:0:0:0: [sdc] tag#2 Sense Key : Medium Error [current] 
[12400.527765] sd 7:0:0:0: [sdc] tag#2 Add. Sense: Unrecovered read error
[12400.527774] sd 7:0:0:0: [sdc] tag#2 CDB: Read(16) 88 00 00 00 00 00 00 90 3e e8 00 00 00 08 00 00
[12400.527785] blk_update_request: critical medium error, dev sdc, sector 9453288 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[12400.527805] Buffer I/O error on dev sdc5, logical block 1, async page read
Was ich mir von der Platte merke:

Die Platte ist eine 4TB WD Red und wird als sdc erkannt, es werden darauf 3 Partitionen angezeigt sdc1, sdc2 und sdc5

GNU Parted 3.3
/dev/sdc wird verwendet
Willkommen zu GNU Parted! Rufen Sie »help« auf, um eine Liste der verfügbaren Befehle zu erhalten.
(parted) print                                                            
Modell: WDC WD30 EFRX-68EUZN0 (scsi)
Festplatte  /dev/sdc:  3001GB
Sektorgröße (logisch/physisch): 512B/4096B
Partitionstabelle: gpt
Disk-Flags: 

Nummer  Anfang  Ende    Größe   Dateisystem     Name  Flags
 1      131kB   2550MB  2550MB  ext4                  RAID
 2      2550MB  4698MB  2147MB  linux-swap(v1)        RAID
 5      4840MB  3001GB  2996GB                        RAID
Damit die Platte nun nicht noch mehr zerstört wird, leg ich mal zuerst ein Overlay an, damit alle veruche was zu reparieren nicht direkt auf die Platte geschrieben werden.
Als erstes benötige ich die größe der Platte in Blocks

sudo blockdev --getsize /dev/sdc
5860533168
Dann leg ich noch ein 4TB Sparse File an. Sparse Files werden zwar mit einer Größe von 4TB angezeigt, belegen aber nur den Platz der beschrieben wird. In dem Sparse File sollen dann die Änderungen geschrieben werden. Sozusagen als Snapshot File.

truncate -s4000g overlay-sdb.ovr
Als nächstes leg ich ein Loopback Device an, welches das File als Grundlage hat.
sudo losetup -f --show -- overlay-sdc.ovr
Jetzt habe ich sozusagen ein /dev/loop20 Device erstellt das auch das erstellt File zeigt.
Als nächstes binde ich das original Device /dev/sdc mit dem darüber gelegten Loopback device ein. Alle Schreibvorgänge landen damit im Overlay File.

echo 0 5860533168 snapshot /dev/sdc /dev/loop20 P 8 | sudo dmsetup create sdc

Damit wurde dann ein neues Device unter /dev/mapper/ erstellt:
ls /dev/mapper/
control  sdc
Das so erstellte /dev/mapper/sdc kann man wie ein normales Blockdevice verwenden.

So kann mal der darunterliegenden Platte nicht mehr passieren, als ihr schon passiert ist.

Keine Kommentare:

Kommentar veröffentlichen

OpenWRT 19 und ein Edimax USB WLAN Adapter

Ich kam gerade in die Verlegenheit einen Rapsberry B+ (das erste Modell) als Open-WRT Router für Outdoor neu zu installieren und wollte dabe...