hdparm - pobiera/ustawia parametry dysku SATA/IDE
hdparm [opcje] [urządzenie ...]
Program hdparm udostępnia interfejs wiersza
poleceń do różnych interfejsów jądra,
obsługiwanych przed linuksowy podsystem SATA/PATA/SAS
"libata" i starszy podsystem sterownika IDE. Wiele nowszych (z
roku 2008 i nowszych) urządzeń USB obsługuje
również "SAT" (SCSI-ATA Command Translation) i
dlatego może również działać z hdparm.
Dotyczy to na przykład nowszych modeli dysków
zewnętrznych WD "Passport" i NexStar-3.
Część opcji może działać poprawnie
tylko z najnowszymi jądrami.
Gdy nie podano opcji, zakłada się -acdgkmur.
W przypadku opcji "pobiera/ustawia", odpytanie bez opcjonalnego
parametru (np. -d) odpyta (pobierze) stan urządzenia, a z parametrem
(np. -d0) ustawi stan urządzenia.
- -a
- Pobiera/ustawia 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. 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
- Pobiera/ustawia właściwość odczytu
wyprzedzającego (read-lookahead) napędu IDE (zwykle
domyślnie ON -- włączoną). Użycie:
-A0 (wyłącza) lub -A1
(włącza).
- -b
- Pobiera/ustawia stan magistrali.
- -B
- Pobiera/ustawia właściwości zaawansowanego
zarządzania energią (APM), o ile napęd ją
obsługuje. Mała wartość oznacza agresywne
zarządzanie energią, a duża - wyższą
wydajność. Możliwe wartości obejmują
zakres od 1 do 127 (która pozwala na zatrzymanie talerzy -
"spin-down") i wartości od 128 do 254 (która na to
nie pozwala). Najwyższy stopień zarządzania
energią jest ustawiany wartością 1, a
najwyższa wydajność wejścia/wyjścia
wartością 254. Wartość 255 nakazuje hdparm
wyłączyć zaawansowane zarządzenia
energią (nie wszystkie dyski potrafią ją
wyłączyć, ale większość
tak).
- -c
- Pobiera/ustawia obsługę 32-bitowego
wejścia/wyjścia w (E)IDE. Można użyć
numerycznego parametru
włączającego/wyłączającego
obsługę. Obecnie obsługiwane wartości
obejmują 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
- Sprawdza 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
- Pobiera/ustawia 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 użytkownika 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.
- --dco-freeze
- DCO to skrót od Device Configuration Overlay (nakładka
konfiguracji urządzeń), sposobu, w jaki dostawcy selektywnie
wyłączają określone funkcje napędu.
Opcja --dco-freeze zamraża/blokuje
bieżącą konfigurację napędu,
uniemożliwiając w ten sposób oprogramowaniu (lub
malware), zmieniać ustawienia DCO po następnym ponownym
uruchomieniu urządzenia.
- --dco-identify
- Odpytuje i zrzuca informacje na temat ustawień konfiguracji
urządzenia, które mogą być
wyłączone przez dostawcę lub instalatora OEM. Te
ustawienia pokazują możliwości napędu,
które mogły zostać wyłączone przez
dostawcę, w celu "rozszerzonej kompatybilności".
Gdy są wyłączone, są one ukryte nie
będą pokazywane w wyniku polecenia -I. Na
przykład, dostawcy systemu czasami wyłączają
48-bitowe adresowanie na dużych napędach, z powodów
kompatybilności (lub jej utraty) z określonym BIOS-em. W
takich przypadkach --dco-identyfy pokaże, że
napęd posiada opcję 48_bit, ale -I nie pokaże
jej, ani napęd nie będzie akceptować poleceń
48_bit.
- --dco-restore
- Resetuje wszystkie ustawienia, funkcje i dostępne
możliwości napędu do wartości fabrycznych i
pełnych możliwości. Polecenie zawiedzie, jeśli
DCO zostało zamrożone/zablokowane, lub gdy ustawiono
również maksymalne ograniczenie rozmiaru -Np. Jest to
NIEZWYKLE NIEBEZPIECZNE i prawdopodobnie spowoduje
poważną utratę danych. Proszę NIE
UŻYWAĆ TEGO POLECENIA.
- --direct
- Używa flagi "O_DIRECT" jądra podczas
przeprowadzania pomiarów czasów -t. W ten
sposób ominięta jest pamięć podręczna
strony, powodując bezpośredni odczyt z napędu do
buforów hdparm, używając tzw. "surowego"
wejścia/wyjścia. W wielu przypadkach może to
dać znacznie szybsze odczyty niż zwykła metoda
stronicowanej pamięci podręcznej, dając lepszy
wskaźnik surowej wydajności urządzenia i
sterownika.
- --drq-hsm-error
- BARDZO NIEBEZPIECZNE, PROSZĘ NAWET NIE MYŚLEĆ O
UŻYWANIU TEJ OPCJI. Opcja powoduje wydanie przez hdparm do
jądra, niepoprawnie oznaczonego jako "non-data",
polecenia IDENTIFY. Powoduje to pozostawienie sterownika z jego wierszem
dataReQuest(DRQ) w stanie "utknięcia". Dezorientuje to
sterowniki jądra i może spowodować
natychmiastową awarię systemu łącznie z
poważną utratą danych. Opcja istnieje w celu pomocy w
testowaniu i zabezpieczaniu jądra przed rzeczywistymi
błędami napędów. BARDZO NIEBEZPIECZNE, NIE
UŻYWAĆ!
- -D
- Włącza/wyłącza wbudowaną w napę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.
Kontrolowanie tej funkcji za pomocą opcji -D nie jest
obsługiwane przez większość
współczesnych napędów od ATA-4; w
związku z tym, to polecenie może się nie
powieść.
- -E
- Ustawia szybkość napędu CD/DVD. 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. Może być to niekiedy przydatne, np. aby
odtwarzanie filmów z DVD stało się
płynniejsze.
- -f
- Synchronizuje (sync) i opróżnia (flush) bufory
podręczne urządzenia przy wyjściu. Operacja ta jest
również wykonywana jako część
pomiarów -t, -T i innych opcji.
- --fallocate
- Opcja działa obecnie jedynie w systemach plików ext4 i xfs.
Gdy zostanie użyta, musi być jedyną podaną
opcją. Wymaga dwóch parametrów: oczekiwanej
wielkości pliku w kibibajtach (liczba bajtów podzielona
przez 1024), a po niej ścieżki nowego pliku. Utworzy ona
nowy plik o określonym rozmiarze, bez zapisywania jakichkolwiek
danych do pliku. Jest to zwykle bardzo szybkie i nie obciąża
urządzenia dyskowego.
- Przykładowo: utworzenie pliku o rozmiarze 10 kibibitów:
hdparm --fallocate 10 plik_tymczas
- --fibmap
- Gdy zostanie użyta, musi być jedyną podaną
opcją. Wymaga ścieżki pliku jako parametru i powoduje
wypisanie listy ekstentów (zakresów sektorów)
bloków zajętych przez plik na dysku. Numery sektorów
są podane jako absolutne numery LBA, odnoszące się do
sektora 0 fizycznego urządzenia, a nie do partycji czy systemu
plików. Ta informacja może być następnie
użyta do wielu celów, takich jak sprawdzanie stopnia
fragmentacji większych plików, czy określanie
poprawnych sektorów w celu rozmyślnego uszkodzenia podczas
procedur testowych wstrzykiwania błędów.
- Opcja używa nowej FIEMAP (file extent map - mapy ekstentów
pliku) ioctl(), jeśli jest dostępna lub wykorzystuje
starszą FIBMAP (file block map - mapa bloków pliku) ioctl()
w przeciwnym wypadku. Proszę zauważyć, że z
powodu wykorzystywania 32-bitowego interfejsu liczb bloków, FIBMAP
nie działa powyżej 8 TB lub 16 TB. FIBMAP jest
również bardzo wolna i nie działa dobrze z
zaalokowanymi wstępnie ekstentami w systemach plików
ext4/xfs, chyba że wykonano sync() przed użyciej tej
opcji.
- --fwdownload
- Gdy zostanie użyta, powinna być jedyną podaną
opcją. Wymaga podania bezpośrednio po opcji
ścieżki pliku, z której powinno być odczytane
nowe firmware napędu. Zawartość pliku zostanie
wysłana do napędu przy użyciu polecenia DOWNLOAD
MICROCODE (S)ATA, używając albo protokołu
transferu 7 (cały plik na raz), albo, jeśli napęd to
obsługuje, protokołu transferu 3 (pobieranie we
fragmentach). Polecenie to jest NIEZWYKLE NIEBEZPIECZNE i
może zniszczyć zarówno napęd, jak i jego
wszystkie dane. Proszę NIE UŻYWAĆ TEGO
POLECENIA. Odmiany --fwdownload-mode3 ,
--fwdownload-mode3-max i --fwdownload-mode7 pozwalają
na przesłonięcie automatycznie wykrytego protokołu,
wymuszając na hdparm użycie określonego
protokołu transferu (jedynie do celów testowych).
- -F
- Opróżnia bufory zapisu dysku (starsze napędy
mogą nie implementować tej funkcji).
- -g
- Pokazuje 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
- Pokazuje krótką informację o użyciu
(pomoc).
- -H
- Odczytuje temperaturę niektórych dysków
(głównie Hitachi). Informuje również, czy
temperatura znajduje się w zalecanym przedziale wartości
(może nie być to wiarygodne). Nie powoduje to
rozkręcenia talerzy napędu, jeśli znajduje się
w stanie bezczynności.
- -i
- Pokazuje informacje identyfikacyjne, które sterowniki jądra
(IDE, libata) pobrały z napędu podczas startu/konfiguracji,
o ile są one dostępne. Rezultaty mogą się
różnić od bieżących informacji
pozyskiwanych bezpośrednio ze sterownika opcją -I.
Zwracane dane mogą nie być aktualne, zależnie od
czynności wykonanych po uruchomieniu systemu. 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
późniejsze edycje).
- --idle-immediate
- Wykonuje polecenie ATA IDLE_IMMEDIATE, powodując przejście
napędu w niższy stan zasilania. Z reguły talerze
napędu nie ulegają zatrzymaniu.
- --idle-unload
- Wykonuje polecenie ATA IDLE_IMMEDIATE_WITH_UNLOAD, powodując
odłączenie lub zaparkowanie głowic i przejście
napędu w niższy stan zasilania. Z reguły talerze
napędu nie ulegają zatrzymaniu.
- -I
- Żąda 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.
- --Iraw
ścieżka
- Opcja zrzuca informacje identyfikujące w surowym formacie binarnym
do podanego pliku.
- --Istdin
- This is a special variation on the -I option, which accepts a drive
identification block as standard input instead of using a /dev/hd*
parameter. The format of this block must be exactly the same as
that found in the /proc/ide/*/hd*/identify "files", or that
produced by the --Istdout option described below. This variation is
designed for use with collected "libraries" of drive
identification information, and can also be used on ATAPI drives which may
give media errors with the standard mechanism. When --Istdin is
used, it must be the *only* parameter given. Note that some information
will be incomplete, as the drive LOG PAGES are unavailable when
--Istdin is used.
- --Istdout
- Opcja zrzuca informacje identyfikacyjne dysku w zapisie szesnastkowym na
standardowe wyjście, w formacie podobnym do /proc/ide/*/identify i
odpowiednim do późniejszego użycia z opcją
--Istdin.
- -J
- Pobiera/ustawia wartość czasu oczekiwania "idle3"
dysków Western Digital (WD) Green Drive. Czas ten kontroluje
częstość parkowania głowic dysku i
przejścia w niższy stan zasilania. Ustawieniem fabrycznym
jest osiem (8) sekund, co jest bardzo kiepskim wyborem do systemu Linux.
Pozostawienie wartości domyślnej, powoduje setki lub
tysiące cykli ładowania/odłączenia
głowic w bardzo krótkim czasie. Mechanizm dysku
został zaprojektowany na 300 000 do 1 000 000
cykli, tak więc pozostawienie wartości domyślnej
może spowodować przedwczesne zużycie dysku, nie
wspominając o wpływie na wydajność, gdy
napęd często musi się wybudzić przed
wykonaniem operacji wejścia/wyjścia.
- Firma WD dostarcza DOS-owe narzędzie WDIDLE3.EXE do zmiany tego
ustawienia i powinno się go użyć zamiast hdparm, gdy
tylko to możliwe. Implementacja w hdparm, uzyskana za pomocą
inżynierii wstecznej nie jest tak kompletna jak oryginalny i
oficjalny program, nawet jeśli wygląda na
działającą na przynajmniej kilku sztukach tych
dysków. Aby zmiana w ustawieniach zadziałała,
potrzebny jest pełny cykl zasilania (włączenie i
wyłączenie), niezależnie od tego, który
program zostanie użyty do zmiany ustawień.
- Zaleca się ustawienie wartości 30 sekund do użycia z
Linuksem. Dozwolonymi wartościami jest 8 do 12 sekund, a
następnie 30 do 300 sekund w 30 sekundowych odstępach.
Podanie wartości zero (0) wyłączy całkowicie
czas idle3 dysków WD (NIE ZALECANE!).
- -k
- Pobiera/ustawia flagę "keep_settings_over_reset"
(zachowaj ustawienia po resecie). Gdy ta flaga jest ustawiona, sterownik
będzie chronił opcje -dmu po miękkim resecie
(wykonanym np. podczas sekwencji odzyskiwania po błędzie).
Flaga ta domyślnie jest wyłączona, aby
uchronić napęd przed pętlami resetowań,
które mogłyby być spowodowane kombinacjami
ustawień -dmu Opcja -k powinna więc być
ustawiana tylko gdy jest się przekonanym, ż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 należy zajrzeć do
/var/log/messages).
- -K
- Ustawia 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 obsługują
tę właściwość.
- -L
- Ustawia 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
- Pobiera/ustawia 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 (32 KiB) 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.
- --make-bad-sector
- Celowo tworzy uszkodzony sektor (bad sector, media error) na dysku.
NIEZWYKLE NIEBEZPIECZNE, NIE UŻYWAĆ TEJ OPCJI!.
Może być to przydatne przy testowaniu mechanizmów
odzyskiwania błędów urządzenia/RAID. Numer
sektora jest podany jako (dziesiątkowy) parametr po opcji. W
zależności od urządzenia, hdparm wybierze jedno z
dwóch dostępnych poleceń ATA do uszkodzenia sektora.
WRITE_LONG działa w przypadku większości
urządzeń, lecz jedynie do granicy 28-bitów.
Część najnowszych napędów (2008)
może obsługiwać nowe polecenie
WRITE_UNCORRECTABLE_EXT, które działa na wszystkich
sektorach LBA48. Jeśli jest ono dostępne, hdparm
użyje go zamiast WRITE_LONG. Samo polecenie WRITE_UNCORRECTABLE_EXT
prezentuje wybór jak nowy uszkodzony sektor powinien się
zachowywać. Domyślnie, wygląda on jak każdy
inny uszkodzony sektor i napędowi może zająć
nieco czasu aby wykonać kolejne ponowne i nieudane próby
odczytu (READ) sektora. Jeśli jednak poda się
pojedynczą literę f bezpośrednio przed
pierwszą cyfrą parametru numeru sektora, to hdparm wykona
"flagowane" WRITE_UNCORRECTABLE_EXT, które powoduje,
że napęd oznacza sektor jako uszkodzony (zamiast
rzeczywiście go uszkadzać), dzięki czemu próby
odczytu (READ) sektora natychmiast się nie powiodą (zamiast
po kilku kolejnych próbach). Proszę zauważyć,
że opcja --repair-sector może być użyta
aby odzyskać (każdy) uszkodzony sektor, gdy nie jest on
dłużej potrzebny, włączając w to
również sektory rzeczywiście uszkodzone (napęd
prawdopodobnie przemapuje je do przestrzeni zapasowej dysku).
- -M
- Pobiera/ustawia 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. W tej chwili,
większość napędów obsługuje
jedynie 3 opcje: wyłączone, cichy i szybki. Można im
przypisać obecnie, odpowiednio, wartości 0, 128 i 254, ale
pozostałe wartości zostały przeznaczone do
przyszłych rozszerzeń, więc może to ulec
zmianie.
- -n
- Pobiera lub ustawia flagę "ignore_write_errors" (ignoruj
błędy zapisu) w sterowniku. NIE baw się tym bez
uprzedniego zapoznania się z kodem źródłowym
sterownika.
- -N
- Pobiera/ustawia maksymalną widzialną liczbę
sektorów, znaną również jako ustawienie
Host Protected Area. Bez parametru, -N wyświetla
bieżące ustawienie, które jest wyświetlane
jako dwie wartości: pierwsza określa bieżące
maksymalne ustawienie sektorów, druga pokazuje natywny
(rzeczywisty) limit sprzętowy dysku. Różnica
pomiędzy tymi dwiema wartościami wskazuje na liczbę
sektorów, które są aktualnie ukryte dla systemu
operacyjnego w formie Host Protected Area (HPA). Obszar ten jest
często używany przez osoby składające komputer
do przechowania oprogramowania diagnostycznego i/lub kopii oryginalnego
systemu operacyjnego w celach odzyskiwania. Innymi możliwymi
powodami mogą być ukrycie rzeczywistej pojemności
bardzo dużego dysku dla BIOS-u/systemu, który nie
może normalnie funkcjonować z dyskami tego rozmiaru (np.
obecnie (2010) BIOS-y nie potrafią poradzić sobie z dyskami
o rozmiarze przekraczającym 2 TB, a HPA może
być użyte do raportowania przez dysk o pojemności
3 TB, że ma 2 TB). Aby zmienić
bieżące maksimum (BARDZO NIEBEZPIECZNE, UTRATA DANYCH JEST
NIEZWYKLE PRAWDOPODOBNA), nowa wartość powinna być
dostarczona (dziesiątkowo) zaraz po opcji -N.
Wartość ta jest określona jako liczba
sektorów, zamiast "maksymalny adres sektora" dysku.
Napędy korzystają z pomysłu tymczasowych (ulotnych)
ustawień, które są tracone przy następnym
resecie sprzętowym oraz bardziej stałej (nieulotnej)
wartości, która nie jest zmieniana w czasie resetów i
kolejnych cykli zasilania. Domyślnie, -N zmienia jedynie
ustawienie tymczasowe (ulotne). Aby zmienić wartość
stałą (nieulotną), proszę poprzedzić
pierwszą cyfrę wartości początkowym znakiem
p. Napędy są zaprojektowane na pozwolenie na tylko
jedną zmianę wartości stałem w sesji. Przed
kolejną, permanentną operacją -N konieczny
jest reset sprzętowy (lub wyłączenie i
włączenie). Proszę zauważyć, że
każda próba zmienienia tej wartości może
zawieść, jeśli dysk jest dostępny dla innego
programu w tym samym czasie. Jest tak, ponieważ ustawienie
wartości wymaga wymiany pary poleceń dyskowych, ale nie ma
sposobu na zapobiegnięcie wstawienia pomiędzy nie innych
poleceń przez jądro. Jeśli więc zmiana
początkowo się nie powiedzie, proszę po prostu
spróbować ponownie. Obsługa opcji -N przez
jądro jest błędna dla wielu typów
adapterów przez w wielu wersjach jądra. Raportowana jest
wówczas niekiedy nieprawidłowa (zbyt mała)
wartość maksymalnego rozmiaru. Obecnie (jądro 2.6.27)
wygląda na to, że w końcu działanie powinno
być poprawne w przypadku większości
sprzętu.
- --offset
- Przesuwa (offset) do podanego numeru GiB (1024*1024*1024), podczas
przeprowadzania pomiarów czasu -t odczytu urządzenia.
Szybkość zmienia się (około dwukrotnie) w
przypadku wielu dysków mechanicznych. Z reguły, choć
nie zawsze, największa jest na początku dysku. Napędy
solid-state drive (SSD) powinny wykazywać podobne czasy
niezależnie od przesunięcia.
- -p
- Próbuje przeprogramować chipset interfejsu IDE na
określony tryb PIO, lub próbuje automatycznie
dostosować 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 i nawet
ta obsługa jest co najwyżej niepewna. 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
- Ustawia maksymalny licznik sektorów dla wewnętrznych
mechanizmów preodczytu napędu. Nie wszystkie napędy
obsługują tę właściwość i
została ona usunięta z oficjalnej specyfikacji od
ATA-4.
- --prefer-ata12
- W czasie używania protokołu SAT (SCSI ATA Translation),
hdparm zwykle preferuje użycie poleceń 16-bajtowych gdzie to
tylko możliwe. Część napędów
zewnętrznych USB nie działa poprawnie z poleceniami
16-bajtowymi. Opcja może zostać użyta do wymuszenia
mniejszego, 12-bajtowego formatu poleceń do takich
napędów. Program hdparm wciąć będzie
używał poleceń 16-bajtowym do rzeczy, które
nie mogą być wykonane przy użyciu formatu
12-bajtowego (np. sektory wykraczające poza format
28-bajtowy).
- -q
- Obsługuje następną opcję cicho, nie
wydając zwykłych komunikatów (nie dotyczy do
komunikatów o błędach) na wyjście. Jest to
przydatne do zmniejszenia zamieszania na ekranie w wypadku uruchamiania ze
skryptów startowych. Nie można stosować do opcji
-i, -v, -t, oraz -T.
- -Q
- Pobiera lub ustawia queue_depth poleceń urządzenia,
jeśli jest to obsługiwane przez sprzęt. Opcja
działa tylko z jądrami 2.6.xx (i nowszymi) i jedynie z
kombinacją urządzeń i sterownika, która
obsługuje zmianę queue_depth. W przypadku dysków SATA
jest to głębokość kolejki Native Command
Queuing (NCQ).
- -r
- Pobiera/ustawia flagę read-only (tylko do odczytu)
urządzenia. Gdy jest ustawiona, Linux nie pozwala na operacje
zapisu na tym urządzeniu.
- -R
- Pobiera/ustawia funkcję Write-Read-Verify, jeśli
napęd ją obsługuje. Użycie: -R0
(wyłączone) lub -R1 (włączone). Funkcja
przeznaczona jest do automatycznego ponownego odczytania przez firmware
dysku danych, które zostały zapisane przez oprogramowanie, w
celu weryfikacji, czy zapis odbył się poprawnie.
Ogólnie rzecz biorąc jest to zachowanie przesadne,
które może spowolnić zapis na dysk dwukrotnie (lub
jeszcze bardziej).
- --read-sector
- Odczytuje z określonego numera sektora i zrzuca jego
zawartość w zapisie szesnastkowym na standardowe
wyjście. Sektor wiersza musi być podany (dziesiętnie)
po opcji. Program hdparm wykona niskopoziomowy odczyt (kompletnie
omijając zwykłą warstwę blokową
mechanizmów odczytu/zapisu) podanego sektora. Można
użyć tej opcji do definitywnego rozstrzygnięcia czy
dany sektor jest uszkodzony (bad sector, media error) czy też nie
(uczynienie tego za pomocą zwykłych mechanizmów
może niekiedy dać fałszywe alarmy).
- --repair-sector
- Jest to alias BARDZO NIEBEZPIECZNEJ opcji
--write-sector.
- -s
- Włącza/wyłącza funkcję zasilania w
trybie gotowości, jeśli jest obsługiwana przez
napęd. BARDZO NIEBEZPIECZNE. Proszę jej nie
używać, chyba że jest się absolutnie pewnym,
że zarówno systemowy BIOS (lub firmware) jak i jądro
systemu operacyjnego (Linux >=2.6.22) obsługuje
próbkowanie urządzenia w celu użycia tej funkcji. Gdy
jest włączona, napęd jest zasilany w trybie
standby (gotowości), pozwalając kontrolerowi na
uruchomienie urządzeń po kolei, redukując chwilowy
pobór energii, gdy wiele napędów jest
podłączonych do tego samego zasilacza. Przydatne
głównie do dużych zestawów RAID. Funkcja jest
zwykle wyłączona, a napęd jest zasilany, gdy jest w
trybie active - aktywnym (patrz powyżej, opcja -C).
Proszę zauważyć, że napęd może
również pozwalać na włączenie tej opcji
za pomocą zworki. Część dysków SATA
obsługuje kontrolę tej funkcji za pomocą pinu 11. w
złączu zasilania SATA. W takich przypadkach, polecenie
może nie być obsługiwane, lub może być
ignorowane.
- -S
- Ustawia napęd w trybie idle (niższego niskiego poboru
energii), ustawia również czas oczekiwania standby
(zatrzymania dysku). 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. Odczytanie wartości czasu oczekiwania jest nieco
osobliwe. Wartość 0 oznacza "czasy oczekiwania
są wyłączone": napęd nie przejdzie do
trybu standby w sposób automatyczny. Wartości od 1 do 240
określają wielokrotności 5 sekund, czyli dają
czasy oczekiwania od 5 sekund do 20 minut. Wartości od 241 do 251
określają od 1. do 11. jednostki po 30 minut dla
czasów od 30 minut do 5,5 godzin. Wartość 252 oznacza
czas oczekiwania 21 minut, 253 ustawia czas oczekiwania zdefiniowany przez
dostawcę, zamykający się między 8 a 12
godzinami, a wartość 254 jest zarezerwowana. 255 jest
interpretowane jako 21 minut plus 15 sekund. Proszę
zauważyć, że część starszych
napędów może intepretować te wartości w
całkowicie inny sposób.
- --set-sector-size
- Przypadku urządzeń obsługujących zmianę
konfiguracji rozmiaru sektora logicznego, tą flagą
można podać żądany nowy rozmiar sektora w
bajtach. BARDZO NIEBEZPIECZNE. Najprawdopodobniej zniszczy wszystkie
dane na dysku. Podany rozmiar musi być jednym z
następujących: 512, 520, 528, 4096, 4160 lub 4224. Jedynie
kilka napędów obsługuje wartości inne
niż 512 i 4096. Przykład: hdparm --set-sector-size 4096
/dev/sdb
- -t
- Dokonuje 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.
- -T
- Dokonuje 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.
- --trim-sector-ranges
- Do napędów Solid State Drive (SSD). NIEZWYKLE
NIEBEZPIECZNE. NIE UŻYWAĆ TEJ OPCJI! Nakazuje firmware
dysku odrzucać niepotrzebne sektory danych, niszcząc
wszelkie dane, które mogą one zawierać. W tej
sposób sektory te są dostępne do natychmiastowego
użycia przez mechanizm odśmiecania pamięci (garbage
collection) firmware, w celu poprawy równomiernego poziomu
zużycia komórek flash. Opcja oczekuje podania jednego lub
więcej par zakresów zaraz po niej w formie: początek
adresu LBA, dwukropek i liczba sektorów (maksymalnie 65535) bez
spacji w pojedynczym zapisie. NIEZWYKLE NIEBEZPIECZNE. NIE
UŻYWAĆ TEJ OPCJI!
- Przykład: hdparm --trim-sector-ranges 1000:4 7894:16
/dev/sdz
- --trim-sector-ranges-stdin
- Identyczne do --trim-sector-ranges powyżej, z
wyjątkiem tego, że lista par lba:liczba jest czytana ze
standardowego wejścia, zamiast być podaną w wierszu
poleceń. Można wykorzystać tę opcję do
uniknięcia problemów z wyjątkowo długimi
wierszami polecenia. Pozwala to również na skumulowanie
wielu więcej zakresów sektorów w jedno polecenie,
aż do aktualnie skonfigurowanego limitu transferu
(max_sectors_kb).
- -u
- Pobiera/ustawia 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. W
szczególności, 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.
- -v
- Wypisuje niektóre podstawowe ustawienia, tak jak -acdgkmnru dla
IDE. Jest to też domyślne zachowanie, kiedy nie poda
się żadnych opcji.
- -V
- Wyświetla wersję programu i natychmiast kończy
pracę.
- --verbose
- Wyświetla dodatkowe informacje diagnostyczne w przypadku
niektórych poleceń.
- -w
- Resetuje 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.
- --write-sector
- Zapisuje zera do podanego numeru sektora. BARDZO NIEBEZPIECZNE. Numer
sektora musi zostać podany (dziesiątkowo) po opcji. Program
hdparm wykona niskopoziomowy zapis (całkowicie omijając
zwykłą warstwę blokową mechanizmów
odczytu/zapisu) do określonego sektora. Może to
zostać wykorzystane do wymuszenia na napędzie naprawę
uszkodzonego sektora (bad sector, media error).
- -W
- Pobiera/ustawia funkcję pamięci podręcznej zapisu
(write-caching) napędów IDE/SATA.
- -X
- Ustaw tryb transferu IDE dla nowszych napędów (E)IDE/ATA.
Jest to zazwyczaj używane łącznie z -d1 gdy
włącza 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. W przypadku trybu multiword DMA, używaną
wartością jest oczekiwany tryb DMA plus 32. Dla UltraDMA
wartością jest oczekiwany numer trybu UltraDMA plus 64.
- -y
- Zmusza 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
- Zmusza napęd IDE do natychmiastowego przejścia w tryb
najmniejszego zuż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
- Zmusza jądro do ponownego odczytu tablicy partycji podanych
urządzeń.
- -Z
- Wyłącza automatyczne funkcje oszczędzania energii w
niektórych napędach Seagate (modelach ST3xx?), aby
uchronić je od wyłączania się w
nieoczekiwanych momentach.
Eksperymenty z poniższymi przełącznikami
są NIEBEZPIECZNE i mogą nie działać z
niektórymi jądrami. UŻYCIE NA WŁASNE
RYZYKO.
- --security-help
- Wyświetla krótką informację o użyciu na
temat wszystkich opcji --security-*.
- --security-freeze
- Zamraża ustawienia bezpieczeństwa napędu.
Napęd nie akceptuje żadnych poleceń
bezpieczeństwa do kolejnego resetu przy podłączeniu
zasilania. Proszę użyć tę funkcję w
kombinacji z --security-unlock do zabezpieczenia dysku przed jakimikolwiek
próbami ustawienia nowego hasła. Może
również zostać użyta samodzielnie. Z tą
opcją nie można podać w wierszu poleceń
żadnych innych opcji.
- --security-prompt-for-password
- Pyta o HASLO do opcji --security zamiast uzyskiwać go z
argumentów podanych w wierszu poleceń. W ten sposób
unika się ujawniania haseł w historii powłoki lub w
/proc/self/cmdline podczas wykonywania operacji.
- --security-unlock
HASLO
- Odblokowuje napęd, używając hasła
HASLO. Hasło jest podane jako łańcuch ASCII i
jest uzupełniane znakami NUL do wielkości 32 bajtów.
Odpowiednie hasło napędu jest wybierane
przełącznikiem --user-master (domyślnie jest to
hasło użytkownika - "user"). Z tą
opcją w wierszu poleceń nie można podać
żadnych innych.
- --security-set-pass
HASLO
- Blokuje napęd, używając hasła HASLO
(ustawia hasło) (NIEBEZPIECZNE). Hasło jest podane
jako łańcuch ASCII i jest wyrównany znakami NUL do
wielkości 32 bajtów. Użycie hasła specjalnego
NULL ustawia puste hasło. Odpowiednie hasło
napędu jest wybierane przełącznikiem --user-master
(domyślnie jest to hasło użytkownika -
"user"), a odpowiedni tryb bezpieczeństwa jest wybierany
przełącznikiem --security-mode. Z tą opcją w
wierszu poleceń nie można podać żadnych
innych.
- --security-disable
HASLO
- Wyłącza blokowanie napędu, używając
hasła HASLO. Hasło jest podane jako
łańcuch ASCII i jest uzupełniane znakami NUL do
wielkości 32 bajtów. Odpowiednie hasło napędu
jest wybierane przełącznikiem --user-master
(domyślnie jest to hasło użytkownika -
"user"). Z tą opcją w wierszu poleceń nie
można podać żadnych innych.
- --security-erase
HASLO
- Wykasowuje (zablokowany) napęd, używając hasła
HASLO (NIEBEZPIECZNE). Hasło jest podane jako
łańcuch ASCII i jest wyrównany znakami NUL do
wielkości 32 bajtów. Użycie hasła specjalnego
NULL reprezentuje puste hasło. Odpowiednie hasło
napędu jest wybierane przełącznikiem --user-master
(domyślnie jest to hasło użytkownika -
"user"). Z tą opcją w wierszu poleceń nie
można podać żadnych innych.
- --security-erase-enhanced
HASLO
- Wykonuje rozszerzone kasowanie (zablokowanego) napędu,
używając hasła HASLO (NIEBEZPIECZNE).
Hasło jest podane jako łańcuch ASCII i jest
uzupełniane znakami NUL do wielkości 32 bajtów.
Odpowiednie hasło napędu jest wybierane
przełącznikiem --user-master (domyślnie jest to
hasło użytkownika - "user"). Z tą
opcją w wierszu poleceń nie można podać
żadnych innych.
- --user-master
UŻYTKOWNIK
- Określa które hasło wybrać (użytkownika
- user lub główne - master). Domyślnym wyborem
jest hasło użytkownika. Użyteczne jedynie w
połączeniu z --security-unlock, --security-set-pass,
--security-disable, --security-erase lub --security-erase-enhanced.
u hasło użytkownika - user
m hasło główne - master
- --security-mode
TRYB
- Określa który tryb bezpieczeństwa (wysoki - high lub
maksymalny - maximum) ustawić. Domyślnym wyborem jest
wysoki. Użyteczne tylko w połączeniu z
--security-set-pass.
h wysokie (high) bezpieczeństwo
m maksymalne (maximum) bezpieczeństwo
TA FUNKCJA JEST EKSPERYMENTALNA I NIEZBYT DOBRZE
PRZETESTOWANA. UŻYCIE NA WŁASNE RYZYKO.
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 do SCSI) mogą nie
działać ze starszymi jądrami, w których
potrzebne ioctl()'e nie były obsługiwane.
Chociaż to narzędzie jest skierowane przede
wszystkim do użytku z napędami dysków twardych
SATA/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.
Jądro Linux aż do wersji 2.6.12 (i prawdopodobnie
późniejszych) nie obsługuje prawidłowo
odblokowania opcji bezpieczeństwa i wyłączania
poleceń, co może powodować naruszenie ochrony
pamięci, a w niektórych przypadkach nawet panikę
jądra. Polecenia bezpieczeństwa mogą być jednak
wykonane przez napęd. To nieprawidłowe zachowanie jądra
czyni w tej chwili polecenia bezpieczeństwa związane z danymi
PIO raczej bezużyteczne.
Proszę zauważyć, że polecenia
"security erase" i "security disable" zostały
zaimplementowane jako dwa kolejne polecenia danych PIO i nie powiodą
się na zablokowanym napędzie, ponieważ drugie polecenie
nie zostanie wydane po naruszeniu ochrony pamięci. Proszę
zapoznać się z kodem, aby uzyskać wskazówki jak
je załatać, aby ominąć ten problem.
Niezależnie od naruszenie ochrony pamięci, zawsze
możliwe jest uruchomienie dwóch kopii hdparm
jednocześnie i wydanie dwóch potrzebnych poleceń w ten
sposób.
hdparm został napisany przez Marka Lorda
<mlord@pobox.com>, głównego twórcę i
opiekuna sterownika (E)IDE do Linuksa, obecnie zajmującego się
podsystemem libata; wraz z uwzględnieniem sugestii i łatek od
wielu innych osób.
Kod wyłączający automatyczne
oszczędzanie energii w Seagate został napisany przez Tomiego
Leppikangasa <tomilepp@paju.oulu.fi>.
Polecenie zamrażania ustawień bezpieczeństwa
dodał Benjamin Benz w roku 2005.
Polecenia bezpieczeństwa związane z pozyskaniem
danych PIO napisał Leonard den Ottolander w roku 2005.
Niektóre inne części - Benjamin Benz i inni.
http://www.t13.org/ Technical Committee T13 AT Attachment
(ATA/ATAPI) Interface.
http://www.serialata.org/ Serial ATA International
Organization.
http://www.compactflash.org/ CompactFlash Association.
Autorami polskiego tłumaczenia niniejszej strony
podręcznika są: Przemek Borys <pborys@dione.ids.pl>,
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, Grzegorz
Goławski <grzegol@pld.org.pl> i Michał Kułach
<michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną
dokumentacją. Bliższe informacje o warunkach licencji
można uzyskać zapoznając się z
GNU General
Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika
prosimy zgłaszać na adres listy dyskusyjnej
manpages-pl-list@lists.sourceforge.net.