Re: Odemčení zamčeného HDD

Petr Labaj labaj na volny.cz
Pátek Srpen 13 23:05:44 CEST 2021


Omlouvám se, že odpovídám trochu se zpožděním. Byl jsem celý den mimo 
internet.

Děkuji všem, kteří napsali.

Disky (všechny čtyři) jsem zkoušel na různých strojích, pod různými 
operačními systémy.
Nikde je systém nevidí. A nevidí je už ani BIOS.
Co jsem nezkoušel, to je strčit je do nějaké "krabičky" typu NAS. Tedy 
do zařízení, které na to možná jde jinak než běžné PC.
Sice nějaký NAS mám, ale jen 1-diskový. A tam je výměna disku dost 
složitá, protože přímo na tom disku je operační systém toho NASu.

Teoreticky by to mohlo být i nějakým upraveným firmware. Ale disk hlásí 
verzi firmware stejnou, jako je oficiální. A to jak ta, co na disku 
původně byla (verze je na samolepce), ale i stejnou, jako má Seagate na 
svém webu.

Pokusy pod operačním systémem jsem dělal na Linuxu. Jednak je tam pro 
asi výrazně lepší podpora než na Windows. A hlavně testovacích Linuxů 
mám spoustu. Takže i kdybych přitom náhodou poškodil systém na 
systémovém disku, tak se nic neděje. Windows mám jenom jedny.

Běžný systém ty disky nevidí vůbec. Takže třeba program "fstab" se diví, 
co něm vůbec chcu, že takový disk neexistuje.

Známý program "hdparm", který umí s disky pracovat na nízké úrovni, už 
se s tím trochu popasuje.
Třeba výpis parametrů vypadá takhle:

****************************

root na lcnc2:~# hdparm -I /dev/sdb

Security:
         Master password revision code = 7483
                 supported
                 enabled
--->          locked       <---
         not     frozen
         not     expired: security count
                 supported: enhanced erase
         Security level high
         42min for SECURITY ERASE UNIT. 42min for ENHANCED SECURITY 
ERASE UNIT.
Logical Unit WWN Device Identifier: 5000c50045301fcf
         NAA             : 5
         IEEE OUI        : 000c50
         Unique ID       : 045301fcf
Checksum: correct

****************************

Podle mě hlavní problém je v tom "locked", které jsem označil šipkama 
(ty jsem tam dopsal já ručně).

Jakýkoli pokus o odstranění hesla a výmaz disku ale skončí takhle:

****************************

root na lcnc2:~# hdparm --user-master u --security-unlock NULL /dev/sdb
security_password: ""

/dev/sdb:
  Issuing SECURITY_UNLOCK command, password="", user=user
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 04 51 40 
00 21 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

****************************

A to ať dám unlock, erase, enhanced erase, prostě cokoli.

Tak jsem na to šel přes tu systémovou konzolu.
Byl tady na ní dotaz, tak třeba jeden odkaz s obrázkama:
https://wizzardprang.wordpress.com/2015/02/09/seagate-hdd-fixed/
a pak důležitý odkaz na popis (některých) parametrů:
https://www.data-medics.com/forum/seagate-f3-terminal-command-set-t901.html

V principu jde o to, že každý disk Seagate (SATA, ale i PATA) má zezadu 
u konektorů 4 piny, na kterých je vytažený systémový sériový port - konzola.
Na internetu jsou ty signály popsané občas zmatečně, protože lidi bez 
zkušeností se sériovými porty mají problém s tím, že co je na jedné 
straně Tx je na druhé straně Rx.
Takže správně je to tak, že 1. pin vedle SATA sběrnice je Rx disku, tady 
disk přijímá data. Další je jeho Tx, třetí je pak GND. Čtvrtý se nepoužívá.
Chce to třeba nějaký USB/serial převodník, ideálně s výstupními úrovněmi 
3.3V.
Nastavení komunikace je 38400 bps, 8 bit, bez parity, bez řízení toku dat.
Dá se to připojit buď při vypnutím disku, ale klidně i za chodu.

No a tady ten můj disk komunikuje jako by se nechumelilo. Všechno běží 
podle očekávání. Dá se přistupovat jak k datům, tak modifikovat třeba 
P-list, G-list nebo T-list, manipulovat se SMART tabulkou, dělat různé 
testy atd. Umí to i změřit nejen teplotu disku, ale třeba i odpor hlavy 
a nevýváženost ploten. Prostě diagnostický nástroj jako víno.
Zkusil jsem vymazat záznamy ze SMARTu, přegenerovat mapování sektorů 
LBA, inicializovat kde co. Pak jsem pustil i formátování disku, což asi 
skutečně poctivě zapisovalo všechny sektory, protože to formátování 
trvalo 73 minut.
Nicméně příznak "locked" tím nezmizel.
Ta konzola ho určitě musí umět rušit. Je to fakt mocný nástroj. Jen 
vědět tam tím kladívkem klepnout.

To úsilí za to opravdu asi nestojí. Zvlášť u takto starých disků. Ale 
možná to znáte - začnete s tím, že to bude jen krátký pokus. Pak se do 
toho zaberete a řeknete si, že přece nad vámi ta mašina nezvítězí. Tak 
zkoušíte to a ono. A v tu chvíli zazvoní budík, že kdybyste spal, tak 
byste měl vstávat do práce.
Ale asi toho nelituju. Hodně jsem se přitom o problematice naučil.

Ještě poznámka, na co tolik disků potřebuju: moje hlavní hobby je CNC a 
řízení procesů. No a to je (pokud se to dělá na PC) hard-real-time. 
Takže to znamená třeba i upravené drivery (zrovna teď upravuju driver 
pro síťovku RTL8139, modifikuju ho na speciální verzi pro EtherCAT do 
jádra řady 5). A tady je "spotřeba" systémů dost velká. Takže na každém 
tom disku je nějak jinak rozdrbaný Linux, případně jeho jiná verze.
Protože to je hard-real-time, tak to není moc na nějakou virtualizaci. 
Tam by asi člověk víc řešil, jestli když něco nejede, tak jestli za to 
může jeho nový driver, nebo špatné časování ve virtuálu. Možná by to 
někdo zvládal, já ale nejsem moc virtual-kompatibilní.
Co by asi šlo je multiboot. A to zatím skoro nepoužívám. Zřejmě budu 
muset začít.

Ještě jednou díky všem.
Samozřejmě i těm, co napsali mimo konferenci.

Petr Labaj



Další informace o konferenci Hw-list