HDPARM(8)

NAZWA
hdparm - pobierz/ustaw parametry dysku twardego

SKŁADNIA
hdparm [ opcje ] [urządzenie] ..

OPIS
hdparm daje interfejs linii poleceń do różnych ioctli dysków twardych obsługiwanych przez podsystem sterownika ATA/IDE. Niektóre opcje mogą działać prawidłowo tylko z najnowszymi jądrami. Aby uzyskać najlepsze wyniki, należy skompilować hdparm z plikami naglówkowymi pochodzącymi ze źródeł najnowszego jądra.

OPCJE
Bez opcji, zakłada się acdgkmnru.

-a  Pobierz/ustaw wskaźnik odczytu z wyprzedzeniem (read-ahead) systemu plików. Jest to używane do zwiększania wydajności w sekwencyjnych odczytach dużych plików poprzez pobieranie dodatkowych bloków, w nadziei, że będą potrzebne danemu zadaniu. W obecnej wersji jądra (2.0.10) domyślnym ustawieniem tej opcji jest 8 sektorów (4KB). Wartość ta wydaje się być dobra dla większości zastosowań, lecz w systemach, gdzie w większości używa się losowych repozycjowań plikowych, ustawienie mniejszej wartości może zapewnić lepszą wydajność. Poza tym, wiele sterowników IDE ma także wbudowane oddzielne funkcje tego typu, które w wielu sytuacjach niwelują potrzebę odczytu z wyprzedzeniem przez system plików.

-A  Włącz/wyłącz właściwość odczytu wyprzedzającego (read-lookahead) napędu IDE (zwykle domyślnie ON -- włączoną).

-b  Pobierz/ustaw stan magistrali.

-B  Ustaw właściwości Zaawansowanego Zarzaądzania Energią (APM), o ile napęd posiada wspomaganie dla niej. Mała wartość oznacza agresywne zarządzanie energią, a duża lepszą wydajność. Wartość 255 wyłączy zarządzanie energią na tym dysku.

-c  Zapytaj/włącz obsługę 32-bitowego I/O w (E)IDE. Można użyć numerycznego parametru włączającego/wyłączającego obsługę: Obecnie obsługiwane wartości zawierają 0 dla wyłączenia obsługi 32-bitowego I/O, 1 dla włączenia 32-bitowej transmisji danych, 3 dla włączenia 32-bitowej transmisji danych ze specjalną sekwencją sync wymaganą przez wiele chipsetów. Wartość 3 działa z prawie wszystkimi 32-bitowymi chipsetami IDE, lecz naraża na dodatkowe koszty. Zauważ, że "32-bit" odnosi się do transmisji poprzez magistralę PCI lub VLB, ale tylko do karty interfejsu; wszystkie napędy (E)IDE mają wciąż tylko 16-bitowe połączenie z kartą interfejsu.

-C  Sprawdź obecny stan trybu zasilania IDE. Jest on zawsze jednym z unknown (dysk nie obsługuje tego polecenia), active/idle (normalne działanie), standby (tryb oszczędzania energii, dysk się zatrzymał), lub sleeping (najniższy tryb oszczędzania energii, dysk jest całkowicie wyłączony). Za pomocą opcji -S, -y, -Y, i -Z można manipulować trybami zasilania IDE.

-d  Włącz/wyłącz flagę "using_dma" (używający DMA) dla tego napędu. Opcja ta działa tylko z kilkoma kombinacjami napędów i interfejsów, które obsługują DMA, i które są znane sterownikowi IDE. Dobrym pomysłem jest również użycie odpowiedniej opcji -X w połączeniu z -d1 aby zapewnić, że sam napęd jest zaprogramowany odpowiedni tryb DMA, choć wiele BIOSów powinno zrobić to za ciebie podczas uruchamiania komputera. Używanie DMA prawie zawsze powoduje zwiększenie wydajności i przepustowości oraz zmniejsza zużycie procesora. Lecz jest co najmniej kilka zestawień chipsetów i dysków, dla których użycie DMA nie zrobi większej różnicy, lub nawet spowolni dysk (na naprawdę spapranym sprzęcie). Ale to zależy.

-D  Wyłącz/włącz wbudowaną w dnapęd właściwość zarządzania uszkodzeniami, za pomocą której jego firmware próbuje automatycznie zarządzać uszkodzonymi sektorami, przenosząc je na sektory "zapasowe", zarezerwowane fabrycznie do tego celu.

