Niektóre dyski twarde wyposażone są w interfejs szeregowy wyprowadzony na piny obok złącza SATA. Podstawowe informacje można znaleźć w temacie: FAQ HDD Seagate i Samsung plus terminal - krótki opis. Komunikacja z dyskiem przez interfejs UART zwykle wykorzystywana jest do diagnostyki awarii lub w niektórych przypadkach do usuwania uszkodzenia (np. popularny kiedyś problem z ST3500320AS). Złącze na którym może być dostępny interfejs szeregowy kiedyś wykorzystywane było do zapewnienia zgodności dysków SATA II z SATA I:

Do połączenia z dyskiem potrzebny będzie konwerter USB<->UART 3.3V (obecnie popularny m.in ze względu na Arduino). Pin TX HDD możemy odnaleźć eksperymentalnie, sprawdzając kolejne piny i oczekując pojawienia się transmisji podczas startu dysku. Pin RX HDD można również ustalić eksperymentalnie, dla bezpieczeństwa włączając w linię TX konwertera rezystor 1kΩ. Prędkość transmisji zwykle wynosi 9600 lub 38400 lub 57600b/s.
Interfejs diagnostyczny można znaleźć także w starych dyskach PATA:
Niektóre komendy wysyłane do dysku mogą uszkodzić dane lub dysk, dlatego warto przeprowadzić próby ze zbędnym dyskiem twardym.
Seagate:
Podczas startu HDD Seagate zwykle zobaczymy krótki log np.:
W przypadku HDD Seagate możemy rozpocząć od wysłania Ctrl+z,
następnie możemy przełączać się po między poziomami poleceń wprowadzając "/numer_poziomu" i enter np. /2 poziom drugi.
Dostępne są też komendy niezależne od poziomu np. "." aktualny status HDD.
Przykładowo na poziomie 2 (/2), możemy wydać polecenia:
Z - zatrzymanie wirowania dysku
U - uruchomienie wirowania dysku
i - uszkodzenia na aktualnej ścieżce
itp.
Na poziomie 3 wydanie polecenia:
b - zaparkuje na chwile głowice
D - wykona test szybkości dostępu ( w trybie random)
ale np. na poziomie 7 wydanie tego samego polecenia oznacza co innego:
D - wyświetla temperaturę
Pełny wykaz poleceń otrzymamy na poziomie C (/C) wydając polecenie:
Q - informacje o komendach ASCII
Dla badanego dysku otrzymałem całkiem pokaźny zestaw poleceń:
Tutaj: informacje o komendach terminala HDD Seagate.
Znajdziemy tam dość egzotyczne komendy np. wykonanie testu mechanizmu pozycjonowania głowicy i wyświetlenie danych do wykresu Bodego...
Sprawne dyski Seagate przy starcie nie są zbyt "gadatliwe" zwykle uzyskujemy informacje o poprawnym starcie, ew. dane o firmware lub modelu dysku, ilości pamięci, w przypadku dysków PATA o konfiguracji zworek. Czasami pojawia się informacja o dacie kompilacji firmware a czasami o autorze oprogramowania.
Tutaj: więcej informacji o próbach dostępu do systemu "operacyjnego" HDD Samsung, oraz kontynuacja Link.
Samsung:
HDD Samsung podczas startu są bardziej "gadatliwe", otrzymujemy informacje o napięciu zasilającym, temperaturze prędkości obrotowej, wynikach testów, parametrach dysku, np.:
Z trybu ENG> do trybu DBG> przełączamy się przyciskiem Esc, do ENG> wracamy komendą GO.
Dostępne komendy uzyskujemy wpisując:
HE
Ogólnodostępna dokumentacja komend jest słabsza dla dysków HDD Samsung niż dla HDD Seagate, przykładowo:
RT - reset, ponowne uruchomienie
LB - informacje o HDD
DV - informacje o firmware
LL - prawdopodobnie sektory oczekujące na przeniesienie / uszkodzone
Sprawdzanie kolejnych komend bez ich dokładnej znajomości może skutkować uszkodzeniem dysku (np. FE - to może być np. flash erase...).
Dlaczego sprawdziłem ten sposób komunikacji z HDD?
Taki sposób komunikacji z dyskiem stosuje się zwykle gdy wystąpił jakiś problem z HDD. Mam dwie maszyny gdzie nie mogę odczytywać SMART dysków. W jednym przypadku HDD pracują w prostym RAID1 obsługiwanym przez kontroler płyty głównej, w drugim przypadku HDD ukryty jest za kontrolerem realizującym Intel® Smart Response. Komunikację po UART z dyskiem chciałem wykorzystać do ciągłego monitoringu stanu dysku (zamiast S.M.A.R.T). Niestety w obu przypadkach były to dyski WD, które najprawdopodobniej nie miały wyprowadzonych linii UART na złącze obok złącza SATA.
Do połączenia z dyskiem potrzebny będzie konwerter USB<->UART 3.3V (obecnie popularny m.in ze względu na Arduino). Pin TX HDD możemy odnaleźć eksperymentalnie, sprawdzając kolejne piny i oczekując pojawienia się transmisji podczas startu dysku. Pin RX HDD można również ustalić eksperymentalnie, dla bezpieczeństwa włączając w linię TX konwertera rezystor 1kΩ. Prędkość transmisji zwykle wynosi 9600 lub 38400 lub 57600b/s.
Interfejs diagnostyczny można znaleźć także w starych dyskach PATA:
Niektóre komendy wysyłane do dysku mogą uszkodzić dane lub dysk, dlatego warto przeprowadzić próby ze zbędnym dyskiem twardym.
Seagate:
Podczas startu HDD Seagate zwykle zobaczymy krótki log np.:
Kod: Text
W przypadku HDD Seagate możemy rozpocząć od wysłania Ctrl+z,
następnie możemy przełączać się po między poziomami poleceń wprowadzając "/numer_poziomu" i enter np. /2 poziom drugi.
Dostępne są też komendy niezależne od poziomu np. "." aktualny status HDD.
Przykładowo na poziomie 2 (/2), możemy wydać polecenia:
Z - zatrzymanie wirowania dysku
U - uruchomienie wirowania dysku
i - uszkodzenia na aktualnej ścieżce
itp.
Na poziomie 3 wydanie polecenia:
b - zaparkuje na chwile głowice
D - wykona test szybkości dostępu ( w trybie random)
ale np. na poziomie 7 wydanie tego samego polecenia oznacza co innego:
D - wyświetla temperaturę
Pełny wykaz poleceń otrzymamy na poziomie C (/C) wydając polecenie:
Q - informacje o komendach ASCII
Dla badanego dysku otrzymałem całkiem pokaźny zestaw poleceń:
Kod: Text
Tutaj: informacje o komendach terminala HDD Seagate.
Znajdziemy tam dość egzotyczne komendy np. wykonanie testu mechanizmu pozycjonowania głowicy i wyświetlenie danych do wykresu Bodego...
Sprawne dyski Seagate przy starcie nie są zbyt "gadatliwe" zwykle uzyskujemy informacje o poprawnym starcie, ew. dane o firmware lub modelu dysku, ilości pamięci, w przypadku dysków PATA o konfiguracji zworek. Czasami pojawia się informacja o dacie kompilacji firmware a czasami o autorze oprogramowania.
Tutaj: więcej informacji o próbach dostępu do systemu "operacyjnego" HDD Samsung, oraz kontynuacja Link.
Samsung:
HDD Samsung podczas startu są bardziej "gadatliwe", otrzymujemy informacje o napięciu zasilającym, temperaturze prędkości obrotowej, wynikach testów, parametrach dysku, np.:
Kod: Text
Z trybu ENG> do trybu DBG> przełączamy się przyciskiem Esc, do ENG> wracamy komendą GO.
Dostępne komendy uzyskujemy wpisując:
HE
Kod: Text
Ogólnodostępna dokumentacja komend jest słabsza dla dysków HDD Samsung niż dla HDD Seagate, przykładowo:
RT - reset, ponowne uruchomienie
LB - informacje o HDD
DV - informacje o firmware
LL - prawdopodobnie sektory oczekujące na przeniesienie / uszkodzone
Sprawdzanie kolejnych komend bez ich dokładnej znajomości może skutkować uszkodzeniem dysku (np. FE - to może być np. flash erase...).
Dlaczego sprawdziłem ten sposób komunikacji z HDD?
Taki sposób komunikacji z dyskiem stosuje się zwykle gdy wystąpił jakiś problem z HDD. Mam dwie maszyny gdzie nie mogę odczytywać SMART dysków. W jednym przypadku HDD pracują w prostym RAID1 obsługiwanym przez kontroler płyty głównej, w drugim przypadku HDD ukryty jest za kontrolerem realizującym Intel® Smart Response. Komunikację po UART z dyskiem chciałem wykorzystać do ciągłego monitoringu stanu dysku (zamiast S.M.A.R.T). Niestety w obu przypadkach były to dyski WD, które najprawdopodobniej nie miały wyprowadzonych linii UART na złącze obok złącza SATA.
Fajne? Ranking DIY