NAZWA¶
hdparm - pobiera/ustawia parametry dysku SATA/IDE
SKŁADNIA¶
hdparm [
opcje] [
urządzenie ...]
OPIS¶
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.
OPCJE¶
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 kilobajtach (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 kB:
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.
- --Istdin
- Jest to specjalna odmiana opcji -I, która
akceptuje blok identyfikacyjny dysku jako standardowe wejście zamiast
używania parametru /dev/hd*. Format tego bloku musi być
dokładnie taki sam jak w "plikach"
/proc/ide/*/hd*/identify lub utworzony za pomocą opcji
--Istdout opisanej poniżej. Ta odmiana jest przeznaczona do
użytku z "bibliotekami" informacji identyfikacyjnych dysku,
oraz z dyskami ATAPI, dla których standardowe mechanizmy mogą
działać błędnie. Gdy używana jest opcja
--Istdin, musi być ona *jedynym* podanym parametrem.
- --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 kommbinacjami
ustawień -dmu Opcja -k powinna więc być
ustawiana tylko gdy jesteś przekonany, że to co robisz jest
dobre. Praktycznie, wszystko co trzeba zrobić aby przetestować
konfigurację (przed użyciem -k) to sprawdzenie czy napęd
daje się odczytać/zapisać i czy proces nie generuje
błędów w logach (komunikaty jądra) (w
większości systemów zajrzyj do /var/adm/messages).
- -K
- 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 (32KB) buforów w napędach i niezoptymalizowanych
algorytmów buforowania. Opcja -i może
służyć do znajdywania maksymalnej wspieranej wartości
zainstalowanego napędu (szukaj MaxMultSect na wyjściu).
Niektóre napędy twierdzą, że wspierają ten tryb,
lecz tracą dane przy niektórych ustawieniach. W rzadkich
wypadkach, takie błędy mogą spowodować
poważne uszkodzenie systemu plików.
- --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.
- -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.
- --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.
Zestaw funkcji bezpieczeństwa ATA¶
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-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.
PLIKI¶
/etc/hdparm.conf
BŁĘDY¶
Jak zauważono powyżej, opcje
-m sectcount i
-u 1 powinny
być używane z ostrożnością, najlepiej na systemie
plików tylko dla odczytu. Większość napędów
pracuje z tymi właściwościami dobrze, lecz zdarzają
się wyjątki. System plików może wtedy ulec zniszczeniu.
Pamiętaj o backupie przed takimi eksperymentami!
Niektóre opcje (np. -r 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.
AUTOR¶
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.
ZOBACZ TAKŻE¶
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.
TŁUMACZENIE¶
Ze względu na specyfikę tego programu, proszę korzystać z
oryginalnej, angielskojęzycznej dokumentacji, dostępnej po
wydaniu polecenia
man --locale=C 8 hdparm, aby uniknąć
konsekwencji wynikających z możliwych błędów w
tłumaczeniu. Jeśli to niemożliwe, proszę upewnić
się, że podręcznik jest
aktualny i dotyczy używanej
wersji programu.
Autorami polskiego tłumaczenia niniejszej strony podręcznika man
są: Przemek Borys (PTM) <pborys@p-soft.silesia.linux.org.pl>,
Andrzej M. Krzysztofowicz (PTM) <ankry@green.mf.pg.gda.pl>, Grzegorz
Goławski (PTM) <grzegol@pld.org.pl> i Michał Kułach
<michal.kulach@gmail.com>.
Polskie tłumaczenie jest częścią projektu manpages-pl;
uwagi, pomoc, zgłaszanie błędów na stronie
http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją
9.39 oryginału.