-E  Ustaw szybkość cdrom-u. NIE jest to konieczne do normalnego działania, gdyż napęd automatycznie sam przełącza prędkości. Jednak jeśli chcesz się nim bawić, podaj po tej opcji wartość szybkości, zwykle liczbę taką jak 2 lub 4.

-f  Synchronizuj (sync) i wypróżniaj (flush) bufory podręczne urządzenia przy wyjściu. Operacja ta jest również wykonywana jako część pomiarów -t i -T.

-g  Pokaż geometrię dysku (cylindry, głowice, sektory), rozmiar (w sektorach), a także przesunięcie (w sektorach) początku urządzenia, poczynając od początku napędu.

-h  Pokaż krótką informację o użyciu (pomoc).

-i  Pokaż informacje identyfikacyjne, które zostały pobrane z napędu podczas startu, o ile są one dostępne. Jest to właściwość nowoczesnych napędów IDE i może nie być obsługiwana przez starsze urządzenia. Zwracane dane mogą nie być aktualne, zależnie od czynności wykonanych po uruchomieniu systemu. Pomimo tego, pokazywana jest zawsze bieżąca wartość trybu operacji wielosektorowych (multiple sector mode count). Dla dokładniejszej interpretacji informacji identyfikacyjnych, odsyłamy do AT Attachment Interface for Disk Drives (ANSI ASC X3T9.2 working draft, revision 4a, April 19/93).

-I  Żądaj informacji identyfikacji bezpośrednio od napędu. Informacja jest wyświetlana w nowym, rozszerzonym formacie z większą ilością szczegółów, niż przy starszej opcji -i. Dostępna jest także specjalna odmiana tej opcji "bez pasów bezpieczeństwa" -Istdin, która nie może być używana z żadną inną opcją. Dzięki niej blok identyfikacyjny dysku będzie pobrany ze standardowego wejścia zamiast używania parametru /dev/hd*. Format tego bloku musi być dokładnie taki sam jak w "plikach" /proc/ide/*/hd*/identify. Ta odmiana jest przeznaczona do użytku z "bibliotekami" informacji identyfikacyjnych dysku, oraz z dyskami ATAPI, dla których standardowe mechanizmy mogą działać błędnie.

-k  Pobierz/ustaw flagę keep_settings_over_reset (zachowaj ustawienia po resecie). Gdy ta flaga jest ustawiona, sterownik będzie chronił opcje -dmu po miękkim resecie. Flaga ta domyślnie jest wyłączona, aby uchronić napęd przed pętlami resetowań, które mogłyby być spowodowane kommbinacjami ustawień -dmu Opcja -k powinna więc być ustawiana tylko gdy jesteś przekonany, że to co robisz jest dobre. Praktycznie, wszystko co trzeba zrobić aby przetestować konfigurację (przed użyciem -k) to sprawdzenie czy napęd daje się odczytać/zapisać i czy proces nie generuje błędów w logach (komunikaty jądra) (w większości systemów zajrzyj do /var/adm/messages).

-K  Ustaw flagę keep_features_over_reset (zachowaj właściwości po resecie). Jej ustawienie powoduje, że napęd odzyskuje po miękkim resecie ustawienia dla -APSWXZ. Nie wszystkie napędy wspierają tę właściwość.

-L  Ustaw flagę blokowania drzwiczek (doorlock flag). Wartość 1 spowoduje zablokowanie drzwiczek niektórych wymiennych dysków twardych (np. Syquest, ZIP, Jazz...). Z kolei wartość 0 spowoduje odblokowanie drzwiczek. Normalnie Linux automatycznie zarządza mechanizmem blokowania drzwiczek, w zależności od eksploatacji dysku (zablokowane, gdy system plików jest zamontowany). Lecz podczas zamykania systemu może być to uciążliwe, gdy główna partycja znajduje się na dysku wymiennym, gdyż partycja ta pozostaje zamontowana (w trybie tylko-do-odczytu) po zamknięciu systemu. Dzięki użyciu tej opcji po przemontowaniu głównego systemu plików w trybie tylko-do-odczytu możliwe jest wyjęcie kasety ze stacji po zamknięciu systemu.

