В ядре 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
текущий размер файла.