Před časem zkolaboval můj 500GB disk Seagate Barracuda ES.2. Vše došlo tak daleko, že nebyl detekován biosem. Našel jsem na internetu informaci o možnosti nápravy vzniklé situace. Tyto informace mohou pomoci i u jiných disků z řad 7002.11, pokud symptomy odpovídají.
Nicméně, berte můj návod pouze jako jednu z variant nápravy, vše jsem dělal na vlastní riziko s určitou dávkou znalostí problematiky a proto, pokud si nejste jistí „v kramflecích“, doporučuji přenechat někomu zběhlejšímu, nemohu nést odpovědnost za škody, které by vám mohly vzniknout.
Symptomy
Disk není detekován v biosu anebo jeho kapacita neodpovída fyzickým parametrům. Jedná se o chybu BSY resp. 0 LBA , dle popisu na http://www.msfn.org/board/topic/128807-the-solution-for-seagate-720011-hdds/ odkud jsem mimo jiné čerpal, doporučuji prostudovat.
Co je potřeba?
- 1 vadný disk.
- 1 dobrý disk, ideálně stejné anebo vyšší kapacity. ( doporučeno )
- Převodník RS232 TTL 3.3V, např. kabel Nokia CA-42 + dutinky z audio kabelu
- terminálový program, putty pod win, ekvivalent pod linux
- návod krok za krokem na dobře viditelném místě pro rychlou konzultaci
- Trpělivost
pozn.:
Pokud používáte kabel CA-42 a podobné a pokud není detekován samotný kabel v systému, budete potřeovat baterii 3V. Některé kabely totiž nemají zabudované napájení chipu a proto je potřeba připojit ještě alespoň 3V baterii, optimálně 3.3.
Postup zpřístupnění disku
Příprava kabelu CA-42
[zde bude obrázek, schéma CA-42]
Funkce pinů:
8 – Zem [gnd]
7 – TX
6 – RX
4 – 3,3V
Sháněl jsem konektor z nokie, bezúspěšně, proto nůž, říznout a zkontrolovat funkci jednotlivých vodičů dle konektoru. Kabel řízněte spíš delší, než kratší. Já si nechal místo pro přidání spojovacích konektorů, pokud bych měl někdy nutkátní použít jej pro nějaký kompatibilní mobil.
Na vodiče, které odpovídají pinům 8,7 a 6 přidělejte dutinky z audiokabelu anebo jiné, které je možné zastrčit k pinům pro komunikaci s diskem, vzhledem např. http://www.gme.cz/cz/konpc-spk-pi-p840-004.html. Dutinky tence zaizolujte.
Pokud máte kabel, který není detekován, je možné si ho předinstalovat spojením napájecí baterie 3V, minus na pin 8 (zem) a plus na pin 4 konektoru. Dojde k ativaci obvodů kabelu, nainstaluje se ovladač a vy si zkontrolujete číslo COM portu, na kterém se nachází.
[zde bude obrázek, hotový připravený kabel CA-42]
Doporučuji zapojovat vždy do stejného USB, ať není nutné znovu instalovat ovladače a zjišťovat číslo COM.
Nastavení COM portu
V ideálním případě si kabel předinstalujeme a přednastavíme com port, protože nikdo neví, v jakém stavu disk je a proto se budeme snažit ho co nejméně zatěžovat (trápit). Pokud používáte program, ve kterém je možné parametry nastavit, nemusíte nastavovat ve správci zařízení.
Nastavíme si na něm 38400 bps, 8 datových bitů, bez parity, 1 stop bit, bez řízení toku, zkráceně 38400 8 N 1.
Příprava terminálového programu
Pro komunikaci počítače s vnějším světem často používám putty. Pro naše účely je vhodné si přednastavit parametry portu a uložit si je do profilu.
Pokud máte vše nastaveno uloženo, otestujeme, zda je kabel funkční, zapojíme ho tedy v loopback režimu. Připojíme na něj napájení a spojíme TX a RX. Spustíme terminálový program, zkusíme zmačknout pár znaků na klávesnici, pokud se zobrazují stabilně, máme kabel v pořádku, můžeme rozpojit TX, RX (loopback).
[zde bude obrázek, loopback režim]
Příprava disku
Vezmeme vadný disk a připojíme nenapájený kabel CA-42 k disku. 8 na Zem, RX na TX a TX na RX.
[zde bude obrázek, piny pro komunikaci s diskem]
Komunikace s diskem a náprava
U mě se vyskytla chyba BSY, kdy nebyl disk detekován.
Disk položte tištěným spojem vzhůru. Kabel máme připojený k disku a k počítači, ovladače má nainstalované a je nakonfigurován a napájen. K disku připojíme napájení, nepřipojujeme datový kabel. Zapneme putty a spustíme uložený profil.
Pro přístup k terminálu disku používejte CTRL+z.
Pokud máte disk v režimu BSY, mělo by se na obrazovce jednou za pár vteřin zobrazit něco ve smyslu LED: 000000CC…., bude nutné odblokovat terminál disku, protože je aktivní mezi těmito výpisy přiliš krátkou dobu.
[zde bude obrázek, piny pro odblokování terminálu]
Odblokování terminálu disku
Mačkejte CTRL+z, dokud se nezobrazí příkazová řádka terminálu F3 T> a zkuste co nejdříve spojit vyznačené body na pcb a chvíli držte, terminál by se měl odblokovat, pokud ne anebo se znovu zobrazí LED: 000…., opakujte akci (trpělivost, zkoušel jsem asi 10x, než se povedlo).
V odblokovaném terminálu pro jistotu zastavte motor disku F3 T>“/2“ a F3 2>“Z„, dojde k potvrzení zastavení Spin Down Complete a my můžeme pokračovat. F3 2>“U„, dojde k potvrzení roztočení ploten Spin Up Complete
Přikazy vedoucí ke sprovoznění disku
Nejdřív smažeme smart: F3 T>“/1“ a F3 1>“N1„
Nyní odpojíme napájení kabelu a pak disku a po zastavení znovu připojíme disk a pak kabel v určeném pořadi. Znovu spustíme terminál (putty – restart)
Aktivujeme terminál CTRL+z a pomocí příkazu F3 T>“m0,2,2,0,0,0,0,22“ necháme přeformátovat jednu ze speciálních partition v disku. Počkáme na informaci o dokončení formátování. Akce může trvat minutu.
Vypneme disk.
Klonování selhávajícího disku
Vše špatně, znovu a lépe
Až u tohodle problému jsem si uvědomil, jak špatně jsem postupoval při pokusu o záchranu dat ze selhávajících disků. Bohužel i můj disk selhává a má nečitelné sektory. Zkoušel jsem kopírovat soubory přímo z vadného disku a to je chyba. Navíc jsem disk nechladil.
Jak tedy postupovat správně? Věřím, že svoje amatérské podmínky časem ještě zlepším, ale do začátku alespoň.
- Vadný disk chladit, ideálně teplovodivá podložka a ofukování větrákem. Disk se totiž může zahřívat až přehřívat a to může urychlit jeho zkázu a ztížit záchranu dat. Taky doporučuju mít ho v poloze, která je pro něj vhodná. Nevím, zda se dělají disky, které se doporučuje používat jinak, než naležato a pcb dolů?
- Nepokoušejte se ze selhávajícího disku data dolovat přímo. Použijte software, který se pokusí disk naklonovat jinam, na zdravý a z něj pak bez problému zachráníte, co zachránit lze.
- V ideálních podmínkách to chce ještě úsporný počítač, kvůli energii a záložní zdroj, kvůli výpadkům proudu, abychom popřípadě stihli přerušit klonování včas.
Klonování může trvat několik hodin ale i několik týdnů, proto se obrňte trpělivostí, manželky a přítelkyně pošlete na dovolenou.
Postup klonování
Klonování provádím v linuxu, pomáhá mi v tom neocenitelný ddrescue.
Připojíme zdravý disk, na který budeme klonovat /dev/sdb a vadný disk /dev/sda. Zařízení sda a sdb nemusí odpovídat vaší konfiguraci, proto raději vždy zkontrolujte.
Pro jistotu pomocí hdparm odstavíme read write cache vadného disku, zapneme režim readonly, a vypneme defect management, pokud to jde, nakonec ještě vypneme smart pomocí smartctl
hdparm -W0 -A0 -r1 -D0 /dev/sda
smartctl -s off /dev/sda
Klonování provedeme ve dvou krocích. V 1. zkopírujeme co nejlépe přístupná místa disku. Ve 2. několika průchody zkusíme vydolovat zbytek dat.
V 1. kroku klonování spustíme příkazem „ddrescue -n /dev/sda /dev/sdb sda.log„, -n (–no-split, pomůže v rychlosti, nebude dlouho otálet u problémových míst)
V případě, že při klonování narazí program na vadné sektory, zpomalí, stávalo se mi, že se nevracel k původni rychlosit čtění v oblastech, které byly vpořádku, proto jsem použil parametr -d (–direct), kterým ddrescue přistupuje přímo k disku, čtení je sice o něco pomalejší, ale rychlost se vrací zpět do původních hodnot.
Na disku se při prvním průchodu ukázalo ke konci 200MB vadných dat, ddrescue pak jeste znovu projížděl problémová místa a povedlo se mu ihned vydolovat dalších 50MB.
Ve 2. kroku spustíme „ddrescue -r3 /dev/sda /dev/sdb sda.log“ doporučuju -d a opět spoustu trpělivosti -r –retry, uvádí počet pokusů o přečtení.
Závěrem
Vzhledem k tomu, že většina neobnovených dat ležela na začátku disku a obnovit by se podařilo možná už jen mizivému množství dat za cenu několika dnů, rozhodl jsem se přerušit 2. krok a zkusit disk zapojit.
Původní disk byl v RAID0, naštěstí byla metadata zachována a klon disku bylo možné v raidu provozovat. Bohužel jsem si poškodil prvnímy mamlas pokusy o obnovu dat NTFS partitice a tak muselo dojít na jejich opravu.
Nechal jsem Windows, ať si to udělá sám, povedlo se mu vydolovat asi většinu, sice budu muset ještě hodně třídit, ale mám alespoň něco. Lepší, než drátem do voka, jak říká klasik.
Něco málo k rybám v rybníce. Kdybych se byl býval nesnažil s vadným diskem na začátku pracovat a ihned ho naklonoval, mohl jsem mít velkou šanci provozovat původní raid s klonem. Teď si musím vytvořit vše od píky a trávit několik hodin recyklováním odpadu.
Problémy, na které jsem narazil
- špatná volba dobrého disku, měl zhruba o 2000 sektorů méně, než vadný, nešlo dokončit. Naštěstí byl po ruce disk s totožnou geometrií a počtem sektorů, příkazem „dd if=/dev/sdb of=dev/sdc bs=1M conv=sync,noerror“ jsem naklonoval kopii na sdc, ddrescue pak pokračoval z sda na sdc úspěšně do konce disku, samozřejmostí je použití původního logu ( „ddrescue -n /dev/sda /dev/sdc sda.log“ ).
u disku s menším počtem sektorů jsem později narazil na HPA (Host Protected Area), a díky skvělému nástroji HDAT2, z http://www.hdat2.com/, jsem měl možnost nastavit znovu maximální kapacitu. Otázkou je, proč tam bylo to HPA nastavené? - nefunkční RS232TTL převodníky, loopback test fungoval, spojení nikoliv, záhada anebo problém napájení (nejsem el guru :-))
Co s volným časem?
To nechám na vás, já zkoukl pár dílů MacGyvera, mrknul na net, přečetl poštu, byl venku a spal.
Seznam odkazů, ze kterých jsem čerpal
http://www.msfn.org/board/topic/128807-the-solution-for-seagate-720011-hdds/
https://sites.google.com/site/seagatefix/