Scrivo questo post per aiutare chi si dovesse trovare a recuperare dati da un disco :
- morente
- formattato da un controller RAID HW SATA del quale non sapete nulla
- gestito precedentemente da un server XEN come StorageRepository per diverse VM e dischi dati
- del quale ignorare partizioni e filesystem contenuti
Spero possa esservi utile.

Premessa: “E’ successo l’irreparabile.”
Il nas dove facevo i backup day, weekly, monthly lo ho venduto ad un amico per prenderne uno
più grosso che ci metterà una settimana ad arrivare. Bè mi dico, sto tranquillo … tanto il mio server xen ha tutti i dati su due Array RAID1.
Ecco 2 giorni dopo il beep fatidico .. il disco “4″ sta morendo.
Io sono incasinato di lavoro e così segnalo il problema al vendor del server e mi faccio inviare un disco nuovo. Il disco arriva e lo installo al posto di quello morente … ma sorpresa delle sorprese: anche questo disco segnala errori di funzionamento !!
Faccio un pò di controlli (sono sempre di corsa per altri lavori) e sembra che il disco nuovo abbia un firmware leggermente vecchio rispetto alla mia macchina … chiamo il vendor, bestemmio un pò e mi faccio inviare un altro disco con lo stesso firmware.
Lo inserisco e magia delle magie lo segnala ancora rotto…
Attenzione …
A questo punto i miei dati richiedono tutto il mio tempo.
Levo il server dal rack e dopo i dovuti controlli dello slot di hotswap e tutto il resto mi accorgo
del problema … i connettori SATA sono invertiti sulle Bay. Quindi ho cambiato 2 volte il disco “4″ quando invece era il disco “3″ ad avere in problema. Merda.
Controllo i dischi con la dovuta calma ed in pochi secondi capisco che ho perso i dati dei disco 4 (quello che era sano !!) a causa dei ripetuti Dentro-Fuori-Dentro dalla bay sata hotswap.
A questo punto capisco che i miei dati originali esistono solamente sul disco “3″ originale.
Il disco “3″ però è “morente” (segnala errori SMART) ovvero potrebbe lasciarmi da un momento all’altro.
Penso ad un DiskDruid su un altro disco ma mi rendo conto che copiare 750GB bit-to-bit su un altro disco richiederebbe ore se non giorni ed il disco morrebbe certamente.
Oltre tutto il disco è un disco Xen. Quindi non un semplice disco con le partizioni ed i filesystem come lo conosciamo tutti ma qualcosa di leggermente più complesso.
Così ho portato il disco a casa ci ho passato la notte sopra.
Alla fine ho recuperato tutto. Anche se ho avuto momenti di pura follia …
Eccovi i passi fondamentali:
- Staccare il disco ed attaccarlo ad una workstation linux aggiornata (Fedora Core 10 nel mio caso).
- Verificare se il disco è stato correttamente visto dal sistema:
dmesg | grep sd
- Xen usa LVM direttamento sul device a blocchi. Quindi è necessario analizzare la struttura LVM dei dischi individuando i logical volume interessati:
pvscan
vgscan
lvscan
lvdisplay
Invididuare il path del disco interessato: /dev/VG-XXXXXXXXXXXXXXXXX/LV-YYYYYYYYYYYYYYYYYY
- Controllare che il disco sia effettivamente quello interessato verificando il tipo di filesystem (sapevo che i dati erano in un volume NTFS sharato da un server Windows 2003):
fdisk -l /dev/mapper/VG-XXXXXXXXXXXXXXXX-LV-YYYYYYYYYYYYYYYYYY
- Verificare il path di mapping del disco LVM interessato:
ll /dev/mapper
- Verificare la struttura della partizioni del disco (qui sta il passaggio duro: xen una logical-volume con il filesystem della macchina ospite direttamente sul device a blocchi. Ma sopra ci crea una partizione p1 che non è già pronta all’uso e deve essere mappata su un altro device per essere montata):
kpartx -l -v /dev/mapper/VG-XXXXXXXXXXXXXXXX-LV-YYYYYYYYYYYYYYYYYY
- Mappare la struttura della partizione del disco individuando le relative partizioni:
kpartx -a -v /dev/mapper/VG-XXXXXXXXXXXXXXXX-LV-YYYYYYYYYYYYYYYYYY
- Verificare la creazione delle partizioni:
ll /dev/mapper
- Montare la partizione individuata(attenzione ad indicare il numero di partizione corretta alla fine del nome del device):
mkdir /mnt/dati_da_recuperare
mount -t ntfs-3g -o ro /dev/mapper/VG-XXXXXXXXXXXXXXXX-LV-YYYYYYYYYYYYYYYYYY1 /mnt/dati_da_recuperare
- Copiarvi fuori i dati partendo dai più importanti. Il mio disco mi ha lasciato 4 volte nei tentativi di copia e dopo qualche minuto con un riavvio del pc sono sempre riuscito a farlo ripartire. Quindi “COPIATE FUORI PRIMA I FILE PIU’ IMPORTANTI !!”

