Data Recovery RAID disk


Mijn oude fileserver had een 3Ware RAID controller.  Die server was kapot na een stroomstoring en dus lagen de schijven al enige tijd op de plank, want misschien staat er nog data op die niet in de backup zit.  Echter hoe haal je de data eraf zonder die RAID controller?

Situatie

De RAID controller, een 3Ware 6410, is er een met een PCI aansluiting en 4x IDE.  Beide aansluitingen die nogal schaars beginnen te worden.

Om het nog even wat complexer te maken, had ik op de schijven een LVM toegepast, zodat de boel eventueel makkelijker uitgebreid zou kunnen worden.  Uiteraard is dat nooit gebeurd…

Mijn LVM bevatte 2x IDE disk van de 3Ware controller als RAID-1 (mirroring) en 4x SATA schijf in software-RAID-5.  De root (met /home , /var , enz.) staat op de RAID-1 set en de rest op de software RAID-5-set.  Eerst maar even de IDE-schijf uit de RAID-1 set proberen.

LVM Volumegroup op software- en 3Ware RAID set

LVM Volumegroup op software- en 3Ware RAID set

Ter illustratie de situatie zoals ik me die herinnerde 🙂

Transparantie 3Ware controller

Als hardware RAID-controller moet je de schijven kunnen herkennen, dus moet er nog wat op geschreven worden buiten de partitionering om. Dit kun je aan het begin doen, of aan het eind.  3Ware blijkt voor het begin gekozen te hebben, alleen hoeveel?  Oftewel, bij welke sector begint de partitietabel?

Het blijkt dat dit 512 kByte te zijn, oftewel 1024 sectoren op mijn schijf. Ik heb geen idee of die offset in Bytes of sectoren geldt voor de controller, maar bij mij begon het dus na 524288 Bytes.

Bepalen Offset

Eerst maar even een loop-back device aanmaken met die offset:

losetup -o 524288 /dev/loop0 /dev/sdd

Dan hebben we een device /dev/loop0, waar fdisk hopelijk wat mee kan…

root@htpc:~# fdisk -l /dev/loop0
Disk /dev/loop0: 320.1 GB, 320072409088 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625141424 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005a8b6
Device Boot Start End Blocks Id System
/dev/loop0p1 * 63 498014 248976 83 Linux
/dev/loop0p2 498015 625137344 312319665 5 Extended
/dev/loop0p5 498078 625137344 312319633+ 8e Linux LVM

De LVM-partitie begint op sector 498078, dus 498078 * 512 + 524288 = 255540224 Bytes na het begin van de harde schijf.

Eerst de eerst gemaakte loopback weggooien:

losetup -d /dev/loop0

En dan opnieuw aanmaken met de gewenste offset:

losetup -o 255540224 /dev/loop0 /dev/sdd

Mounten Logical Volume

Een “vgscan” leverde niets op, maar blijkbaar moet je lvm.conf nog aanpassen om een LVM via een loopback device te kunnen mounten. Oftewel pas de vergelijkbare regel in lvm.conf als volgt aan:

filter = [ "a|/dev/loop.*|", "r/.*/" ]

Daarna werd de volume-group gevonden:

root@htpc:~# vgscan
 Reading all physical volumes. This may take a while...
 Couldn't find device with uuid LJXHd9-wfNq-sJRS-VZgx-B0bt-Nk65-W2Ml6L.
 Found volume group "fileserver" using metadata type lvm2

Het software-RAID5 device werd (uiteraard) niet gevonden en gelukkig had ik de logical volumes precies zo groot gemaakt als de fysieke schijven.  Dus ik kon verder.

Zorg dat je de volume-group ‘fileserver’ kunt gebruiken:

root@htpc:~# lvm vgchange -ay fileserver
 Couldn't find device with uuid LJXHd9-wfNq-sJRS-VZgx-B0bt-Nk65-W2Ml6L.
 Refusing activation of partial LV Postbus. Use --partial to override.
 2 logical volume(s) in volume group "fileserver" now active

En via de device-mapper kun je dan de Logical Volumes mounten:

root@htpc:~# mount /dev/mapper/fileserver-root /mnt/recover/

Resultaat

Uiteindelijk bleek dat de hdd’s zelf ook niet helemaal lekker meer waren, want rsync had best wel moeite met het lezen van een aantal files.

Maar gelukkig had ik 2 van die schijven, dus uiteindelijk heb ik vrijwel alles wat de moeite waard was kunnen recoveren.

En het “leuke” was nog wel dat hetgeen ik naarstig naar op zoek was, waarschijnlijk nooit bestaan heeft (gemonteerde video uit 2008) die ik kennelijk nooit gemaakt heb, omdat er toen helemaal geen filmpje was gemaakt….

Binnenkort maar eens een aantal SATA=>USB adapters bij elkaar scharrelen om de stapel hdd’s van de software-RAID5 set te recoveren.

Leave a Reply