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