Scroll to navigation

FALLOCATE(1) Polecenia użytkownika FALLOCATE(1)

NAZWA

fallocate - przydziela miejsce plikowi lub zwalnia miejsce pliku

SKŁADNIA

fallocate [-c|-p|-z] [-o przesunięcie] -l długość [-n] nazwa-pliku

fallocate -d [-o przesunięcie] [-l długość] nazwa-pliku

fallocate -x [-o przesunięcie] -l długość nazwa-pliku

OPIS

fallocate dłuży do konfiguracji przydziału przestrzeni dysku plikowi, tj. do jej zwolnienia lub przydzielenia. W przypadku systemów plików obsługujących wywołanie systemowe fallocate(2), przydział jest szybki i polega na przydzieleniu bloków i oznaczeniu ich jako niezainicjowane, zatem nie występuje wejście/wyjście do bloków danych. Jest to znacznie szybsze, niż tworzenie pliku wypełniając go zerami.

fallocate zwraca status zakończenia równy 0 w przypadku powodzenia i 1 przy porażce.

OPCJE

Po argumentach rozmiar i przesunięcie mogą występować przyrostki binarne (2^N): KiB (=1024), MiB (=1024*1024) i tak dalej dla GiB, TiB, PiB, EiB, ZiB oraz YiB (część "iB" jest opcjonalna, na przykład "K" ma to samo znaczenie, co "KiB") lub dziesiętne (10^N): KB (=1000), MB (=1000*1000) i podobnie dla GB, TB, PB, EB, ZB oraz YB.

Opcje --collapse-range, --dig-holes, --punch-hole, --zero-range i --posix wzajemnie się wykluczają.

-c, --collapse-range

Usuwa zakres bajtów z pliku, bez pozostawiania dziury. Zakres bajtów do usunięcia rozpoczyna się na przesunięciu i kontynuuje się przez długość bajtów. Po ukończeniu operacji, zawartość pliku zaczynająca się w położeniu przesunięcie+długość zostanie dodana w położeniu przesunięcie, a plik stanie się o długość bajtów mniejszy. W przypadku tej operacji nie można użyć opcji --keep-size.

Dostępne od Linuksa 3.15 w systemach plików ext4 (tylko w przypadku plików z ekstentami) i XFS.

System plików może narzucić ograniczenia w ziarnistości operacji, aby zapewnić wydajną implementację. Zwykle przesunięcie i długość muszą być wielokrotnościami rozmiaru bloków logicznych systemu plików, która zależy od konfiguracji i typu systemu plików. Jeśli system plików posiada takie wymaganie, operacja zawiedzie z błędem EINVAL w przypadku jego naruszenia.

-d, --dig-holes

Wykrywa ciągi zer i tworzy z nich dziury. W ten sposób plik stanie się rzadki, bez zajmowania dodatkowej przestrzeni dysku. Minimalny rozmiar dziury zależy od rozmiaru bloku wejścia/wyjścia systemu plików (zwykle 4096 bajtów). Przy korzystaniu z tej opcji dorozumiane jest --keep-size. Jeśli nie poda się zakresu za pomocą opcji --offset i --length, to przeanalizowany pod kątem dziur zostanie cały plik.

Można myśleć o tej opcji jako o wykonaniu polecenia "cp --sparse", a następnie zmianie nazwy pliku docelowego na pierwotną, bez konieczności zajmowania dodatkowej przestrzeni dysku.

Listę obsługiwanych systemów plików opisano przy opcji --punch-hole.

-i, --insert-range

Umieszcza dziurę o długości bajtów poczynając od przesunięcia, przesuwając istniejące dane.

-l, --length długość

Określa długość zakresu, w bajtach.

-n, --keep-size

Nie modyfikuje pozornej długości pliku. W ten sposób mogą zostać przydzielone bloki poza końcem pliku, które można usunąć przycinając go.

-o, --offset przesunięcie

Określa początkowe przesunięcie zakresu, w bajtach.

-p, --punch-hole

Zwalnia przestrzeń (tj. tworzy dziurę) w zakresie bajtów poczynając od przesunięcia, kontynuując przez długość bajtów. W podanym zakresie, częściowe bloki systemu plików są zerowane, a całe bloki systemu plików są usuwane z pliku. Po pomyślnym wywołaniu, kolejne odczyty z tego zakresu zwrócą zera. Opcji nie można łączyć z opcją --zero-range. Przy korzystaniu z tej opcji dorozumiane jest --keep-size.

Obsługiwane w systemach plików XFS (od Linuksa 2.6.38), ext4 (od Linuksa 3.0), Btrfs (od Linuksa 3.7), tmpfs (od Linuksa 3.5) oraz gfs2 (od Linuksa 4.16).

-v, --verbose

Włącza tryb szczegółowy.

-x, --posix

Włącza tryb działania POSIX. W tym trybie operacji przydziału zawsze jest kończona, lecz może zająć dłużej, jeśli szybkie przydzielenie nie jest obsługiwane przez dany system plików.

-z, --zero-range

Zeruje przestrzeń w zakresie bajtów poczynając od przesunięcia i kontynuując przez długość bajtów. W podanym zakresie bloki są przydzielane w miejscach, w którym w pliku występują dziury. Po pomyślnym wywołaniu, kolejne odczyty z tego zakresu zwrócą zera.

Zerowanie w systemie plików próbuje się dokonać przez konwersję zakresu do niezapisanych ekstentów. Takie podejście oznacza, że podany zakres nie zostanie fizycznie wyzerowany na urządzeniu (z wyjątkiem częściowych bloków przy jego granicach), a wejście/wyjście jest w takim przypadku wymagane tylko do aktualizacji metadanych.

Aby zapobiec modyfikacji długości pliku można podać opcję --keep-size.

Dostępne od Linuksa 3.14 w systemach plików ext4 (tylko w przypadku plików z ekstentami) i XFS.

-h, --help

Wyświetla ten tekst i wychodzi.

-V, --version

Wyświetla wersję i wychodzi.

AUTORZY

Eric Sandeen <sandeen@redhat.com>, Karel Zak <kzak@redhat.com>

ZOBACZ TAKŻE

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

ZGŁASZANIE BŁĘDÓW

Problemy należy zgłaszać w systemie śledzenia błędów <https://github.com/util-linux/util-linux/issues>.

DOSTĘPNOŚĆ

Polecenie fallocate jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.

2025-09-24 util-linux 2.41.2