-m  Pobierz/ustaw licznik sektorów dla wielosektorowego I/O w napędzie. Ustawienie 0 wyłącza tę właściwość. Tryb ten (inaczej znany jako IDE Block Mode) jest właściwością większości nowoczesnych dysków twardych IDE, zezwalającą na transfer wielu sektorów na przerwanie I/O, w przeciwieństwie do tradycyjnego jednego sektora. Gdy włączona jest ta właściwość, zazwyczaj obciążenie I/O przez system zmniejsza się o 30-50%. W wielu systemach powoduje to także zwiększenie przepływu danych o 5% do 50%. Mimo to, niektóre napędy (najbardziej zauważalnie seria WD Caviar), wydają się działać wolniej w tym trybie. Różnie to jednak bywa. Większość napędów wspiera minimalny zestaw ustawień obejmujący 2, 4, 8 i 16 (sektorów). Dla niektórych dysków możliwe są także większe wartości. Ustawienie 16 lub 32 wydaje się optymalnym dla wielu systemów. Western Digital zaleca niższe ustawienia od 4 do 8 na wielu z ich dysków, a to z powodu małych (32KB) buforów w napędach i niezoptymalizowanych algorytmów buforowania. Opcja -i może służyć do znajdywania maksymalnej wspieranej wartości zainstalowanego napędu (szukaj MaxMultSect na wyjściu). Niektóre napędy twierdzą, że wspierają ten tryb, lecz tracą dane przy niektórych ustawieniach. W rzadkich wypadkach, takie błędy mogą spowodować poważne uszkodzenie systemu plików.

-M  Pobierz/ustaw wartość Automatycznego Zarządzania Głośnością (Automatic Acoustic Management - AAM). Większość nowych dysków ma możliwość zwolnienia obrotów głowicy aby zredukować poziom hałasu. Wartości mogą być z przedziału od 0 do 254. 128 jest najcichszym (a zatem najwolniejszym) ustawieniem, a 254 najszybszym (i najgłośniejszym). Niektóre dyski mają tylko dwa poziomy (cichy / szybki), a inne mogą przyjmować wszystkie wartości od 128 do 254. TA OPCJA JEST EKSPERYMANTALNA I NIEZBYT DOBRZE PRZETESTOWANA. UŻYWASZ JEJ NA WŁASNE RYZYKO.

-n  Pobierz lub ustaw flagę "ignore write errors" (ignoruj błędy zapisu) w sterowniku. NIE baw się tym bez uprzedniego zapoznania się z kodem źródłowym sterownika.

-p  Próba przeprogramowania chipsetu interfejsu IDE na określony tryb PIO, lub próba automatycznego dostosowania się do "najlepszego" trybu PIO wspieranego przez napęd. Właściwość ta jest wspierana w jądrze tylko dla kilku "znanych" chipsetów. Niektóre chipsety IDE nie są w stanie zmienić trybu PIO dla pojedynczego napędu; wówczas opcja ta może spowodować ustawienie trybu PIO dla obydwu napędów. Wiele chipsetów IDE wspiera albo mniej, albo więcej niż standardowe 6 (od 0 do 5) trybów PIO, więc dokładne ustawienie szybkości, które właściwie jest zaimplementowane, będzie różnić się zależnie od wyrafinowania chipsetu/sterownika. Używaj z wielką ostrożnością! Właściwość ta nie chroni przed nierozwagą, a niepomyślne działanie może spowodować poważne uszkodzenie systemu plików!

-P  Ustaw maksymalny licznik sektorów dla wewnętrznych mechanizmów preodczytu napędu. Nie wszystkie napędy wspierają tę właściwość.

-q  Obsłuż następną opcję cicho, nie wydając komunikatów na wyjście. Jest to przydatne do zmniejszenia zamieszania na ekranie w wypadku uruchamiania z /etc/rc.c/rc.local. Nie można stosować do opcji -i, -v, -t, oraz -T.

-Q  Ustaw głębokość tagowanej kolejki (tagged queue) (1 lub większą), lub wyłącz kolejkowanie (0). Działa to tylko z nowszymi jądrami serii 2.5.xx (lub późniejszych serii) i tylko z niektórymi, aktualnie wspierającymi tę funkcję sterownikami.

-r  Pobierz/ustaw flagę read-only (tylko do odczytu) urządzenia. Gdy jest ustawiona, operacje zapisu nie są na tym urządzeniu dozwolone.

-R  Zarejestruj interfejs IDE. Niebezpieczne. Zobacz opis opcji -U aby zdobyć więcej informacji.

-S  Ustaw timeout standby dla napędu. Wartość ta jest używana przez napęd w celu uzyskania informacji o tym, jak długo oczekiwać (bez aktywności dyskowych) przed wyłączeniem silnika w celach oszczędności mocy. W takich warunkach, dysk może potrzebować do 30 sekund aby odpowiedzieć na nagłe odwołanie, choć większość napędów robi to znacznie szybciej. Wartość 0 oznacza wyłączenie tej właściwości. Wartości od 1 do 240 określają wielokrotności 5 sekund, czyli dają timeouty od 5 sekund do 20 minut. Wartości od 241 do 251 okreslają 1 do 11 jednostek po 30 minut dla timeoutów od 30 minut do 5.5 godzin. Wartość 252 oznacza timeout 21 minut, 253 ustawia timeout zdefiniowany przez dostawcę, a 255 jest interpretowane jako 21 minut plus 15 sekund.

