.\" {PTM/PB/0.1/02-02-1999/"pobierz/ustaw parametry dysku twardego"}
.\" Updated to version 4.1 2001 Andrzej M. Krzysztofowicz <ankry@pld.org.pl>
.\" Translation 1999,2000 Przemek Borys <pborys@dione.ids.pl>
.\" Huh... to był trudny kawałek tekstu ;)
.TH HDPARM 8 "Marzec 2001" "Wersja 4.1"

.SH NAZWA
hdparm \- pobierz/ustaw parametry dysku twardego
.SH SKŁADNIA
.B hdparm
[ opcje ] [urządzenie] ..
.SH OPIS
.BI 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.
.SH OPCJE
Bez opcji, zakłada się
.IR -acdgkmnru .
.TP
.I -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.
.TP
.I -A
Włącz/wyłącz właściwość odczytu wyprzedzającego (read-lookahead) 
napędu IDE (zwykle domyślnie ON -- włączoną).
.TP
.I -B
Odczytaj ustawienie dla właściwości Zaawansowanego Zarzaądzania Energią (APM),
o ile napęd posiada wspomaganie dla niej.
.TP
.I -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ą
.I 0
dla wyłączenia obsługi 32-bitowego I/O,
.I 1
dla włączenia 32-bitowej transmisji danych,
.I 3
dla włączenia 32-bitowej transmisji danych ze specjalną sekwencją
.I sync
wymaganą przez wiele chipsetów. Wartość
.I 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.
.TP
.I -C
Sprawdź obecny stan trybu zasilania IDE. Jest on zawsze jednym z
.B unknown
(dysk nie obsługuje tego polecenia),
.B active/idle
(normalne działanie),
.B standby
(tryb oszczędzania energii, dysk się zatrzymał),
lub
.B sleeping
(najniższy tryb oszczędzania energii, dysk jest całkowicie wyłączony).
Za pomocą opcji
.BR -S ,
.BR -y ,
.BR -Y ,
i
.B -Z
można manipulować trybami zasilania IDE.
.TP
.I -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 (oraz ze wszystkimi obsługiwanymi sterownikami
XT). Praktycznie, dla zarządzanych przez magistralę operacji DMA dla wielu
napędów obsługiwany jest (eksperymentalnie) chipset Intel Triton.
Dobrym pomysłem jest również używanie opcji
.I -X34
w połączeniu z
.IR -d1 .
aby zapewnić, że sam napęd jest zaprogramowany na multiword DMA mode2.
Używanie DMA niekoniecznie musi powodować zwiększenie przepustowości lub
 wydajności systemu, lecz wiele osób ma takie zdanie. Różnie to bywa.
