Zábava s disky Seagate

22. 5. 2010 13:01 nohous

Zhruba dva týdny nazpět jsem zažil poněkud nepříjemné překvapení – po zapnutí PC BIOS nedetekoval zhruba rok starý HDD Seagate řady 7200.11. Výměna kabeláže a kontrola připojení nepřinesly žádné výsledky, přišlo tedy na řadu googlení – výsledkem pátrání bylo, že v tom nejsem s velkou pravděpodobností ani zdaleka sám.

Firmware této série totiž trpí (dokonce oficiálně přiznanou) velmi hloupou bugou, která způsobí zaseknutí disku v busy stavu. HDD si ukládá nějaká data do Event Logu (implementovaného jako kruhový buffer), a pokud je při zapnutí počet záznamů 320 + k*256, kde k je z N0, FW nabyde vlivem chybné konstanty udávající maximální naplnění logu dojmu, že došlo k jeho přetečení. Dál už není komunikace s diskem přes SATA možná, důležité ale vzhledem k nedestruktivní povaze celé závady je to, že samotným datům uloženým na HDD nic není (jen nejsou přístupná).

Účinnou prevencí je update firmwaru – viz web Seagate (zde lze také zkontrolovat, zda se problém týká příslušného modelu HDD a verze jeho FW). Bohužel, pokud se již problém projevil, firmware není z celkem zřejmých důvodů možné přepsat.

Řešení přinesl až kamarád sběratel dat, který mi zaslal uloženou webovou stránku s popisem odstranění závady svépomocí. Většina moderních HDD totiž (k mému relativnímu překvapení) naštěstí obsahuje klasický sériový port (RS-232) a implementuje celou řadu servisních příkazů. Pokud tedy trpíte podobným problémem jako já – tzn. disk není detekován BIOSem (některá PC se dokonce během POSTu neustále restartují), můžete postup vyzkoušet. Nutno podotknout, že pokud disk zdetekován sice je, ale jeho velikost se jeví jako nulová, jedná se o poněkud jinou chybu, jejíž opravu lze nalézt mj. na MSFN.

K realizaci je třeba zbastlit (nebo zakoupit) převodník z LVCMOS (3.3V) úrovní na úrovně RS-232 (±15V). Výroba je velmi jednoduchá a neměla by činit problém komukoliv, kdo v životě alespoň něco zapájel.

1. pin konektoru P1 připojíme např. k 5V z PC zdroje (červený drát vedoucí ze zdroje do napájecího konektoru disku – MOLEXu), 2. pin na zem (černý drát na MOLEXu). Konektor J1 připojíme k sériovému portu PC, nemáme-li, budeme muset použít převodník z RS-232 na USB (lze vyrobit např. s FT232). Pin 2 konektoru K1 připojíme na RX pin disku, pin 3 na TX a pin 1 na GND.

Mohu potvrdit, že postup funguje; pokud se budete odkazované kuchařky držet, není se čeho bát – už jsem tak opravil dva 500GB HDD. Rozhodně nikomu neplaťte řádově 10kKč za „obnovení dat“ (i na takové ceny za odstranění této konkrétní chyby jsem na některých českých serverech narazil), dotyčná opravna bude postupovat úplně stejně – maximálně si sežeňte někoho, kdo má k hardwaru trochu blíže a kupte mu flašku.

Další možnost je kontaktovat samotný Seagate, údajně má obnovu dělat bezplatně (ale některé reakce na fórech ukazují na to, že je to skutečně pouze údajně) – jsou-li vám ale vaše data drahá, je lepší si zahrát na doktora sám.

A poučení nakonec? Zálohovat, zálohovat, zálohovat :-)

Sdílet