FALLOCATE(1)

NUME
fallocate - pre-alocă sau revocă alocarea de spațiu pentru un fișier

REZUMAT

fallocate [-c|-p|-z|-w] [-o poziția] -l lungimea [-n] nume-fișier

fallocate -d [-o poziția] [-l lungimea] nume-fișier

fallocate -r [-o poziția] nume-fișier

fallocate -x [-o poziția] -l lungimea nume-fișier

DESCRIERE

fallocate este utilizat pentru a manipula spațiul alocat pe disc pentru un fișier, fie pentru a-i revoca alocarea, fie pentru a-l pre-aloca. În cazul sistemelor de fișiere care acceptă apelul de sistem fallocate(2), pre-alocarea se face rapid prin alocarea de blocuri și marcarea acestora ca fiind neinițializate, fără a fi nevoie să se facă In/Ieș către blocurile de date. Acest lucru este mult mai rapid decât crearea unui fișier prin umplerea acestuia cu zerouri.

Starea de ieșire returnată de fallocate este 0 în caz de succes și 1 în caz de eșec.

OPȚIUNI

Argumentele lungime și poziție pot fi urmate de sufixele multiplicative KiB (=1024), MiB (=1024*1024), și așa mai departe pentru GiB, TiB, PiB, EiB, ZiB și YiB („iB” este opțional, de exemplu, „K” are aceeași semnificație ca și „KiB”), sau sufixele KB (=1000), MB (=1000*1000) și așa mai departe pentru GB, TB, PB, EB, ZB și YB.

Opțiunile --collapse-range, --dig-holes, --report-holes, --punch-hole, --zero-range, --write-zeroes și --posix se exclud reciproc.

-c, --collapse-range
    Îndepărtează un interval de octeți dintr-un fișier, fără a lăsa o gaură. Intervalul de octeți care urmează să fie eliminat începe de la poziția și continuă cu lungimea octeți. La finalizarea operației, conținutul fișierului care începe la locația poziția+lungimea va fi adăugat la locația poziția, iar fișierul va fi cu lungimea octeți mai mic. Opțiunea --keep-size nu poate fi specificată pentru operația „collapse-range”.

    Disponibilă începând cu Linux 3.15 pentru ext4 (numai pentru fișiere bazate pe extindere de spațiu) și XFS.

    Un sistem de fișiere poate impune limitări privind precizia operației, pentru a asigura o implementare eficientă. În mod obișnuit, poziția și lungimea trebuie să fie un multiplu al dimensiunii blocului logic al sistemului de fișiere, care variază în funcție de tipul și configurația sistemului de fișiere. În cazul în care un sistem de fișiere are o astfel de cerință, operația va eșua cu eroarea EINVAL dacă această cerință este încălcată.

-d, --dig-holes
    Detectează și creează goluri. Acest lucru face ca fișierul să fie mai dispersat pe loc, fără a utiliza spațiu suplimentar pe disc. Dimensiunea minimă a golului depinde de dimensiunea blocului de In/Ieș din sistemul de fișiere (de obicei 4096 octeți). De asemenea, atunci când se utilizează această opțiune, --keep-size este implicită. Dacă nu este specificat niciun interval prin --offset și --length, atunci întregul fișier este analizat pentru goluri.

    Vă puteți gândi la această opțiune ca și cum ați face un „cp --sparse” și apoi ați redenumi fișierul de destinație la cel original, fără a fi nevoie de spațiu suplimentar pe disc.

    Consultați --punch-hole pentru o listă a sistemelor de fișiere acceptate.

-r, --report-holes
    Scanează fișierul și raportează distribuția golurilor fără a-l modifica. Sunt afișate două tipuri de goluri: goluri de fișier – blocuri pe care sistemul de fișiere nu le-a alocat (raportate de SEEK_HOLE); goluri de date – intervale din interiorul fișierului care sunt umplute logic cu octeți zero, dar ocupă în continuare spațiu pe disc.

    În modul de ieșire descriptiv, pentru fiecare gol sunt afișate decalajul, poziția finală și dimensiunea în octeți, urmate de un rezumat care indică dimensiunea totală și procentul din fișier pe care îl reprezintă fiecare tip de gol în mod implicit. Dacă nu se specifică niciun decalaj cu opțiunea --offset, se scanează întregul fișier.

    Această opțiune este de tip „doar citire” și poate fi utilizată pentru orice fișier pentru a estima cât spațiu ar putea fi recuperat prin --dig-holes.

    Consultați --punch-hole pentru o listă a sistemelor de fișiere acceptate.

