Jedno z praw Murphiego mówi: “Awaria komputera wyczekuje cierpliwie na najbardziej niedogodny moment, aby bezlitośnie zaatakować.”
No i zaatakowała, na kilka dni przed planowanym oddaniem pracy dyplomowej. Oczywiście pracując na nowych “plikach” zapomniałem ustawić backupów i szlag trafił jakiś miesiąc pracy i środowisko testowe. Przy okazji dało o sobie znać kolejne prawo: “Drobne awarie nie isnieją, jeżeli miała jednak miejsce drobna awaria, oznacza to, że nie poznałeś jeszcze jej rzeczywistych rozmiarów.” Zaczęło się niewinnie, od problemów z wykryciem dysku po restarcie, gorzej było od momentu jak zadałem sobie sprawę że to TEN najważniejszy w ostatnich dniach dysk.
Objawy:
Dysk twardy wydaje się pracować, nie wydaje niestandardowych dźwięków, nie jest wykrywany przez bios. Pod linuksem widać problemy z dostępem do dysku.
Model i trochę historii:
Seagate Barracuda 7200.11 750GB uzbrojony w najwspanialszy firmware SD15. Nigdy nie posiadałem tyle wolnego miejsca aby wykonać backup całego dysku i podnieść firmware do wersji poprawnie działającej, czyli powyżej SD15. Dysk podziałał dokładnie 5 lat i 2 miesiące, będąc intensywnie używanym.
Co dalej?
Płacz, pisanie od nowa, upicie się. Wyszło jak zwykle Google i szukanie odpowiedzi… Co zrobić gdy padnie Barracuda z czarnej serii. Kilka rozwiązań udało się znaleźć.
Do ciekawostek należy koszt uruchomienia takiego dysku przez firmę zajmującą się odzyskiwaniem danych – 500$ – chyba kogoś zdeczko pogrzało.
Potrzebne narzędzia:
Okazało się że można popróbować zabawy z terminalem dyskowym, wersja USB lub RS-232, bez różnicy. Analogiczne kabelki są używane w przypadku programowania centralek alarmowych. Wersja na USB wygląda mniej więcej tak:
Ewentualnie na elektroda.pl można schemat jak zrobić taki kabelek.
Kosz gotowego kabla to na dzień dzisiejszy około 18zł, zamówiłem z alledrogo.
Oprócz kabelka należy wyposażyć się w jakiegoś klienta umożliwiającego wysyłanie komunikatów na porcie szeregowym (lub emulowanym szeregowym), np klasyczny Putty lub HyperTerminal.
Kroki naprawy (…a trochę ich jest):
- Instalacja sterownika do kabla (w przypadku USB), sterownik dołączony na płytce, najpierw instalujemy sterownik a dopiero później podłączamy kabel.
- Podłączenie kabla i automatyczna instalacja sterownika. Weryfikacja jakiego COMa używa sterownik (Menedżer urządzeń -> Porty COM i LPT)
- Podłączenie terminala do dysku
Oczywiście część kabelków posiada 3 piny a nie 2 jak w moim przypadku. W przypadku dysku Seagate mamy dostępne 4 piny, 1 od lewej nie używamy, 2 podłączamy GND (jeśli kabel ma 3 piny), 3 podłączamy RX, 4 podłączamy TX. W przypadku zabaw z innymi dyskami polecam GOOGLE:) - Uruchomienie Putty i konfiguracja:
Zamiast COM3 podajemy port, na którym zainstalowano sterownik od kabla (patrz -> Menedżer urządzeń -> Porty COM i LPT). - Podłączenie się terminalem
- Podłączenie zasilania do dysku
- Sprawdzamy czy nie pojawiają się jakieś komunikaty, jeśli nic nie ma to prawdopodobnie został odwrotnie podłączony kabelek
- Odświeżamy kilka razy CTRL+Z
- Pojawienie F3 T> oznacza że jesteśmy już prawie w domu, w moim przypadku nie było tak łatwo bo pojawił się komunikat:
LED:000000CC
FAddr:0025BF67
Oznacza to tylko tyle że mamy do czynienia z problemem ze SMARTem, uszkodzonym translatorem i w efekcie z zablokowanym dyskiem. W tym przypadku nic nie da się przesłać do dysku poprzez terminal (przynajmniej ja natrafiłem na taki przypadek). Jeśli pojawił się standardowy znak zachęty przejdź od razu do punktu 16 - Aby móc przejść do właściwej naprawy należy odizolować płytkę z elektroniką dysku od samego dysku (styki). Odłączamy zasilanie od dysku i odkręcamy 3 śruby jak na rysunku
- Po odkręceniu śrub należy delikatnie odgiąć PCB i w okolicach śruby numer 3 włożyć zapałkę, kartę bankomatową lub coś w tym stylu. Ja użyłem karty ze stacji benzynowej 😉
- Teraz należy uruchomić zasilanie. Głowice nie mają w tym momencie dostępu do elektroniki dysku. Talerze zaczynają się obracać, po czym zatrzymują się…
- W tym momencie – Przy włączonym zasilaniu! – wyjmujemy wcześniej włożony element blokujący i przykręcamy PCB
- Po przykręceniu na terminalu wciśnięcie CTRL+Z powoduje pojawienie się znaku zachęty:
F3 T>
- Przystępujemy do naprawy właściwej, w przypadku braku problemów ze SMARTem (punkt 9) można od razu kontynuować od punktu 16.
- Wchodzimy na poziom 2, piszemy w terminalu
/2
i zatwierdzamy enterem
Zmiana znaku zachęty naF3 2>
oznacza że jesteśmy w odpowiednim trybie - Zatrzymujemy silnik wydając na terminalu komendę
Z
Po zatwierdzeniu enterem na terminalu powinien pojawić się fragment zbliżony do:
F3 2>Z
Spin Down Complete
Elapsed Time 0.147 msecs - Ponownie uruchamiamy silnik wpisując na terminalu komendę
U
Po zatwierdzeniu enterem na terminalu powinien pojawić się fragment zbliżony do:
F3 2>U
Spin Up Complete
Elapsed Time 7.363 secs - Przechodzimy spowrotem do trybu 1, w terminalu wydajemy polecenie
/1
Znak zachęty zmieni się naF3 1>
- W tym trybie wykonujemy czyszczenie SMARTu wydając polecenie
N1
.
Poprawne wykonanie polecenia nie zwróci żadnego wyniku, terminal powróci do poziomu 1F3 1>
- W tym momencie odpinamy zasilanie dysku i czekamy z 10-20sekund – tak dla bezpieczeństwa
- Następnie podłączamy spowrotem zasilanie, wciskamy kilka razy CTRL+Z aż spowrotem pojawi się poziom
F3 T>
- Wydajemy polecenie przeliczenia translatora
m0,2,2,0,0,0,0,22
Przeliczenie spowoduje wyświetlenie analogicznego wyjścia na terminalu:
F3 T>m0,2,2,0,0,0,0,22
Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 00, Max Certify Rewr ite Retries = 0000
User Partition Format Successful - Elapsed Time 0 mins 00 secs - Dodatkowo można sprawdzić czy nie zostały zarejestrowane jakieś błędy, wpisujemy na terminalu
V4
Powinno pojawić się coś na styl:
F3 T>V4
Reassigned Sectors List
Original New log log log phy phy
LBA PBA cyl hd sctr zn cyl sctr SFI hours msecAlt Pending Total Alted Total
Entries Entries Entries Alts Alts
Head 0 0
Head 1 0
Head 2 0
Head 3 0
Head 4 0
Head 5 0
Total 0 0 0 0 0
Total Alt Removals: 0
Checksum = 0000
F3 T> - … jeśli wszystkie operacje przebiegły bez problemów to w tym momencie możemy odłączyć zasilanie i zacząć normalnie korzystać z dysku. Nie powinno być żadnych ubytków w danych.
Oczywiście udało mi się odzyskać wszystkie najpotrzebniejsze dane. Było trochę nerwów ale cała operacja zakończyła się pełnym sukcesem.
Informacje zawarte w tym poście są zlepkiem tego co udało mi się znaleźć na necie (czytaj wygooglać).