Scroll to navigation

HDPARM(8) System Manager's Manual HDPARM(8)

NUME

hdparm - obține/stabilește parametrii dispozitivului SATA/IDE

SINOPSIS

hdparm [opțiuni] [dispozitiv ...]

DESCRIERE

hdparm oferă o interfață de linie de comandă pentru diverse interfețe ale nucleului acceptate de subsistemul Linux SATA/PATA/SAS „libata” și de subsistemul mai vechi al controlorului IDE. Multe carcase de unități USB mai noi (2008 și ulterior) accertă acum și „SAT” (SCSI-ATA Command Translation) și, prin urmare, pot funcționa și cu hdparm. De exemplu, modelele WD „Passport” recente și carcasele NexStar-3 recente. Unele opțiuni pot funcționa corect numai cu cele mai recente nuclee.

OPȚIUNI

Atunci când nu sunt indicate opțiuni, se presupune -acdgkmur. Pentru opțiunile „obține/stabilește”, o interogare fără parametrul opțional (de exemplu, „-d”) va consulta (obține) starea dispozitivului, iar cu un parametru (de exemplu, „-d0”) va defini starea dispozitivului.

Obține/stabilește numărul de sectoare pentru citirea-anticipată a sistemului de fișiere (prin software). Această funcție este utilizată pentru a îmbunătăți performanța în citirile secvențiale ale fișierelor mari, prin citirea în prealabil a blocurilor suplimentare înainte ca acestea să fie necesare pentru sarcina în curs. Multe unități IDE au, de asemenea, o funcție separată de citire-anticipată încorporată, care sporește această funcție de citire-anticipată a sistemului de fișiere (prin software).
Obține/stabilește starea caracteristicii „read-lookahead” a unității IDE (de obicei „ON” (activată) în mod implicit). Utilizare: -A0 (dezactivată) sau -A1 (activată).
Obțineți/stabilește starea magistralei.
Obține/configurează funcția de gestionare avansată a alimentării, dacă unitatea o acceptă. O valoare mică înseamnă gestionare agresivă a consumului de energie, iar o valoare mare înseamnă performanță mai bună. Valorile posibile variază de la 1 la 127 (care permit reducerea turației discurilor) și de la 128 la 254 (care nu permit reducerea turației discurilor).Cel mai înalt grad de gestionare a consumului de energie este atins cu o valoare de 1, iar cea mai mare performanță de I/O cu o valoare de 254. O valoare de 255 îi spune lui hdparm să dezactiveze complet gestionarea avansată a alimentării pe unitate (nu toate unitățile acceptă dezactivarea, dar majoritatea o fac).
Obține/configurează suportul (E)IDE In/Ieș pe 32 de biți. Un parametru numeric poate fi utilizat pentru a activa/dezactiva suportul I/O pe 32 de biți. Valorile acceptate în prezent includ 0 pentru a dezactiva suportul In/Ieș pe 32 de biți, 1 pentru a activa transferurile de date pe 32 de biți și 3 pentru a activa transferurile de date pe 32 de biți cu o secvență specială sync cerută de multe cipuri. Valoarea 3 funcționează cu aproape toate cipurile IDE pe 32 de biți, dar implică un nivel de încărcare puțin mai mare. Rețineți că „32 de biți” se referă numai la transferurile de date pe o magistrală PCI sau VLB către placa de interfață; toate unitățile (E)IDE au în continuare numai o conexiune pe 16 biți pe cablul de panglică de la placa de interfață.
Verifică starea curentă a modului de alimentare IDE, care va fi întotdeauna una dintre următoarele: unknown (unitatea nu acceptă această comandă), active/idle (funcționare normală), standby (mod de consum redus, unitatea s-a oprit) sau sleeping (mod de consum redus, unitatea este complet oprită). Opțiunile -S, -y, -Y, și -Z pot fi utilizate pentru a manipula modurile de alimentare IDE.
Obține/configurează fanionul „using_dma” pentru această unitate. Această opțiune funcționează acum cu majoritatea combinațiilor de unități și interfețe PCI care acceptă DMA și care sunt cunoscute de controlorul IDE al nucleului. De asemenea, este o idee bună să utilizați opțiunea corespunzătoare -X în combinație cu -d1 pentru a vă asigura că unitatea însăși este programată pentru modul DMA corect, deși majoritatea BIOS-urilor ar trebui să facă acest lucru pentru dvs. la pornire. Utilizarea DMA oferă aproape întotdeauna cea mai bună performanță, cu un debit de In/Ieș rapid și o utilizare redusă a CPU. Cu toate acestea, există cel puțin câteva configurații de cipuri și unități pentru care DMA nu face o mare diferență sau poate chiar încetini lucrurile (în cazul unui hardware foarte defectuos!). Rezultatul poate varia.
DCO înseamnă „Device Configuration Overlay” = suprascrierea configurației dispozitivului, o modalitate prin care furnizorii pot dezactiva selectiv anumite caracteristici ale unei unități. Opțiunea --dco-freeze va îngheța/bloca configurația curentă a unității, împiedicând astfel software-ul (sau programele malware) să modifice orice parametri DCO până după următoarea reinițializare la pornire.
Solicită și descarcă informații privind opțiunile de configurare a unității care pot fi dezactivate de fabricant sau de instalatorul OEM. Aceste opțiuni arată capacitățile unității care ar putea fi dezactivate de fabricant pentru „compatibilitate sporită”. Atunci când sunt dezactivate, acestea sunt altfel ascunse și nu vor fi afișate în rezultatul identificării -I. De exemplu, producătorii de sisteme dezactivează uneori adresarea pe 48_bit la unitățile mari, pentru compatibilitate (și pierdere de capacitate) cu un BIOS specific. În astfel de cazuri, --dco-identify va arăta că unitatea este capabilă de 48_bit, dar -I nu va arăta acest lucru și nici unitatea nu va accepta comenzi 48_bit.
Restabilește toate valorile implicite din fabrică și capacitățile complete ale tuturor parametrilor, funcțiilor și capacităților accesibile ale unității. Această comandă va eșua dacă DCO este înghețat/blocat sau dacă a fost stabilită și o restricție de dimensiune maximă -Np. Acest lucru este EXTREM DE PERICULOS și va cauza foarte probabil pierderi masive de date. NU UTILIZAȚI ACEASTĂ COMANDĂ.
Utilizați fanionul „O_DIRECT” al nucleului atunci când efectuați un test de sincronizare -t. Aceasta ocolește memoria cache de pagină, făcând ca citirile să meargă direct de pe unitate în tampoanele hdparm, folosind așa-numita In/Ieș „brută”. În multe cazuri, acest lucru poate produce rezultate care par mult mai rapide decât metoda obișnuită a paginii cache, oferind o indicație mai bună a performanței brute a dispozitivului și a controlorului.
FOARTE PERICULOASĂ, NICI SĂ NU VĂ GÂNDIȚI SĂ O FOLOSIȚI. Această opțiune face ca hdparm să emită o comandă IDENTIFY către nucleu, dar marcată incorect ca o comandă „non-data”. Acest lucru face ca unitatea să rămână cu linia sa DataReQust(DRQ) „blocată” la un nivel ridicat. Acest lucru creează confuzie în controlorii nucleului și poate duce la prăbușirea imediată a sistemului, cu pierderi masive de date. Această opțiune există pentru a ajuta la testarea și fortificarea nucleului împotriva unor disfuncționalități similare ale unităților din lumea reală. FOARTE PERICULOASĂ, A NU SE UTILIZA!!
Activează/dezactivează funcția de gestionare a defectelor pe unitate, prin care firmware-ul unității încearcă să gestioneze automat sectoarele defecte prin realocarea lor în sectoare „de rezervă” rezervate de fabrică pentru acestea. Controlul acestei funcții prin intermediul opțiunii -D nu este acceptat pentru majoritatea unităților moderne de la ATA-4; prin urmare, această comandă poate eșua.
Stabilește viteza unității cd/dvd. Această opțiune NU este necesară pentru funcționarea obișnuită, deoarece unitatea își va schimba singură viteza în mod automat. Dar dacă doriți să vă jucați cu ea, trebuie doar să furnizați un număr de viteză după opțiune, de obicei un număr ca 2 sau 4. Totuși, acest lucru poate fi util în unele cazuri, pentru a ușura redarea DVD-urilor video.
Sincronizează și golește cache-ul tampon pentru dispozitiv la ieșire. Această operație este, de asemenea, efectuată intern ca parte a opțiunilor de temporizare -t și -T și a altor opțiuni.
Această opțiune funcționează în prezent numai pe tipurile de sisteme de fișiere ext4 și xfs. Atunci când este utilizată, aceasta trebuie să fie singura opțiune oferită. Aceasta necesită doi parametri: dimensiunea dorită a fișierului în kibiocteți (numărul de octeți împărțit la 1024), urmată de numele rutei pentru noul fișier. Se va crea un nou fișier cu dimensiunea specificată, dar fără a scrie efectiv date în fișier. În mod normal, această operație se va încheia foarte rapid și fără a distruge dispozitivul de stocare.
De exemplu, creează un fișier de 10 kibiocteți: hdparm --fallocate 10 temp_file
Atunci când este utilizată, aceasta trebuie să fie singura opțiune oferită. Aceasta necesită ca parametru o rută a fișierului și va afișa o listă a blocurilor extents (intervale de sectoare) ocupate de fișierul respectiv pe disc. Numerele sectoarelor sunt date ca numere LBA absolute, referite la sectorul 0 al dispozitivului fizic, și nu la partiție sau la sistemul de fișiere. Aceste informații pot fi apoi utilizate în diverse scopuri, cum ar fi examinarea gradului de fragmentare a fișierelor mai mari sau determinarea sectoarelor adecvate pentru a le corupe în mod deliberat în timpul procedurilor de testare prin injectarea de erori.
Această opțiune utilizează noul ioctl() FIEMAP (file extent map) atunci când este disponibil și revine la vechiul ioctl() FIBMAP (file block map) în caz contrar. Rețineți că FIBMAP suferă de pe urma unei interfețe cu numere de bloc pe 32 de biți și, prin urmare, nu funcționează dincolo de 8 To sau 16 To. FIBMAP este, de asemenea, foarte lent și nu se descurcă bine cu blocurile extents(intervale de sectoare) nefolosite prealocate în sistemele de fișiere ext4/xfs, cu excepția cazului în care se efectuează o sincronizare() înainte de utilizarea acestei opțiuni.
Atunci când este utilizată, aceasta trebuie să fie singura opțiune dată. Aceasta necesită o rută de fișier imediat după opțiune, indicând de unde ar trebui citit noul firmware al unității. Conținutul acestui fișier va fi trimis către unitate folosind comanda (S)ATA DOWNLOAD MICROCODE, utilizând fie protocolul de transfer 7 (întregul fișier odată), fie, dacă unitatea îl acceptă, protocolul de transfer 3 (descărcare segmentată). Această comandă este EXTREM DE PERICULOASĂ și poate distruge atât unitatea, cât și toate datele de pe aceasta. Variantele --fwdownload-mode3 , --fwdownload-mode3-max și --fwdownload-mode7 ale comenzii de bază --fwdownload permit anularea detectării automate a protocolului în favoarea forțării hdparm să utilizeze un protocol de transfer specific, numai în scopuri de testare.
Golește memoria tampon a cache-ului de scriere de pe unitate (este posibil ca unitățile mai vechi să nu poată implementa acest lucru).
Afișează geometria unității (cilindri, capete, sectoare), dimensiunea (în sectoare) a dispozitivului și decalajul inițial (în sectoare) al dispozitivului de la începutul unității.
Afișează informații succinte despre utilizare (ajutor).
Citește temperatura de la unele unități (mai ales Hitachi). De asemenea, raportează dacă temperatura este în intervalul condițiilor de funcționare (acest lucru poate să nu fie fiabil). Nu determină pornirea unității dacă este inactivă.
Afișează informațiile de identificare pe care controlorii nucleului (IDE, libata) le-au stocat din momentul pornirii/configurării. Acestea pot fi diferite de informațiile actuale care pot fi obținute direct de la unitatea însăși cu opțiunea -I. Datele returnate pot fi sau nu actuale, în funcție de activitatea de la pornirea sistemului. Pentru o interpretare mai detaliată a informațiilor de identificare, consultați AT Attachment Interface for Disk Drives, ANSI ASC X3T9.2 working draft, revision 4a, 19 aprilie 1993, și edițiile ulterioare.
Emite o comandă ATA IDLE_IMMEDIATE, pentru a pune unitatea într-o stare de consum redus. De obicei, dispozitivul rămâne pornit.
Emiteți o comandă ATA IDLE_IMMEDIATE_WITH_UNLOAD, pentru a descărca sau staționa capetele și a pune unitatea într-o stare de consum De obicei, dispozitivul rămâne pornit.
Solicită informații de identificare direct de la unitate, care sunt afișate într-un format nou extins, cu mult mai multe detalii decât cu vechea opțiune -i.
Această opțiune descarcă datele de identificare ale unității în format binar brut în fișierul specificat.
Aceasta este o variație specială a opțiunii -I, care acceptă un bloc de identificare a unității ca intrare standard în loc să utilizeze un parametru /dev/hd*. Formatul acestui bloc trebuie să fie exact același cu cel găsit în „fișierele” /proc/ide/*/hd*/identify sau cu cel produs de opțiunea --Istdout descrisă mai jos. Această variantă este concepută pentru a fi utilizată cu „biblioteci” colectate de informații de identificare a unităților și poate fi utilizată, de asemenea, pe unități ATAPI care pot produce erori de mediu cu mecanismul standard. Atunci când se utilizează --Istdin, acesta trebuie să fie *unicul* parametru dat. Rețineți că unele informații vor fi incomplete, deoarece paginile LOG ale unității nu sunt disponibile atunci când se utilizează --Istdin.
Această opțiune descarcă datele de identificare ale unității în format hexazecimal la ieșirea standard, într-un format similar cu cel din „/proc/ide/*/identify”, și adecvat pentru utilizarea ulterioară cu opțiunea --Istdin.
Obține/stabilește valoarea timpului de așteptare „idle3” al unității Western Digital (WD) Green Drive. Acest timp de așteptare controlează cât de des unitatea își „parchează” capetele și intră într-o stare de consum redus de energie. Valoarea implicită din fabrică este de opt (8) secunde, care este o alegere foarte proastă pentru utilizarea cu Linux. Dacă îl lăsați la valoarea implicită, veți obține sute de mii de cicluri de încărcare/descărcare a capetelor într-o perioadă foarte scurtă de timp. Mecanismul unității este evaluat doar pentru 300.000-1.000.000 de cicluri, astfel încât lăsarea acestuia la valoarea implicită ar putea duce la defectarea prematură, fără a mai menționa impactul asupra performanței al unității care trebuie să se trezească adesea înainte de a efectua operațiile de In/Ieș de rutină.
WD furnizează un utilitar DOS WDIDLE3.EXE pentru modificarea acestei opțiuni și ar trebui să utilizați acest program în loc de hdparm, dacă este posibil. Implementarea prin inginerie inversă în hdparm nu este la fel de completă ca programul oficial original, chiar dacă pare să funcționeze pe cel puțin câteva unități. Este necesar un ciclu complet de alimentare pentru ca orice modificare a parametrilor să aibă efect, indiferent de programul utilizat pentru a modifica lucrurile.
O valoare de 30 de secunde este recomandată pentru utilizarea Linux. Valorile permise sunt de la 8 la 12 secunde și de la 30 la 300 de secunde în trepte de 30 de secunde. Specificați o valoare de zero (0) pentru a dezactiva complet temporizatorul WD idle3 (NU ESTE RECOMANDAT!).
Obține/stabilește starea fanionului "keep_settings_over_reset" *activat/dezactivat) pentru unitate. Atunci când acest fanion este activat, unitatea va păstra parametrii -dmu la o reinițializare software (așa cum se face în timpul secvenței de recuperare a erorilor). Această opțiune are valoarea implicită dezactivată, pentru a preveni buclele de reinițializare a unității care ar putea fi cauzate de combinații de parametri -dmu. Prin urmare, opțiunea -k ar trebui definită numai după ce s-a obținut încrederea în funcționarea corectă a sistemului cu un set ales de parametri de configurare. În practică, tot ceea ce este de obicei necesar pentru a testa o configurație (înainte de a utiliza -k) este să se verifice dacă unitatea poate fi citită/scrisă și dacă nu sunt generate jurnale de erori (mesaje ale nucleului) în acest proces (căutați în „/var/log/messages” pe majoritatea sistemelor).
Activează fanionul „keep_features_over_reset” al unității. Activarea acestuia permite unității să păstreze parametrii pentru -APSWXZ după o reinițializare via software (așa cum se face în timpul secvenței de recuperare după eroare). Nu toate unitățile acceptă această caracteristică.
Stabilește starea fanionului de blocare a ușii unității (activat/dezactivat). Stabilirea acesteia la 1 va bloca mecanismul ușii unor unități de discuri dure detașabile (de exemplu, Syquest, ZIP, Jazz...), iar stabilirea acesteia la 0 va debloca mecanismul ușii. În mod normal, Linux menține mecanismul de blocare a ușii în mod automat, în funcție de utilizarea unității (blocat ori de câte ori este montat un sistem de fișiere). Dar la închiderea sistemului, acest lucru poate fi o pacoste dacă partiția rădăcină se află pe un disc detașabil, deoarece partiția rădăcină este lăsată montată (numai pentru citire) după închidere. Prin urmare, utilizând această comandă pentru a debloca ușa după ce sistemul de fișiere rădăcină este remontat numai în citire, se poate apoi scoate încărcătorul de pe unitate după închidere.
Obține/ stabilește numărul de sectoare pentru I/O cu sectoare multiple pe unitate. O valoare de 0 dezactivează această caracteristică. Modul cu sectoare multiple (cunoscut și sub numele de IDE Block Mode) este o caracteristică a celor mai moderne unități de discuri dure IDE, care permite transferul mai multor sectoare per întrerupere In/Ieș, în loc de un sector per întrerupere. Atunci când această caracteristică este activată, ea reduce de obicei cu 30-50% supraîncărcarea sistemului de operare pentru In/Ieș pe disc. Pe multe sisteme, aceasta asigură, de asemenea, o creștere a fluxului de date de la 5% la 50%. Cu toate acestea, unele unități (în special cele din seria WD Caviar) par să funcționeze mai lent cu modul multiplu activat. Rezultatul poate varia. Majoritatea unităților acceptă valorile minime de 2, 4, 8 sau 16 (sectoare). În funcție de unitate, pot fi posibile și valori mai mari. O valoare de 16 sau 32 pare optimă pe multe sisteme. Western Digital recomandă valori mai mici de 4 sau 8 pe multe dintre unitățile sale, din cauza memoriilor tampon minuscule (32kB) ale unităților și a algoritmilor de memorie tampon neoptimizați. Opțiunea -i poate fi utilizată pentru a găsi valoarea maximă acceptată de o unitate instalată (căutați MaxMultSect în ieșire). Unele unități pretind că acceptă modul multiplu, dar pierd date la anumite valori. În circumstanțe rare, astfel de eșecuri pot duce la corupția masivă a sistemului de fișiere.
Creează în mod deliberat un sector defect (aka. „eroare media”) pe disc. EXCEPȚIONAL DE PERICULOASĂ. NU FOLOSIȚI ACEASTĂ OPȚIUNE!! Aceasta poate fi utilă pentru testarea mecanismelor de recuperare în caz de eroare a dispozitivului/RAID. Numărul sectorului este dat ca parametru (base10) după opțiune. În funcție de dispozitiv, hdparm va alege una dintre cele două comenzi ATA posibile pentru coruperea sectorului. Comanda WRITE_LONG funcționează pe majoritatea unităților, dar numai până la limita sectorului de 28 de biți. Unele unități foarte recente (2008) pot fi compatibile cu noua comandă WRITE_UNCORRECTABLE_EXT, care funcționează pentru orice sector LBA48. Dacă această comandă este disponibilă, hdparm o va utiliza de preferință față de WRITE_LONG. Comanda WRITE_UNCORRECTABLE_EXT oferă posibilitatea de a alege cum ar trebui să se comporte noul sector defect. În mod implicit, acesta va arăta ca orice alt sector defect, iar unitatea poate dura ceva timp pentru a încerca din nou și a eșua la citirile ulterioare ale sectorului. Cu toate acestea, dacă o singură literă f este atașată imediat în fața primei cifre a parametrului numărului sectorului, atunci hdparm va emite un WRITE_UNCORRECTABLE_EXT „marcat”, ceea ce determină unitatea să marcheze doar sectorul ca fiind rău (în loc să îl corupă cu adevărat), iar citirile ulterioare ale sectorului vor eșua imediat (nu după mai multe încercări). Rețineți, de asemenea, că opțiunea --repair-sector poate fi utilizată pentru a restaura (orice) sector deteriorat atunci când nu mai este necesar, inclusiv sectoarele care au fost cu adevărat deteriorate (unitatea le va realoca probabil într-o zonă nouă pe suport).
Obține/configurează opțiunea de gestionare automată a nivelului acustic („Automatic Acoustic Management ”: AAM). Majoritatea unităților moderne de discuri dure au capacitatea de a accelera mișcările capului pentru a reduce zgomotul produs. Valorile posibile sunt cuprinse între 0 și 254. 128 este valoarea cea mai silențioasă (și, prin urmare, cea mai lentă), iar 254 este cea mai rapidă (și cea mai zgomotoasă). Unele unități au doar două niveluri (silențios / rapid), în timp ce altele pot avea niveluri diferite între 128 și 254. În prezent, majoritatea unităților acceptă doar 3 opțiuni: oprit, silențios și rapid. În prezent, acestora le-au fost atribuite valorile 0, 128 și, respectiv, 254, dar a fost încorporat un spațiu întreg pentru extinderea viitoare, în cazul în care acest lucru se schimbă.
Obține sau activează fanionul „ignore_write_errors” în controlor. NU vă jucați cu acest lucru fără să înțelegeți mai întâi codul sursă al controlorului.
Obține/stabilește numărul maxim vizibil de sectoare, cunoscut și ca configurarea Host Protected Area. Fără un parametru, -N afișează valoarea curentă, care este raportată ca două valori: prima oferă valoarea curentă a configurării numărului maxim de sectoare, iar a doua arată limita hardware nativă (reală) pentru disc. Diferența dintre aceste două valori indică numărul de sectoare ale discului care sunt în prezent ascunse de sistemul de operare, sub forma unei zone Host Protected Area (HPA). Această zonă este adesea utilizată de fabricanții de calculatoare pentru a stoca software de diagnosticare și/sau o copie a sistemului de operare furnizat inițial în scopuri de recuperare. O altă utilizare posibilă este de a ascunde capacitatea reală a unui disc foarte mare de un BIOS/sistem care, în mod normal, nu poate face față unităților de această dimensiune (de exemplu, majoritatea sistemelor actuale {2010} BIOS-urile nu pot gestiona unități mai mari de 2To, astfel încât un HPA ar putea fi utilizat pentru a face ca o unitate de 3To să se raporteze ca o unitate de 2To). Pentru a schimba valoarea maximă actuală (FOARTE PERICULOS, PIERDEREA DATELOR ESTE EXTREM DE PROBABILĂ), trebuie furnizată o nouă valoare (în baza 10) imediat după opțiunea -N. Această valoare este specificată ca număr de sectoare, și nu ca „adresa sectorului maxim” al unității. Unitățile au conceptul unei configurări temporare (volatile) care se pierde la următoarea reinițializare hardware, precum și o valoare mai permanentă (non-volatile) care supraviețuiește reinițierilor și ciclurilor de alimentare. În mod implicit, -N afectează numai configurarea temporară (volatilă). Pentru a modifica valoarea permanentă (nevolatilă), adăugați un caracter p imediat înaintea primei cifre a valorii. Se presupune că unitățile trebuie să permită doar o singură modificare permanentă pe sesiune. Este necesară o repornire hardware (sau un ciclu de alimentare) înainte ca o altă operație permanentă -N să poată avea succes. Rețineți că orice încercare de a stabili această valoare poate eșua dacă discul este accesat de alt software în același timp. Acest lucru se datorează faptului că stabilirea valorii necesită o pereche de comenzi de unitate spate în spate, dar nu există nicio modalitate de a împiedica inserarea unei alte comenzi între ele de către nucleu. Deci, dacă nu reușește inițial, încercați din nou. Suportul nucleului pentru -N este eronat pentru multe tipuri de adaptoare în multe versiuni de nucleu, în sensul că uneori este raportată o valoare incorectă (prea mică) a dimensiunii maxime. Începând cu nucleul 2.6.27, acest lucru pare să funcționeze în cele din urmă pe majoritatea hardware-urilor.
Decalaje la un număr dat de Gio (1024*1024*1024) atunci când se efectuează temporizări -t ale citirilor dispozitivului. Viteza se modifică (de aproximativ două ori) de-a lungul multor unități mecanice. De obicei, maximul este la început, dar nu întotdeauna. Unitățile cu stare solidă (SSD) ar trebui să prezinte temporizări similare, indiferent de decalaj.
Încearcă să reprogrameze cipul interfeței IDE pentru modul PIO specificat sau încearcă să ajusteze automat pentru „cel mai bun” mod PIO acceptat de unitate. Această caracteristică este acceptată în nucleu doar pentru câteva cipuri „cunoscute”, și chiar și atunci suportul este cel puțin îndoielnic. Unele cipuri IDE nu sunt capabile să modifice modul PIO pentru o singură unitate, caz în care această opțiune poate determina configurarea modului PIO pentru ambele unități. Multe cipuri IDE acceptă fie mai puține, fie mai multe decât cele șase moduri PIO standard (de la 0 la 5), astfel încât stabilirea exactă a vitezei care este de fapt implementată va varia în funcție de sofisticarea cipului/controlorului. Utilizați cu prudență extremă! Această caracteristică nu include nicio protecție pentru cei neatenți, iar un rezultat nereușit poate duce la corupția gravă a sistemului de fișiere!
Stabilește numărul maxim de sectoare pentru mecanismul intern de pre-citire al unității. Nu toate unitățile sunt compatibile cu această caracteristică, iar aceasta a fost eliminată din specificațiile oficiale începând cu ATA-4.
Atunci când utilizează protocolul SAT (SCSI ATA Translation), hdparm preferă în mod normal să utilizeze formatul de comandă de 16 octeți ori de câte ori este posibil. Cu toate acestea, unele carcase de unități USB nu funcționează corect cu comenzi de 16 octeți. Această opțiune poate fi utilizată pentru a forța utilizarea formatului de comandă mai mic, de 12 octeți, cu astfel de unități. hdparm va reveni în continuare la comenzile de 16 octeți pentru lucrurile care nu pot fi realizate cu formatul de 12 octeți (de exemplu, accesarea sectoarelor de peste 28 de biți).
Procesează următoarea opțiune în liniște, suprimând ieșirea normală (dar nu și mesajele de eroare). Acest lucru este util pentru a reduce aglomerarea ecranului atunci când se execută din scripturile de pornire ale sistemului. Nu se aplică opțiunilor -i sau -v sau -t sau -T.
Obține sau stabilește adâncimea cozii de comenzi a dispozitivului, dacă este acceptată de hardware. Acest lucru funcționează numai cu nucleele 2.6.xx (sau mai recente) și numai cu combinații de dispozitive și controlori care acceptă modificarea queue_depth. Pentru discurile SATA, aceasta este adâncimea cozii de comenzi native („Native Command Queuing”: NCQ).
Obține/activează fanionul de numai-citire pentru dispozitiv. Atunci când este activat, Linux nu permite operațiile de scriere pe dispozitiv.
Obține starea/activează funcția Write-Read-Verify, dacă unitatea o acceptă. Utilizare: -R0 (dezactivare) sau -R1 (activare). Această funcție este destinată citirii automate de către firmware-ul unității a oricăror date care sunt scrise prin software, pentru a verifica dacă datele au fost scrise cu succes. În general, acest lucru este exagerat și poate încetini scrierile pe disc cu un factor de până la două ori (sau mai mult).
Citește din numărul de sector specificat și descarcă conținutul în hexazecimal la ieșirea standard. Numărul sectorului trebuie indicat (baza 10) după această opțiune. hdparm va efectua o citire de nivel scăzut (ocolind complet mecanismele obișnuite de citire/scriere din stratul de bloc) pentru sectorul specificat. Acest lucru poate fi utilizat pentru a verifica în mod definitiv dacă un anumit sector este defect (eroare de suport) sau nu (procedând astfel prin mecanismele obișnuite se pot obține uneori rezultate fals pozitive).
Acesta este un alias pentru opțiunea --write-sector. FOARTE PERICULOASĂ.
Activează/dezactivează funcția de pornire în modul de așteptare, dacă este acceptată de unitate. FOARTE PERICULOS. Nu utilizați decât dacă sunteți absolut sigur că atât BIOS-ul (sau firmware-ul) sistemului, cât și nucleul sistemului de operare (Linux >= 2.6.22) acceptă sondarea pentru unitățile care utilizează această caracteristică. Atunci când este activată, unitatea este alimentată în modul standby pentru a permite controlorului să secvențieze pornirea dispozitivelor, reducând sarcina consumului instantaneu de curent atunci când mai multe unități împart o sursă de alimentare. Utilizat în principal în configurații RAID mari. Această caracteristică este de obicei dezactivată și unitatea este alimentată în modul active (a se vedea opțiunea „-C” de mai sus). Rețineți că o unitate poate permite, de asemenea, activarea acestei funcții prin intermediul unui „jumper” (ștrap). Unele unități SATA acceptă controlul acestei funcții prin pinul 11 al conectorului de alimentare SATA. În aceste cazuri, această comandă poate să nu fie acceptată sau poate să nu aibă niciun efect.
Pune unitatea în modul inactiv (cu consum redus de energie) și, de asemenea, stabilește timpul de așteptare („spindown”, reducerea vitezei de rotire a discului) pentru unitate. Această valoare a timpului de așteptare este utilizată de unitate pentru a determina cât timp să aștepte (fără activitate pe disc) înainte de a opri motorul fusului discului pentru a economisi energie. În astfel de circumstanțe, unitatea poate dura până la 30 de secunde pentru a răspunde la o accesare ulterioară a discului, deși majoritatea unităților sunt mult mai rapide. Codificarea valorii timpului de așteptare este oarecum ciudată. O valoare de zero înseamnă „timpii de așteptare sunt dezactivați”: dispozitivul nu va intra automat în modul de așteptare. Valorile de la 1 la 240 specifică multipli de 5 secunde, rezultând timpi de așteptare de la 5 secunde la 20 de minute. Valorile de la 241 la 251 specifică de la 1 la 11 unități de 30 de minute, rezultând timpi de așteptare de la 30 de minute la 5,5 ore. O valoare de 252 înseamnă un timp de așteptare de 21 de minute. O valoare de 253 stabilește o perioadă de timp de așteptare definită de fabricant între 8 și 12 ore, iar valoarea 254 este rezervată. 255 este interpretată ca 21 de minute plus 15 secunde. Rețineți că unele unități mai vechi pot avea interpretări foarte diferite ale acestor valori.
Pentru unitățile care acceptă reconfigurarea dimensiunii logice a sectorului, această opțiune poate fi utilizată pentru a specifica noua dimensiune dorită a sectorului în octeți. FOARTE PERICULOS; acest lucru, cel mai probabil, va distruge toate datele de pe unitate. Dimensiunea specificată trebuie să fie una dintre 512, 520, 528, 4096, 4160 sau 4224. Foarte puține unități acceptă alte valori decât 512 și 4096. De exemplu, hdparm --set-sector-size 4096 /dev/sdb
Efectuează cronometrări ale citirilor dispozitivului în scopuri de referință și de comparație. Pentru rezultate semnificative, această operație trebuie repetată de 2-3 ori pe un sistem inactiv (fără alte procese active) cu cel puțin câțiva megaocteți de memorie liberă. Aceasta afișează viteza de citire prin memoria tampon cache către disc, fără nicio memorare prealabilă a datelor în cache. Această măsurătoare este o indicație a vitezei cu care unitatea poate susține citirea secvențială a datelor sub Linux, fără niciun fel de supraîncărcare a sistemului de fișiere. Pentru a asigura măsurători precise, memoria cache este golită în timpul procesării -t cu ajutorul ioctl BLKFLSBUF.
Efectuează cronometrări ale citirilor din cache în scopuri de referință și de comparație Pentru rezultate semnificative, această operație ar trebui repetată de 2-3 ori pe un sistem inactiv (fără alte procese active) cu cel puțin câțiva megaocteți de memorie liberă. Aceasta afișează viteza de citire direct din memoria cache Linux fără acces la disc. Această măsurătoare este, în esență, o indicație a vitezei de transfer a procesorului, a cache-ului și a memoriei sistemului testat.
Pentru unitățile de discuri solide („Solid State Drives”: SSD). EXCEPȚIONAL DE PERICULOASĂ. NU UTILIZAȚI ACEASTĂ OPȚIUNE!! Îi indică firmware-ului unității să elimine sectoarele de date inutile, distrugând orice date care ar fi putut fi prezente în interiorul acestora. Acest lucru face ca sectoarele respective să fie disponibile pentru utilizare imediată de către mecanismul de colectare a gunoiului al firmware-ului, pentru a îmbunătăți programarea pentru nivelarea la uzură a suportului flash. Această opțiune așteaptă una sau mai multe perechi de sectoare imediat după opțiune: o adresă de pornire LBA, două puncte și un număr de sectoare (max. 65535), fără spații intermediare. EXCEPȚIONAL DE PERICULOASĂ. NU UTILIZAȚI ACEASTĂ OPȚIUNE!!
De exemplu: hdparm --trim-sector-ranges 1000:4 7894:16 /dev/sdz
Identică cu --trim-sector-ranges de mai sus, cu excepția faptului că lista de perechi lba:count este citită de la intrarea standard în loc să fie specificată în linia de comandă. Acest lucru poate fi utilizat pentru a evita problemele cu liniile de comandă excesiv de lungi. De asemenea, permite gruparea mai multor intervale de sectoare în comenzi unice către unitate, până la limita de transfer configurată în prezent (max_sectors_kb).
Obține/stabilește starea fanionului „interrupt-unmask” pentru unitate. O valoare de 1 permite controlorului să efectueze «ųnmask» asupra altor întreruperi în timpul procesării unei întreruperi de disc, ceea ce îmbunătățește considerabil capacitatea de reacție a Linux și elimină erorile de „depășire a portului serial”. Utilizați această caracteristică cu precauție: unele combinații unitate/controlor nu tolerează latențele I/O crescute posibile atunci când această caracteristică este activată, ducând la corupția masivă a sistemului de fișiere. În special, interfețele CMD-640B și RZ1000 (E)IDE pot fi nefiabile (din cauza unui defect hardware) atunci când această opțiune este utilizată cu versiuni de nucleu mai vechi de 2.0.13. Dezactivarea caracteristicii IDE prefetch a acestor interfețe (de obicei o opțiune BIOS/CMOS) oferă o rezolvare sigură a problemei pentru utilizarea cu nuclee mai vechi.
Afișează unele valori bazice ale parametrilor, similar cu „-acdgkmur” pentru IDE. Acesta este și comportamentul implicit atunci când nu sunt specificate opțiuni.
Afișează versiunea programului și iese imediat.
Afișează diagnostice suplimentare de la unele comenzi.
Efectuează o repornire a dispozitivului (PERICULOASĂ). NU utilizați această opțiune. Aceasta există pentru situații puțin probabile în care ar putea fi necesară o repornire pentru a readuce o unitate cu probleme într-o stare utilizabilă.
Scrie zerouri la numărul de sector specificat. FOARTE PERICULOS. Numărul sectorului trebuie indicat (bază 10) după această opțiune. «hdparm» va efectua o scriere la nivel scăzut (ocolind complet mecanismele obișnuite de citire/scriere la nivel de bloc) în sectorul specificat. Această opțiune poate fi utilizată pentru a forța o unitate să repare un sector defect (eroare de mediu).
Obține starea/activează caracteristica de stocare în memoria cache a unității IDE/SATA.
Stabilește modul de transfer IDE pentru unități (E)IDE/ATA. Aceasta se utilizează de obicei în combinație cu -d1 atunci când se activează DMA către/de la o unitate pe un cip de interfață acceptat, unde -X mdma2 se utilizează pentru a selecta transferurile DMA multiword modul 2 și -X sdma1 se utilizează pentru a selecta transferurile DMA simple mod 1. În cazul sistemelor care acceptă timpi de rafală UltraDMA, -X udma2 este utilizat pentru a selecta transferurile UltraDMA în modul 2 (va trebui să pregătiți în prealabil cipul pentru UltraDMA). În afară de aceasta, utilizarea acestei opțiuni este foarte rar necesară, deoarece majoritatea/toate unitățile IDE moderne aleg implicit cel mai rapid mod de transfer PIO la pornire. Modificarea acestei opțiuni poate fi atât inutilă, cât și riscantă. Înainte de a schimba modul de transfer, interfața IDE trebuie să fie „ștrapată” (utilizând pinii dedicați acestui scop, ase vedea manualul de utilizare) sau programată (a se vedea opțiunea -p) pentru noua configurație de mod pentru a preveni pierderea și/sau coruperea datelor. Pentru modurile de transfer PIO (Programmed Input/Output) utilizate de Linux, această valoare este pur și simplu numărul modului PIO dorit plus 8. Astfel, o valoare de 09 stabilește modul PIO 1, 10 activează modul PIO 2, iar 11 selectează modul PIO 3. Valoarea 00 restabilește modul PIO „implicit” al unității, iar 01 dezactivează IORDY. Pentru DMA multiword, valoarea utilizată este numărul modului DMA dorit plus 32. Pentru UltraDMA, valoarea este numărul modului UltraDMA dorit plus 64.
Forțează o unitate IDE să intre imediat în modul de consum redus de energie standby, de obicei determinând-o să se rotească încet. Starea actuală a modului de alimentare poate fi verificată utilizând opțiunea -C.
Forțează o unitate IDE să intre imediat în modul sleep cu cel mai mic consum de energie, determinând oprirea completă a acesteia. Este necesară o repornire hardware sau software înainte ca unitatea să poată fi accesată din nou (contolorul IDE Linux se va ocupa în mod automat de emiterea unei reporniri dacă/când este necesar). Starea actuală a modului de alimentare poate fi verificată utilizând opțiunea -C.
Forțează o recitire de către nucleu a tabelului de partiții al dispozitivului (dispozitivelor) specificat(e).
Dezactivează funcția automată de economisire a energiei a anumitor unități Seagate (modele ST3xxx?), pentru a le împiedica să fie inactive/să nu se rotească în momente nepotrivite.

Setul de caracteristici de securitate ATA

Aceste opțiuni sunt PERICULOASE pentru experimente și ar putea să nu funcționeze cu unele nuclee. UTILIZAȚI-LE PE PROPRIUL DVS. RISC.

Afișează informații succinte de utilizare pentru toate opțiunile „--security-*”.
Îngheață parametrii de securitate ai unității. Unitatea nu acceptă nicio comandă de securitate până la următoarea reinițializare la pornire. Utilizați această funcție în combinație cu opțiunea „--security-unlock” pentru a proteja unitatea de orice încercare de a configura o parolă nouă. Poate fi utilizată și independent. Nu sunt permise alte opțiuni în linia de comandă împreună cu aceasta.
Solicită PWD-ul „--security” în loc să îl obțină din argumentele liniei de comandă. Acest lucru evită apariția parolelor în istoricul shell-ului sau în „/proc/self/cmdline” în timpul execuției.
Deblochează unitatea, folosind parola PWD. Parola este dată ca un șir ASCII și este completată cu NUL-uri pentru a ajunge la 32 de octeți. Parola aplicabilă unității este selectată cu opțiunea „--user-master” (parola implicită este „user”). Nu sunt permise alte opțiuni în linia de comandă împreună cu aceasta.
Blochează unitatea, folosind parola PWD (Set Password) (PERICULOS). Parola este dată ca un șir ASCII și este completată cu NUL-uri pentru a ajunge la 32 de octeți. Utilizați parola specială NULL pentru a defini o parolă goală. Parola aplicabilă a unității este selectată cu ajutorul opțiunii „--user-master” (parola implicită este „user”) și modul de securitate aplicabil cu ajutorul opțiunii „--security-mode”. Nu sunt permise alte opțiuni în linia de comandă cu aceasta.
Dezactivează blocarea unității, utilizând parola PWD. Parola este dată ca un șir ASCII și este completată cu NUL-uri pentru a ajunge la 32 de octeți. Parola aplicabilă unității este selectată cu opțiunea „--user-master” (parola implicită este „user”). Nu sunt permise alte opțiuni în linia de comandă împreună cu aceasta.
Șterge unitatea (blocată), folosind parola PWD (PERICULOS). Parola este dată ca un șir ASCII și este completată cu NUL pentru a ajunge la 32 de octeți. Utilizați parola specială NULL pentru a reprezenta o parolă goală. Parola aplicabilă unității este selectată cu ajutorul opțiunii „--user-master” (parola implicită este „user”). Nu sunt permise alte opțiuni în linia de comandă cu aceasta.
Ștergere îmbunătățită (blocată) a unității, utilizând parola PWD (PERICULOS). Parola este dată sub formă de șir ASCII și este completată cu NUL-uri pentru a ajunge la 32 de octeți. Parola aplicabilă unității este selectată cu opțiunea „--user-master” (parola implicită este „user”). Nu sunt permise alte opțiuni în linia de comandă împreună cu aceasta.
Specifică parola (utilizator/maestru) care trebuie selectată. Implicit parola utilizatorului. Utilă numai în combinație cu „--security-unlock”, „--security-set-pass”, „--security-disable, --security-erase” sau „--security-erase-enhanced”.
u parola utilizatorului
m parola maestrului

Specifică modul de securitate (ridicat/maxim) care urmează să fie stabilit. În mod implicit la ridicat. Utilă numai în combinație cu opțiunea „--security-set-pass”.
h securitate ridicată
m securitate maximă

ACEASTĂ CARACTERISTICĂ ESTE EXPERIMENTALĂ ȘI NU ESTE SUFICIENT DE BINE TESTATĂ. UTILIZAȚI-O PE PROPRIUL DVS. RISC.

FIȘIERE

/etc/hdparm.conf

ERORI

După cum s-a menționat mai sus, opțiunile -m sectcount și -u 1 trebuie utilizate cu precauție la început, de preferință pe un sistem de fișiere numai-pentru-citire. Majoritatea unităților funcționează bine cu aceste caracteristici, dar câteva combinații unitate/controlor nu sunt 100% compatibile. Se poate produce coruperea sistemului de fișiere. Faceți o copie de rezervă înainte de a experimenta!

Unele opțiuni (de exemplu, „-r” pentru SCSI) pot să nu funcționeze cu nucleele vechi, deoarece ioctl()-urile necesare nu erau acceptate.

Deși acest instrument este destinat în principal utilizării cu dispozitive de discuri dure SATA/IDE, câteva dintre opțiuni sunt valabile (și permise) și pentru utilizarea cu dispozitive de discuri dure SCSI și discuri dure MFM/RLL cu interfețe XT.

Nucleul Linux până la versiunea 2.6.12 (și probabil mai târziu) nu gestionează comenzile de securitate de deblocare și dezactivare cu ușurință și va eșua și, în unele cazuri, chiar va intra în panică. Cu toate acestea, este posibil ca comenzile de securitate să fi fost într-adevăr executate de unitate. Acest comportament deficitar al nucleului face ca comenzile de securitate a datelor PIO să fie destul de inutile în acest moment.

Rețineți că comenzile „security erase” și „security disable” au fost implementate ca două comenzi de date PIO consecutive și nu vor reuși pe o unitate blocată deoarece a doua comandă nu va fi emisă după „segfault”. Consultați codul pentru a afla cum să îl modificați pentru a ocoli această problemă. În ciuda eșecului de segmentare, de multe ori este încă posibil să executați două instanțe ale hdparm consecutiv și să emiteți astfel cele două comenzi necesare.

AUTOR

hdparm a fost scris de Mark Lord <mlord@pobox.com>, dezvoltatorul principal inițial și cel care menține controlorul (E)IDE pentru Linux, și contribuitor actual la subsistemul libata, împreună cu sugestii și plasturi(corecții) de la mulți utilizatori ai rețelei.

Codul de dezactivare a sistemului Seagate de economisire automată a energiei este oferit prin amabilitatea lui Tomi Leppikangas(tomilepp@paju.oulu.fi).

Comanda de înghețare a securității de către Benjamin Benz, 2005.

Comenzile de securitate pentru obținerea datelor PIO de Leonard den Ottolander, 2005. Alte părți de Benjamin Benz și alții.

CONSULTAȚI ȘI

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.

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

septembrie 2022 Versiunea 9.65