RAID - 0 naprawa odzysk danych.

KAŻDY PRZYPADEK JEST INDYWIDUALNY opis ten nie wyczerpuje rozwiązań każdej możliwości awarii. Jest on opisem pewnego konkretnego zdarzenia i rozwiązania. Jeśli nie jesteś pewien czy procedura ta pomoże i w twoim przypadku lepiej zatrzymaj się i daj się wykazać komuś bardziej doświadczonemu

Jest to opis sposobu na naprawę ,przywrócenie lub odzyskanie danych w przypadku uszkodzenia RAID - 0 .

Celem jest przybliżenie sposobu poradzenia sobie z problemem odzyskania danych lub przywrócenia prawidłowego działania RAID-0 najczęściej na kontrolerach Intela. Do tego jest potrzebna choć minimalna wiedza na temat obsługi DMDE i struktury NTFS oraz tworzenia RAID.

W przypadku RAID - 0 często spotykamy się z awarią polegająca na wypadnięciu z RAID-a jednego z dysków (czasem dwóch). Jeden dysk jest wtedy widoczny jako Non-RAID . Zdarza się to np. przy aktualizacji biosu ale również i przy innych operacjach.

Obrazek zapożyczony z miejsca
obraz

W przypadku takim mamy dwie możliwości odzyskanie danych lub naprawa wynikłej sytuacji.

Sposób na odzyskanie danych

Zakładam : interesuje nas odzyskanie wszystkich danych , nie ma innych uszkodzeń poza wypadnięciem jednego dysku z RAID (czasem dwóch), nie interesuje nas odzyskanie poszczególnych plików. (choć jest też możliwe szczególnie w przypadku większych uszkodzeń konieczne)

Aby odzyskać dane w założony przeze mnie sposób należy wykonać kopię posektorową danych na inny nośnik.

Dwa sposoby
1) Wymaga więcej miejsca i czasu
a) Wykonać kopie posektorową do pliku poszczególnych dysków programem DMDE wer. 2.0.0 beta 8 GUI lub DMDE wer. 2.0.0 beta 10
Opis kopi posektorowej dysku do pliku

Uwaga : Kiedy będziemy zgrywać dysk do pliku dobrze jest sobie zaznaczyć ,który plik jakiemu dyskowi odpowiada . Zakładam plik1.bin-dysk1 , plik2.bin-dysk2. Dla zwiększenia miejsca można użyć kompresji woluminu w Windows-ach .

b) Złożyć RAID-0 w DMDE
Musimy posiadać odpowiednio dużo wolnego miejsca na dysku (suma wielkości poszczególnych dysków RAID-0)
Wiedzy co do kolejności dysków
Wielkości ustawionego Stripa (zwykle domyślnie np. 128Kb w kontrolerze ICH 9/10 na płycie GigaByte)
Przesunięcia - "LBA offset for Disk .." o ile taki był.

Uwaga : Na pierwszym dysku w pierwszym sektorze znajduje się w strukturze MBR zwykle na drugim dysku w pierwszym sektorze MBR-a nie ma. Zasada zapisu na RAID-0 mówi o równoczesnym zapisie na obydwóch dyskach w bloku ustawionym w stripie dlatego pierwsze 128 Kb w naszym przypadku jest na dysku0 a drugie na dysku1. Najmniejszy możliwy ustawialny strip w DMDE to 4 Kb (8 LBA) największy to 1 Mb (2048 LBA). W przypadku strip ustawionego na 1 Mb lepiej skopiować 2048 sektorów .

Zakładam ,że jest to jedna partycja NTFS z systemem lub dwie partycje gdzie pierwsza jest znacznie mniejsza niż wielkość najmniejszego dysku w RAID-zie.
np. Dysk1 500 GB Dysk2 500 GB Partycja C: 40 GB D: reszta
RAID 0 ma wielkość dwukrotnie większą niż najmniejszy dysk w RAID-ie . Dlatego np. przy sytuacji kiedy jeden dysk ma pojemność 250 GB a drugi 500GB cały RAID 0 będzie miał pojemność 500 GB. a nie 750 GB . Dlatego zasadniczo nie stosuje się tego typu rozwiązań.