-T  Dokonuj pomiarów czasu odczytów z cache dla celów porównawczych i testów wydajnościowych. Aby uzyskać miarodajne wyniki, operacja ta powinna być powtarzana 2-3 razy na nieaktywnym pod innymi względami systemie (bez innych aktywnych procesów) z przynajmniej kilkoma megabajtami wolnej pamięci. Wyświetlana jest szybkość odczytu bezpośrednio z linuksowych buforów cache, bez dostępu do dysku. Wartość ta jest wskaźnikiem przepływu danych między procesorem, cache i pamięcią systemu. Jeśli podano również opcję -t, to wynik zgłaszany przez operację -t zostanie zmodyfikowany o czynnik korygujący oparty na wyniku -T.

-t  Dokonuj pomiarów czasu odczytów z urządzenia dla celów porównawczych i testów wydajnościowych. Aby uzyskać miarodajne wyniki, operacja ta powinna być powtarzana 2-3 razy na nieaktywnym pod innymi względami systemie (bez innych aktywnych procesów) z przynajmniej kilkoma megabajtami wolnej pamięci. Wyświetlana jest szybkość odczytu poprzez bufory cache z dysku, bez wcześniejszego cache'owania danych. Wartość ta jest miarą szybkości, z jaką napęd jest w stanie obsługiwać liniowe odczyty danych pod Linuksem bez obciążenia związanego z systemem plików. Aby zapewnić dokładne pomiary, cache jest opróżniany za pomocą ioctl BLKFLSBUF. Jeśli podano również opcję -T, to wynik zgłaszany przez operację -t zostanie zmodyfikowany o czynnik korygujący oparty na wyniku -T.

-u  Pobierz/ustaw flagę interrupt-unmask napędu. Ustawienie 1 zezwala sterownikowi na niemaskowanie innych przerwań podczas przetwarzania przerwania dyskowego, co w znaczącym stopniu zmniejsza czas reakcji na Linuksa na polecenia użytkownika i eliminuje błędy "serial port overrun". Używając tej opcji nleży zachować ostrożność: niektóre kombinacje napędu/kontrolera nie radzą sobie dobrze z tą właściwością, co może spowodować poważne uszkodzenie systemu plików. Praktycznie, interfejsy CMD-640B i RZ1000 (E)IDE mogą być niestabilne (z powodu usterek sprzętowych) gdy opcja ta jest używana z wersjami jądra wcześniejszymi niż 2.0.13. Wyłączenie właściwości IDE prefetch tych interfejsów (zwykle ustawienie BIOS/CMOS) daje bezpieczne rozwiązanie tego problemu dla wcześniejszych jąder.

-U  Wyrejestruj interfejs IDE. Niebezpieczne. Do użycia wraz z opcją -R. Dedykowane dla sprzętu skonstruowanego specjalnie do wymiany "na gorąco" (hot-swapping, bardzo rzadki!). Używaj świadomie z zachowaniem szczególnej ostrożności gdyż może to łatwo zawiesić lub uszkodzić twój system. Źródłowa dystrybucja hdparm zawiera katalog 'contrib' z kilkoma skryptami wspomagającymi wymianę "na gorąco" na UltraBay z ThinkPad 600E. Używaj na własne ryzyko.

-v  Wypisz wszystkie ustawienia, poza -i (tak jak -acdgkmnru dla IDE, -gr dla SCSI lub -adgr dla XT). Jest to też domyślne zachowanie, kiedy nie poda się żadnych opcji.

-w  Zresetuj urządzenie (NIEBEZPIECZNE). NIE używaj tej opcji. Jest ona tylko do użytku w nieoczekiwanych sytuacjach, gdy dla przywrócenia dysku do stanu używalności i tak może być konieczne przeładowanie systemu.

-W  Włącz/wyłącz właściwość cache'owania zapisu w napędach IDE (domyślny stan jest nieokreślony i zależny od modelu/producenta).

-x  Przestaw urządzenie do wymiany "na gorąco" (hotswap) (NIEBEZBIECZNE).