.TP
.I -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.
.TP
.I -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.
.TP
.I -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
.I -t
i
.IR -T .
.TP
.I -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.
.TP
.I -h
Pokaż krótką informację o użyciu (pomoc).
.TP
.I -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
.I AT Attachment Interface for Disk Drives
(ANSI ASC X3T9.2 working draft, revision 4a, April 19/93).
.TP
.I -I
ądaj informacji identyfikacji bezpośrednio od napędu. Wyświetlana jest ona
w surowej postaci, bez zmian kolejności bajtów lub poprawek. Łańcuchy tesktowe
mogą ukazać się poprzestawiane w razie użycia
.I -I
lecz NIE jest to błąd. W pozostałym zakresie podobne do opcji
.IR -i .
.TP
.I -k
Pobierz/ustaw flagę keep_settings_over_reset (zachowaj ustawienia po
resecie). Gdy ta flaga jest ustawiona, sterownik będzie chronił opcje
.I -dmu
po miękkim resecie.
Flaga ta domyślnie jest wyłączona, aby uchronić napęd przed pętlami
resetów, które mogłyby być spowodowane kombinacjami ustawień
.I -dmu
Opcja
.I -k
powinna więc być ustawiana tylko gdy jesteś przekonany, że system będzie
działał poprawnie przy wybranych ustawieniach konfiguracyjnych.
W rzeczywistości wszystko co zazwyczaj trzeba zrobić aby przetestować
konfigurację (przed użyciem -k) to sprawdzenie czy napęd daje się
odczytać/zapisać i czy proces ten nie generuje błędów w logach (komunikaty
jądra) (w większości systemów zajrzyj do /var/adm/messages).
.TP
.I -K
Ustaw flagę keep_features_over_reset (zachowaj właściwości po resecie) napędu.
Jej ustawienie powoduje, że napęd odzyskuje po miękkim resecie (który
występuje w procesie usuwania błędu) ustawienia dla
.IR -APSWXZ .
Nie wszystkie napędy obsługują tę właściwość.
.TP
.I -L
Ustaw flagę blokowania drzwiczek napędu. Ustawienie tego na
.B 1
powoduje blokowanie mechanizmu drzwiczek niektórych przenośnych dysków
twardych (np. Syquest, ZIP, Jazz..), a ustawienie na
.B 0 
powoduje odblokowanie drziwczek. Normalnie Linux obsługuje ten
mechanizm automatycznie, zależnie od używania dysku (blokuje przy
zamontowaniu systemu plików). Jednak może to być przykre np. po zamknięciu
systemu, gdy partycja root jest na dysku przenośnym, gdyż jest ona
pozostawiana zamontowana (ro) po zamknięciu systemu. Tak więc użycie tego
polecenia do otwarcia drzwiczek
.B po
przemontowaniu systemu plików root na ro
umożliwia usunięcie kasety z napędu po zamknięciu systemu.
.TP
.I -m
Pobierz/ustaw licznik sektorów dla wielosektorowego I/O w napędzie.
Ustawienie
.B 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
transmisję wielu sektorów na każde przerwanie I/O (w przeciwieństwie do
tradycyjnego jednego sektora na przerwanie). Gdy włączona jest ta właściwość,
zazwyczaj zmniejsza się systemowe obciążenie dyskowego I/O o 30-50%. W wielu
systemach zapewnia to także zwiększony przepływ danych w zakresie od 5% do 50%.
Mimo to, niektóre napędy (najbardziej zauważalnie seria WD Caviar)
wydają się działać wolniej trybie wielosektorowym. Różnie to bywa.
Większość napędów obsługuje co najmniej ustawienia 2, 4, 8 i 16 (sektorów).
Wiksze ustawienia również bywają możliwe, zależy to od napędu.
Ustawienie 16 lub 32 wydaje się optymalnym dla wielu systemów.
Western Digital zaleca niższe ustawienia od 4 do 8 dla wielu z ich dysków,
a to z powodu małych (32KB) buforów napędów i niezoptymalizowanych algorytmów
buforowania.
Do znalezienia maksymalnej obsługiwanej przez zainstalowany napęd wartości
można użyć opcji
.B -i
(szukaj MaxMultSect na wyjściu).
Niektóre napędy twierdzą, że obsługują ten tryb, lecz tracą dane przy
pewnych ustawieniach. W rzadkich wypadkach, takie błędy mogą spowodować
.BR poważne uszkodzenie systemu plików!
.TP
.I -n
Pobierz lub ustaw flagę "ignoruj błędy zapisu" w sterowniku.
NIE baw się tą opcją nie przejrzawszy uprzednio źródeł sterownika.
.TP
.I -p
Próba przeprogramowania chipsetu interfejsu IDE na określony tryb PIO, lub
próba automatycznego dostosowania się do "najlepszego" trybu PIO
obsługiwanego przez napęd. Właściwość ta jest obsługiwana w jądrze tylko dla
kilku "znanych" chipsetów, a nawet wówczas obsługa jest co najmniej wątpliwa.
Niektóre chipsety IDE nie są w stanie zmienić trybu PIO dla pojedynczego
 napędu; w tym wypadku opcja ta może spowodować ustawienie trybu