-i, --insert-range
    Inserează un gol de lungime octeți de la poziția, schimbând datele existente.

    Supported for XFS (since Linux 4.1) and ext4 (since Linux 4.2).

-l, --length lungimea
    Specifică lungimea intervalului, în octeți.

-n, --keep-size
    Nu modifică lungimea aparentă a fișierului. Aceasta poate aloca efectiv blocuri după EOF, care pot fi eliminate cu o trunchiere.

-o, --offset poziția
    Specifică poziția de început a intervalului, în octeți.

-p, --punch-hole
    Eliberează spațiu (adică creează o gaură) în intervalul de octeți începând de la poziția și continuând cu lungimea octeți. În intervalul specificat, blocurile parțiale ale sistemului de fișiere sunt reduse la zero, iar blocurile întregi ale sistemului de fișiere sunt eliminate din fișier. După un apel reușit, citirile ulterioare din acest interval vor returna zerouri. Această opțiune nu poate fi specificată în același timp cu opțiunea --zero-range. De asemenea, atunci când se utilizează această opțiune, --keep-size este inclusă.

    Acceptată pentru XFS (de la Linux 2.6.38), ext4 (de la Linux 3.0), Btrfs (de la Linux 3.7), tmpfs (de la Linux 3.5) și gfs2 (de la Linux 4.16).

-v, --verbose
    Activează mesajele informative detaliate.

-w, --write-zeroes
    Pune la zero spațiul în intervalul de octeți începând de la poziția și continuând cu lungimea octeți. În cadrul intervalului specificat, blocurile de scriere sunt prealocate pentru regiunile care acoperă golurile din fișier. După o apelare reușită, citirile ulterioare din acest interval vor returna zerouri, iar operațiile de scriere ulterioare în acel interval nu necesită modificări suplimentare ale metadatelor de cartografiere a fișierului.

    Umplerea cu zerouri se efectuează în cadrul sistemului de fișiere. Sistemul de fișiere poate utiliza o comandă de umplere cu zerouri accelerată hardware sau poate efectua operații obișnuite de scriere. Comportamentul depinde de arhitectura sistemului de fișiere și de hardware-ul disponibil.

    Opțiunea --keep-size nu poate fi specificată pentru operațiunea de scriere cu zerouri, deoarece nu este permisă alocarea de blocuri scrise care depășesc dimensiunea nodului-i.

-x, --posix
    Activează modul de operare POSIX. În acest mod, operația de alocare se finalizează întotdeauna, dar poate dura mai mult timp atunci când alocarea rapidă nu este acceptată de sistemul de fișiere de bază.

-z, --zero-range
    Pune la zero spațiul în intervalul de octeți începând de la poziția și continuând cu lungimea octeți. În cadrul intervalului specificat, blocurile sunt prealocate pentru regiunile care acoperă golurile din fișier. După un apel reușit, citirile ulterioare din acest interval vor returna zero.

    Punerea la zero se face în cadrul sistemului de fișiere, de preferință prin convertirea intervalului în spații nescrise. Această abordare înseamnă că intervalul specificat nu va fi eliminat fizic de pe dispozitiv (cu excepția blocurilor parțiale de la oricare dintre capetele intervalului), iar In/Ieș este (astfel) necesară doar pentru a actualiza metadatele.

    Opțiunea --keep-size poate fi specificată pentru a preveni modificarea lungimii fișierului.

    Disponibilă începând cu Linux 3.14 pentru ext4 (numai pentru fișiere bazate pe extindere de spațiu) și XFS.

-h, --help
    Afișează acest mesaj de ajutor și iese.

-V, --version
    Afișează versiunea și iese.

AUTORI

CONSULTAȚI ȘI

truncate(1), fallocate(2), posix_fallocate(3)

RAPORTAREA ERORILOR

Pentru rapoarte de eroare, folosiți

DISPONIBILITATE

Comanda fallocate face parte din pachetul util-linux care poate fi descărcat de la