- Uruchomić DMDE 2.0.0 GUI Kiedy ukaże się nam okno "Select device/disk" klikamy "Cancel"
- Wybieramy menu "Drive" i "Construct RAID"
- Otworzy się nam okienko "Construct Raid" Gdzie mamy menu rozwijalne wyboru rodzaju RAID np. RAID 0 (Stripe) RAID 1 (Mirror) RAID 5 (w trzech opcjach) i JBOD / Spanned . Nas interesuje RAID 0 wybieramy jeśli jest inny. Następnie ustawiamy "Stripe size" z menu rozwijalnego (w moim przypadku 128 Kb. Następnie jeśli chcemy by program po złożeniu RAID odszukał partycje musimy mieć zaznaczony znacznik w opcji "Find partitions". Teraz przystępujemy do dodania dysków do naszego wirtualnego RAID-0 . Klikamy na plus pokaże nam się okienko wyboru "Select device/disk" Gdzie możemy wybrać dysk lub plik w tym przypadku wybieramy plik klikamy na przycisk "Image" i wskazujemy nasz plik plik1.bin. Analogicznie robimy z drugim dyskiem dodając plik2.bin. Jest tu jeszcze parę innych możliwości jak np. dodanie pustego dysku przycisk 0 ,wyrzucenie dysku z naszego wirtualnego RAID , przesunięcie dysku w górę w dół zmieniając kolejność dysków jeśli np. okaże się ,że pomyliliśmy się i dysk1 jest dyskiem 2 , oraz przesunięcie "LBA offset for Disk ..".

Obrazek Menu do budowy Wirtualnego RAID

obraz

- Po utworzeniu RAID klikamy ok.

c) Wykonujemy kopię posektorową woluminu RAID na inny dysk

Uwaga : Sytuacja ta ma miejsce zarówno w przypadku kopiowania na dysk jak i do pliku. Aby zaoszczędzić miejsce na dysku ,gdyż zwykle pojemność dysku 1TB nie równa się pojemności RAID-0 złożonego z 2x500GB i jest mniejsza ,można kopiować nie cały wolumin RAID a jedynie wszystkie sektory partycji. Sytuacja ta jest opisana w drugim sposobie wraz z obrazkiem.

- Otworzy się nam okno znalezionych partycji np.

obraz

Gdzie w kolumnie Volume mamy nasz RAID-0. Jeśli RAID nie będzie miał błędów nie powinno być czerwonych opisów.
Teraz możemy pracować na woluminach RAID-a i możemy wykonać kopie posektorową Całego woluminu RAID na Dysk lub do pliku. Aby to zrobić musimy mieć dysk lub miejsce na dysku o wielkości RAID-a.
- Na oknie Partitions (W naszym przypadku i założeniach robimy kopie posektorową całego woluminu RAID-0) klikamy przycisk "Close"
- Potem wybieramy menu "Tools" i opcje "Copy sectors" ukaże nam się menu

obraz

- Klikamy przycisk "Partition" w sekcji "Source"
- Ukaże się menu "Partitions" gdzie wybieramy wolumin RAID-0 .Czyli cały RAID-0.

obraz

- Następnie wybieramy przycisk "Device" jeśli chcemy zapisać na dysk lub "File" jeśli chcemy zgrać do pliku. (Zakładam że chcemy zrobić kopie na inny dysk)
- Po kliknięciu "Device" pokaże się menu "Select device/disk" gdzie wybieramy nasz docelowy dysk
- Klikamy Ok i pokazuje nam się okienko strzeżenia o potwierdzenie chęci wykonania kopi klikamy "Yes"
Uwaga : To ostatni moment kiedy możemy zrezygnować i przerwać proces nadpisywania dysku docelowego.
Po wykonanej kopi możemy spróbować uruchomić w komputerze gdzie znajdował się nasz uszkodzony RAID-0 uruchomić system-dysk na którym mamy kopię RAID-a. Jako startujący wybieramy wtedy dysk a nie RAID.

2) Skraca czas i zmniejsza zapotrzebowanie na wolne miejsce wymaga drugiego dysku o pojemności co najmniej wystarczającej do skopiowania woluminu RAID lub tylko samych partycji bez końcowych sektorów zwykle wolnych. W przykładowym obrazku na zielono zaznaczyłem sektory początkowy i końcowy wymagane i na czerwono nie konieczne.
Uwaga : Trzeba pamiętać że wtedy nie mamy pełnej kopi 1:1 i jeśli są uszkodzenia systemu plików to możemy pominąć w takiej sytuacji ważne dane. Jeśli natomiast wszystko jest ok nie powinno być problemu.

obraz

