Scroll to navigation

FALLOCATE(1) Команди користувача FALLOCATE(1)

НАЗВА

fallocate - попередньо отримати місце у файлі або скасувати отримання місця у файлі

КОРОТКИЙ ОПИС

fallocate [-c|-p|-z] [-o offset] -l length [-n] filename

fallocate -d [-o offset] [-l length] filename

fallocate -x [-o offset] -l length filename

ОПИС

fallocate is used to manipulate the allocated disk space for a file, either to deallocate or preallocate it. For filesystems which support the fallocate(2) system call, preallocation is done quickly by allocating blocks and marking them as uninitialized, requiring no IO to the data blocks. This is much faster than creating a file by filling it with zeroes.

Станом виходу з fallocate є 0, якщо дію буде виконано успішно, і 1, якщо станеться помилка.

ПАРАМЕТРИ

Після аргументів довжина і відступ можна додавати суфікси одиниць KiB (=1024), MiB (=1024*1024) тощо для GiB, TiB, PiB, EiB, ZiB та YiB (частина «iB» є необов’язковою, наприклад, «K» є тим самим, що і «KiB») або суфікси KB (=1000), MB (=1000*1000) тощо для GB, TB, PB, EB, ZB і YB.

Параметри --collapse-range, --dig-holes, --punch-hole і --zero-range не можна використовувати одночасно.

-c, --collapse-range

Вилучає діапазон байтів з файла без залишення дірки. Діапазон байтів, який буде згорнуто, починатиметься із позиції відступ і продовжуватиметься довжина байтів. По завершенню дії вміст файла, що починається із позиції відступ+довжина буде дописано з позиції відступ, а файл стане на довжина байтів меншим. Якщо виконується дія із згортання діапазону, параметр --keep-size не може бути вказано у рядку команди.

Доступна з Linux 3.15 для ext4 (лише для файлів на основі розширення) і XFS.

Файлова система може накладати обмеження на дискретизацію дії для того, щоб забезпечити ефективну реалізацію. Типово, відступ і довжина мають бути кратним до розміру логічного блоку файлової системи, який залежить від типу та налаштувань файлової системи. Якщо у файловій системі встановлено подібні обмеження, спроба виконання дії завершиться помилкою EINVAL при порушенні обмежень.

-d, --dig-holes

Виявляти і усувати дірки. Це робитиме файл розрідженим на місці без використання зайвого місця на диску. Мінімальний розмір дірки залежить від розміру блоку введення-виведення файлової системи (зазвичай, він дорівнює 4096 байтів). Також, при використанні цього параметра неявним чином встановлюється --keep-size. Якщо діапазон не вказано за допомогою --offset і --length, буде виконано виявлення дірок в усьому файлі.

Цей параметр можна вважати таким собі способом виконати cp --sparse, а потім замістити файлом призначення початковий файл без потреби у додатковому місці на диску.

Див. --punch-hole, щоб ознайомитися зі списком підтримуваних файлових систем.

-i, --insert-range

Вставити дірку довжиною довжина байтів з позиції відступ, зсунувши наявні дані.

-l, --length довжина

Вказує довжину діапазону у байтах.

-n, --keep-size

Не змінювати видиму довжину файла. Насправді, може призвести до отримання блоків за EOF, які може бути вилучено обрізанням.

-o, --offset відступ

Вказати початковий відступ діапазону у байтах.

-p, --punch-hole

Скасувати розміщення (тобто створити дірку) у діапазоні байтів, який починається з відступ і має розмір довжина байтів. У вказаному діапазоні часткові блоки файлової системи буде занулено, а цілі блоки файлової системи вилучено з файла. Після успішного виклику наступні читання з вказаного діапазону файла повертатимуть нулі. Цей параметр не можна вказувати разом із параметром --zero-range. Також при використанні цього параметра неявним чином встановлюється --keep-size.

Передбачено підтримку XFS (починаючи з Linux 2.6.38), ext4 (починаючи з Linux 3.0), Btrfs (починаючи з Linux 3.7), tmpfs (починаючи з Linux 3.5) і gfs2 (починаючи з Linux 4.16).

-v, --verbose

Увімкнути докладний режим.

-x, --posix

Увімкнути режим сумісності з POSIX. У цьому режимі дія із отримання пам’яті завжди завершується, але може тривати довше, якщо якщо у базовій системі не передбачено підтримки швидкого розміщення.

-z, --zero-range

Записати нулями місце у діапазоні байтів від відступ довжиною довжина байтів. У вказаному діапазоні блоки буде попередньо отримано для областей, які займають у файлі дірки. Після успішного виклику наступні читання з цього діапазону даватимуть нулі.

Пріоритетним варіантом занулення у файловій системі є перетворення діапазону не незаписане розширення. Цей підхід передбачає, що вказаний діапазон не буде фізично записано нулями на пристрої (окрім часткових блоків на кінцях діапазону), а дії з введення-виведення будуть потрібні лише для оновлення метаданих.

Може бути вказано параметр --keep-size для запобігання зміні довжини файла.

Доступна з Linux 3.14 для ext4 (лише для файлів на основі розширення) і XFS.

-h, --help

Вивести текст довідки і завершити роботу.

-V, --version

Вивести дані щодо версії і завершити роботу.

АВТОРИ

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

ТАКОЖ ПЕРЕГЛЯНЬТЕ

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

ЯК НАДІСЛАТИ ЗВІТ ПРО ВАДИ

Для звітування щодо вад скористайтеся системою стеження за вадами - <https://github.com/util-linux/util-linux/issues>.

ДОСТУП ДО ПРОГРАМИ

Програма fallocate є частиною пакунка util-linux, який можна отримати з архіву ядра Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.

2024-04-27 util-linux 2.40