У Linux kernel 4.1 FALLOC_FL_INSERT_RANGE
додана опція. З fallocate(2)
чоловічої сторінки :
Вказівка прапора FALLOC_FL_INSERT_RANGE (доступна з Linux 4.1) в режимі збільшує файловий простір, вставляючи отвір у розмірі файлу, не перезаписуючи жодних існуючих даних. Дірка розпочнеться в зсуві і продовжуватиме тривати байти. Під час вставлення отвору всередині файлу вміст файлу, який починається зі зміщення, зміщуватиметься вгору (тобто, до більш високого зміщення файлу) на лейні байтів. Вставлення отвору всередині файлу збільшує розмір файлу на len bytes.
І нещодавно ця опція підтримка була додана до util-linux
:
-i, --insert-range
Insert a hole of length bytes from offset, shifting existing
data.
Отже, коли util-linux
буде випущена версія 2.30, а ваш дистрибутив Linux оновиться до цієї версії, ми зможемо, збільшивши розмір файлу, миттєво збільшивши:
fallocate -i -l 1G -o 128M /path/to/file
де 128M
поточний розмір файлу.