В ядре Linux 4.1 FALLOC_FL_INSERT_RANGEбыла добавлена опция. С fallocate(2) man-страницы :
Задание флага FALLOC_FL_INSERT_RANGE (доступно с Linux 4.1) в режиме увеличивает файловое пространство, вставляя дыру в размер файла без перезаписи существующих данных. Отверстие начнется со смещением и продолжится для длинных байтов. При вставке отверстия внутри файла содержимое файла, начиная со смещения, будет смещено вверх (то есть в более высокое смещение файла) на длину в байты. Вставка дыры в файл увеличивает размер файла на длину в байт.
И недавно эта опция поддержки была добавлена в 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текущий размер файла.