PIO dla
.I obydwu
napędów. Wiele chipsetów IDE obsługuje albo mniej, albo więcej niż standardowe
sześć (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.
.I Używaj z wielką ostrożnością!
Właściwość ta nie chroni przed nierozwagą, a niepomyślne działanie może
spowodować
.I poważne uszkodzenie systemu plików!
.TP
.I -P
Ustaw maksymalny licznik sektorów dla wewnętrznych mechanizmów odczytu z
wyprzedzeniem napędu. Nie wszystkie napędy obsługują tę właściwość.
.TP
.I -q
Obsłuż następną opcję cicho, nie wypisując komunikatów na wyjście. Jest to
przydatne do zmniejszenia zamieszania na ekranie w wypadku uruchamiania z
/etc/rc.c/rc.local.
Nie dotyczy opcji
.IR -i ,
.IR -v ,
.IR -t 
lub
.IR -T .

.TP
.I -r
Pobierz/ustaw flagę read-only (tylko do odczytu) urządzenia. Gdy jest
ustawiona, operacje zapisu nie są na tym urządzeniu dozwolone.
.TP
.I -R
Zarejestruj interfejs IDE.
.B Niebezpieczne.
Zobacz dla dalszych informacji opcję
.BR -U . 
.TP
.I -S
Ustaw czas opóźnienia standby (zatrzymania) dla napędu.
Wartość ta jest używana przez napęd w celu określenia jak
długo oczekiwać (bez aktywności dyskowej) przed wyłączeniem silnika w
celach oszczędności mocy. W takich warunkach, dysk może potrzebować do 30
sekund aby odpowiedzieć na nastąpne odwołanie, choć większość napędów robi to
znacznie szybciej. Kodowanie czasu jest dość spcyficzne. Wartość 0 oznacza
wyłączenie tej właściwości. Wartości od 1 do 240 określają wielokrotności
5 sekund, czyli dają czasy opóźnienia od 5 sekund do 20 minut. Wartości od
241 do 251 określają 1 do 11 jednostek po 30 minut dla czasów opóźnienia od
30 minut do 5,5 godzin. Wartość 252 oznacza czas opóźnienia 21 minut, 253
ustawia czas zdefiniowany przez dostawcę, a 255 jest interpretowane jako
21 minut plus 15 sekund.
.TP
.I -T
Dokonuj pomiarów czasu odczytów bufora podręcznego dla celów porównawczych i 
testów wydajnościowych. Dla oznaczających coś wyników, 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.
Podaje ona szybkość odczytu bezpośrednio z linuksowego bufora podręcznego,
bez dostępu do dysku. Ta miara jest  wskaźnikiem przepływu danych między
procesorem, buforem podręcznym i pamięcią testowanego systemu.
Jeśli podano również opcję
.IR -t ,
to czynnik korygujący, oparty na wyniku 
.IR -T ,
zostanie włączony do wyniku zgłaszanego przez operację
.IR -t .
.TP
.I -t
Dokonuj pomiarów czasu odczytów z urządzenia dla celów porównawczych i
testów wydajnościowych. Dla oznaczających coś wyników, 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. Podaje ona szybkość odczytu poprzez bufor podręczny z dysku, bez
wcześniejszego buforowania danych. Ten pomiar jest wskaźnikiem jak szybko
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,
bufor podręczny jest wypróżniany przy użyciu ioctl BLKFLSBUF.
.TP
.I -u
Pobierz/ustaw flagę interrupt-unmask napędu. Ustawienie 
.B 1
zezwala sterownikowi na niemaskowanie innych przerwań podczas przetwarzania
przerwania dyskowego, co poprawia w dużej mierze odpowiadywalność Linuksa i
eliminuje błędy "serial port overrun"
.B Używaj tej właściwości z ostrożnością:
niektóre kombinacje napędu/kontrolera nie tolerują zwiększonego czasu
oczekiwania na I/O, gdy ta właściwość jest włączona, co może spowodować
.B poważne uszkodzenie systemu plików.
W szczególności interfejsy
.B CMD-640B
i
.B RZ1000
(E)IDE mogą być
.B 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
.B IDE prefetch
tych interfejsów (zwykle ustawienie BIOS/CMOS) daje bezpieczne rozwiązanie
opisanego problemu dla wcześniejszych jąder.
.TP
.I -U
Wyrejestruj interfejs IDE.
.B Niebezpieczne.
Kompan opcji
.BR -R .
Przeznaczone do użytku ze sprzętem stworzonym specjalnie do wymieniania
podczas pracy (hot-swapping) (bardzo rzadkie!).
Używaj rozumnie i z
.B wielką ostrożnością
gdyż może to łatwo zawiesić lub uszkodzić system.
Dystrybucja źródłowa hdparm zawiera katalog 'contrib' z pochodzącymi od
użytkowników skryptami dla wymiany podczas pracy na UltraBay z ThinkPad 600E.
Używaj na własną odpowiedzialność.
.TP
.I -v 
Pokaż wszystkie ustawienia, poza -i (tak jak -asdgmknru dla IDE, -gr dla SCSI
lub -adgr dla XT). Jest to też domyślne zachowanie, kiedy nie poda się żadnych
opcji.
.TP
.I -w
Wykonaj reset urządzenia (NIEBEZPIECZNE). NIE używaj tej opcji.
Istnieje ona dla rzadkich sytuacji, gdy w przeciwnym razie niezbędny dla
przywrócenia zgłupiałemu napędowi stanu używalności byby restart systemu.
.TP
.I -W
Włącz/wyłącz właściwość podręcznego buforowania zapisu w napędach IDE (zwykle
domyślnie wyłączone -- OFF)
.TP
.I -X 
Ustaw tryb transferu IDE dla nowszych napędów (E)IDE/ATA2.
Jest to zazwyczaj używane w połączeniu z
.I -d1
gdy włącza się DMA do/z napędu na obsługiwanym chipsecie interfejsu (takim
jak Intel 430FX Triton),  gdzie używane jest
.I -X34
do wyboru transferów w multiword DMA mode2.
W systemach, obsługujących timingi burst UltraDMA, do wybierania transferów
UDMA mode2 używane jest
.I -X66
(będziesz musiał uprzednio przygotować chipset dla UltraDMA).
Poza tym, użycie tej opcji jest
.I rzadko potrzebne
gdyż większość/wszystkie nowoczesne napędy IDE domyślnie ustawiają się na
najszybszy ze swoich trybów PIO zaraz przy włączeniu. Walczenie z tym może 
być bezużyteczne i ryzykowne. Na dyskach, które obsługują dodatkowe tryby
transferu, można użyć
.I -X
do przełączania 
.I tylko
trybu napędu.
Przed zmianą trybu transferu, interfejs IDE powinien być zezworkowany lub
zaprogramowany (zobacz opcję
.IR -p )
dla nowego trybu, aby zapobiec utracie i/lub zniszczeniu danych.
.I Używaj tego ze szczególną ostrożnością!
Dla trybów transferu PIO (Programmed Input/Output) używanych przez Linuksa,
wartość ta jest po prostu 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 multiword DMA, używana wartość to numer DMA plus 32. Dla UltraDMA,
wartość to oczekiwany numer trybu UltraDMA plus 64.
.TP
.I -y
Zmuś dysk IDE do natychmiastowego przejścia na energooszczędny tryb
.B standby
zazwyczaj powodując zaprzestanie wirowania.
Obecny status zasilania można sprawdzić przy użyciu flagi
.BR -C .
.TP
.I -Y
Zmuś dysk IDE do natychmiastowego przejścia w najniższy tryb energooszczędny
.B sleep
powodujący wyłączenie zasilania dysku. Przed ponownym dostępem do dysku
wymagany jest twardy lub miękki reset (sterownik IDE robi to automatycznie).
Obecny stan trybu zasilania można uzyskać, korzystając z opcji
.BR -C . 
.TP
.I -Z
Wyłącz automatyczne funkcje oszczędzania energii w niektórych napędach
Seagate (modelach ST3xxx?), aby uchronić je od wyłączania się w
nieoczekiwanych momentach.
.SH BŁĘDY
Jak zauważono powyżej, opcje
.B -m sectcount
i
.B -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
niektóre kombinacje napęd/kontroler nie są w 100% zgodne. System plików może
wtedy ulec zniszczeniu. Pamiętaj o backupie przed takimi eksperymentami!
.PP
Niektóre opcje (np. -r dla SCSI) mogą nie działać ze starymi jądrami, gdyż
nie było potrzebnych ioctl()-i.
.PP
Chociaż to narzędzie jest skierowane przede wszystkim do użytku ze zwykłymi
napędami dysków twardych (E)IDE, to używanie części opcji jest również
prawidłowe (i dozwolone) dla dyskamów twardych SCSI oraz dysków twardych
MFM/RLL z interfejsami XT.
.SH AUTOR
.B hdparm
został napisany przez Marka Lorda <mlord@pobox.com>,
głównego twórcę i opiekuna sterownika (E)IDE dla Linuksa.
.PP
Kod wyłączający automatyczne oszczędzanie energii w Seagate został napisany
przez Tomiego Leppikangasa (tomilepp@paju.oulu.fi).
.SH ZOBACZ TAKŻE
.B AT Attachment Interface for Disk Drives,
ANSI ASC X3T9.2 working draft, revision 4a, April 19, 1993.
.PP
.B AT Attachment Interface with Extensions (ATA-2),
ANSI ASC X3T9.2 working draft, revision 2f, July 26, 1994.
.PP
.B Western Digital Enhanced IDE Implementation Guide,
by Western Digital Corporation, revision 5.0, November 10, 1993.
.PP
.B Enhanced Disk Drive Specification,
by Phoenix Technologies Ltd., version 1.0, January 25, 1994.