Uwaga : Sytuacja ta ma miejsce zarówno w przypadku kopiowania na dysk jak i do pliku aby zaoszczędzić miejsce na dysku gdyż zwykle pojemność dysku 1TB nie równa się pojemności RAID-0 złożonego z 2x500GB i jest mniejsza.

Postępuje się analogicznie do opisu w sposobie pierwszym. Pomijamy jedynie punkt a) .dodatkowo zamiast budowania wirtualnego RAID-a 0 z plików plik1.bin i plik2.bin budujemy go z podpiętych osobnych dysków wypiętych z komputera - uszkodzonego kontrolera RAID. Wskazujemy wtedy nie plik a dysk. Reszta pozostaje taka sama.

Tu przykładowy filmik ze złożenia RAID z dysków.

Link

Tutaj film z konstrukcji RAID oraz z zapisywania pierwszych 1025 sektorów i przywracania tych sektorów.

Link


Sposób na odbudowę RAID 0

1) Wypięcie obydwóch dysków z RAID opisanie ich gdzie były wpięte oznaczenie dysk1-SATA1 dysk2-SATA2
(Można też ustawić kontroler na IDE lub SATA zamiast RAID wtedy dyski są widziane osobno następnie zgrać sektory np. DMDE do pliku na dyskietkę lub USB)
2) Podpięcie pod inny komputer HDD1 zgranie 0-1024 pierwszych sektorów do pliku opisanie plik1-dysk1
3) Podpięcie pod inny komputer HDD2 zgranie 0-1024 pierwszych sektorów do pliku opisanie plik2-dysk2
4) Założenie z powrotem dysków tak jak były podpięte do RAID dysk1-SATA1 , dysk2-SATA2 (nie kasujemy oznaczeń SATA1-dysk1-plik1 tak by zawsze mieć świadomość który dysk gdzie był wpięty i jaki plik jest z niego)
5) UWAGA !. Teraz ostrożnie. Usuwamy RAID w BIOS-ie RAID.
5) Zakładamy od nowa taki sam RAID (te same parametry np. 128 Kb bez przesunięcia) UWAGA ! zapisujemy potwierdzając komunikaty i wyłączamy komputer NIE URUCHAMIAMY GO Z TAKIM RAID-em.
6) Wypinamy dyski z RAID mając opisy i wiedzę jakie SATA jaki dysk i jaki plik był z dysku. (można ponownie przestawić w tryb IDE/SATA zamiast RAID w BIOS płyty głównej, dyski będą osobno i wtedy możemy wgrać sektory DMDE z powrotem na dyski)
7) Podpinamy dysk1 pod inny komputer i wgrywamy 0-1024 pierwszych sektorów z odpowiedniego pliku plik1 - dysk 1
8) analogicznie dysk drugi
Uwaga : Sumarycznie przywróciliśmy pierwsze 1025 sektorów poszczególnym dyskom odpowiednio z odpowiadających im plików.
9) Teraz podpinamy dyski z powrotem tak jak były wpięte w RAID - 0 który już jest sprawny i uruchamiamy komputer z RAID-a. (Lub włączamy RAID w BIOS płyty głównej i uruchamiamy z RAID-a)

Jak zmodyfikować parametry RAID np. strip z 128 na 64

Zmiana Stripa.
1) Należy wykonać kopię CAŁEGO RAID do pliku lub na inny dysk
2) Usunąć RAID i ponownie założyć z nowymi parametrami np. zmienionym strip-em
3) Przywrócić dane na tak utworzony RAID

Zmiana dysków zmiana RAID 1 na RAID 0
1) Należy wykonać kopię CAŁEGO RAID do pliku lub na inny dysk
2) Usunąć dyski wsadzić lub zmienić na nowe dyski utworzyć RAID
3) Przywrócić dane na tak utworzony RAID (RAID 1 na RAID 0 Pamiętać należy ,że zmieni się pojemność dysku przy kopi posektorowej nie zmieni nam się to w wpisach w metaplikach. Zostanie dodać partycje w przestrzeni wolnej lub zmodyfikować odpowiednio metapliki MBR)

Przydatne linki
Linux RAID
Raid Programowy - Linux PLD

Opis jak wykonać Kopie
posektorową programem HDDClone


Opis programu DMDE

Opis partycji

Opis S.M.A.R.T.

RAID 0 - naprawa odzysk danych

Oficjalny dystrybutor DMDE na Polskę