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.
/etc/hdparm.conf
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 <
[email protected]>,
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
<
[email protected]>.
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 <
[email protected]>, Andrzej Krzysztofowicz
<
[email protected]>, Grzegorz Goławski
<
[email protected]> i Michał Kułach
<
[email protected]>
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
[email protected]