-X  Ustaw tryb transferu IDE dla nowszych napędów (E)IDE/ATA. Jest to zazwyczaj używane łącznie z -d1 gdy włacza się DMA do/z napędu na wspieranym chipsecie interfejsu, przy czym -X mdma2 służy do wyboru trybu transferów multiword DMA mode2 a -X sdma1 do wyboru prostego trybu mode1 transferów DMA. Na systemach, które wspierają UltraDMA użycie -X udma2 służy do ustawiania trybu transferów UltraDMA mode2 (będziesz musiał przygotować wcześniej chipset do użycia UltraDMA). Poza tym, użycie tej opcji jest rzadko potrzebne gdyż większość/wszystkie nowoczesne napędy IDE domyślnie ustawiają się w najszybszym ze swoich trybów PIO przy włączaniu. Manipulowanie tym może być bezcelowe i ryzykowne. Na dyskach, które wspierają alternatywne tryby transferu, -X może służyć do przełączania tylko trybu napędu. Przed zmianą trybu transferu, interfejs IDE powinien być ustawiony za pomocą zworek lub zaprogramowany (zobacz opcję -p) do nowego trybu, aby zapobiec utracie i/lub zniszczeniu danych. Używaj tego ze szczególną uwagą! Dla trybów transferu PIO (Programmed Input/Output), używanych przez Linuksa, wartość ta jest zwyczajnie oczekiwanym numerem trybu PIO plus 8. Dlatego wartość 09 ustawia tryb PIO mode1, 10 PIO mode2, a 11 wybiera PIO mode3. Ustawienie 00 odtwarza "domyślny" tryb PIO dysku, a 01 wyłącza IORDY. Dla UltraDMA wartością jest oczekiwany numer trybu UltraDMA plus 64.

-y  Zmuś napęd IDE do natychmiastowego przejścia w tryb mniejszego zużycia energii: standby. To najczęściej powoduje zwolnienie pracy dysku. aktualny tryb może być sprawdzony dzięki opcji -C.

-Y  Zmuś napęd IDE do natychmiastowego przejścia w tryb najmniejszego zyżycia energii: sleep. To kompletnie wyłącza napęd. Aby napęd był dostępny ponownie potrzebny jest twardy lub miękki reset (sterownik IDE Linuksa automatycznie wykona reset gdy będzie potrzebny). Aktualny tryb może być sprawdzony dzięki opcji -C.

-z  Zmuś jądro do ponownego odczytu tablicy partycji podanych urządzeń.

-Z  Wyłącz automatyczne funkcje oszczędzania energii w niektórych napędach Seagate (modelach ST3xx?), aby uchronić je od wyłączania się w nieoczekiwanych momentach.

BŁĘDY
Jak zauważono powyżej, opcje -m sectcount i -u 1 powinny być używane z ostrożnością, najlepiej na systemie plików tylko dla odczytu. Większość napędów pracuje z tymi właściwościami dobrze, lecz zdarzają się wyjątki. System plików może wtedy ulec zniszczeniu. Pamiętaj o backupie przed takimi eksperymentami!

Niektóre opcje (np. -r dla SCSI) mogą nie działać ze starszymi jądrami, w których potrzebne ioctl()'e nie były wspierane.

Chociaż to narzędzie jest skierowane przede wszystkim do użytku z napędami dysków twardych (E)IDE, to część opcji jest również prawidłowa (i dozwolona) w użyciu z dyskami twardymi SCSI oraz z dyskami MFT/RLL z interfejsem XT.

AUTOR
hdparm został napisany przez Marka Lorda <mlord@pobox.com>, głównego twórcę i opiekuna sterownika (E)IDE dla Linuxa.

Kod wyłączający automatyczne oszczędzanie energii w Seagate został napisany przez Tomiego Leppikangasa <tomilepp@paju.oulu.fi>.

ZOBACZ TAKŻE
AT Attachment Interface for Disk Drives, ANSI ASC X3T9.2 working draft, revision 4a, April 19, 1993.

AT Attachment Interface with Extensions (ATA-2), ANSI ASC X3T9.2 working draft, revision 2f, July 26, 1994.

AT Attachment with Packet Interface - 5 (ATA/ATAPI-5), T13-1321D working draft, revision 3, February 29, 2000.

AT Attachment with Packet Interface - 6 (ATA/ATAPI-6), T13-1410D working draft, revision 3b, February 26, 2002.

Western Digital Enhanced IDE Implementation Guide, by Western Digital Corporation, revision 5.0, November 10, 1993.

Enhanced Disk Drive Specification, by Phoenix Technologies Ltd., version 1.0, January 25, 1994.