Categories
Tech

Seagate Barracuda 7200.11 750GB – firmware SD15 – nie wykrywa dysku

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:

Terminal dyskowy - zdjęcie pozyskane z zasobów publicznej sieci Internet

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):

      1. Instalacja sterownika do kabla (w przypadku USB), sterownik dołączony na płytce, najpierw instalujemy sterownik a dopiero później podłączamy kabel.
      2. Podłączenie kabla i automatyczna instalacja sterownika. Weryfikacja jakiego COMa używa sterownik (Menedżer urządzeń -> Porty COM i LPT)
      3. 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:)
      4. Uruchomienie Putty i konfiguracja:
        Zamiast COM3 podajemy port, na którym zainstalowano sterownik od kabla (patrz -> Menedżer urządzeń -> Porty COM i LPT).
      5. Podłączenie się terminalem
      6. Podłączenie zasilania do dysku
      7. Sprawdzamy czy nie pojawiają się jakieś komunikaty, jeśli nic nie ma to prawdopodobnie został odwrotnie podłączony kabelek
      8. Odświeżamy kilka razy CTRL+Z
      9. 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
      10. 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
      11. 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 😉
      12. 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ę
      13. W tym momencie – Przy włączonym zasilaniu! – wyjmujemy wcześniej włożony element blokujący i przykręcamy PCB
      14. Po przykręceniu na terminalu wciśnięcie CTRL+Z powoduje pojawienie się znaku zachęty: F3 T>
      15. Przystępujemy do naprawy właściwej, w przypadku braku problemów ze SMARTem (punkt 9) można od razu kontynuować od punktu 16.
      16. Wchodzimy na poziom 2, piszemy w terminalu
        /2 i zatwierdzamy enterem
        Zmiana znaku zachęty na F3 2> oznacza że jesteśmy w odpowiednim trybie
      17. 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
      18. 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
      19. Przechodzimy spowrotem do trybu 1, w terminalu wydajemy polecenie /1
        Znak zachęty zmieni się na F3 1>
      20. W tym trybie wykonujemy czyszczenie SMARTu wydając polecenie N1.
        Poprawne wykonanie polecenia nie zwróci żadnego wyniku, terminal powróci do poziomu 1 F3 1>
      21. W tym momencie odpinamy zasilanie dysku i czekamy z 10-20sekund – tak dla bezpieczeństwa
      22. Następnie podłączamy spowrotem zasilanie, wciskamy kilka razy CTRL+Z aż spowrotem pojawi się poziom F3 T>
      23. 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
      24. 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>
      25. … 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ć).