TGViewer
Linux Ready | DevOps Linux Ready | DevOps @linux_ready · 11.2K subscribers
Post #1085 2.71K
Разрежённые файлы (sparse files) и экономия диска!

В Linux файл может иметь логический размер, превышающий фактически занятое место на диске. Незаписанные области представлены как дыры (holes) и физически места не занимают.

Создание файла большого размера без записи данных:
truncate -s 10G bigfile.img


Файл имеет логический размер 10G, но почти не занимает место на диске.

Проверка:
ls -lh bigfile.img
du -h bigfile.img


ls показывает логический размер файла, du — реально занятое дисковое пространство.

Создание sparse-файла через dd:
dd if=/dev/zero of=bigfile.img bs=1 count=0 seek=10G


Смещение файлового офсета устанавливается на 10G без записи данных — создаётся файл с дырой.

Частичная запись данных:
printf 'DATA' | dd of=bigfile.img bs=1 seek=1G conv=notrunc


Физически будет занят только небольшой участок около 1G, остальное останется дырами.

Просмотр расположения данных:
filefrag -v bigfile.img


Показывает, какие диапазоны файла реально занимают блоки на диске (для классических FS вроде ext4/xfs).

Освобождение места внутри существующего файла, автоматическое преобразование участков, заполненных нулями, в дыры:
fallocate -d bigfile.img


Точечное выбивание физических блоков с сохранением логического размера:
fallocate --punch-hole --offset 1G --length 500M --keep-size bigfile.img


Корректное копирование sparse-файлов:
cp --sparse=always src.img dst.img


Для архивов:
tar --sparse -cf backup.tar bigfile.img


Важно: поддержка sparse-файлов и hole punching зависит от файловой системы и её конфигурации (ext4, xfs — поддерживают).

🔥 Sparse-файлы — базовый механизм экономии диска для образов, дампов и крупных артефактов.

🚪 Linux Ready | #практика
  • 👍 18
  • ❤ 8
  • 🤝 8
More from @linux_ready
  1. Oct 9, 2026Прокидываем TCP-порты через socat! Бывает требуется опубликовать локальный TCP-сервис на д…
  2. Oct 8, 2026😍 Linux Cheat Sheet — большая русскоязычная шпаргалка по Linux и Bash! Здесь есть не толь…
  3. Oct 7, 2026Подключаемся к закрытым серверам через SSH ProxyJump! В инфраструктуре серверы часто не им…
  4. Oct 7, 2026На Stepik запустили мощный курс по «Troubleshooting Docker и Kubernetes: поиск и устранени…
  5. Oct 7, 2026📂 Шпаргалка по DevOps, SRE и Platform Engineering! Например, SRE фокусируется на надёжнос…
  6. Oct 6, 2026В GNU/Linux есть отдельная утилита для преобразования чисел внутри текстовых потоков! Допу…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →