Очистить неиспользуемое пространство с нулями (ext3, ext4)
Как очистить неиспользуемое пространство нулями? (Ext3, ext4)
Я ищу что-то умнее, чем
- Какая файловая система обеспечивает лучшую защиту для защиты данных от коррупции из-за потери мощности?
- Репликация объема GlusterFS - проблема монтажа
- Как связать несвязанные файлы?
- Восстановить перезаписанный файл
- Невозможно восстановить или удалить файл в файловой системе ext4
cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero
Как FSArchiver ищет «использованное пространство» и игнорирует неиспользуемый, но противоположный сайт.
Назначение: Я хотел бы сжать изображения разделов, поэтому настоятельно рекомендуется заполнять неиспользуемое пространство нулями.
Btw. Для btrfs: очистить неиспользуемое пространство с нулями (btrfs)
- Как восстановить раздел ext3 после работы с измененным размером?
- Настройки формата диска для Linux-загрузочного
- Как подключить большой диск
- Как включить файловые системы в / proc / filesystems?
- Есть ли файловая система, которая позволяет мне вставить некоторый блок в середине файла в O (1)?
- Предотвращение повреждения файловой системы в встроенной системе Linux
- Если моя программа обнаруживает, что потеря мощности произойдет через несколько секунд, что она может сделать, чтобы избежать повреждения данных?
- Поиск UNIX каталогов с помощью бинарного поиска?
5 Solutions collect form web for “Очистить неиспользуемое пространство с нулями (ext3, ext4)”
Такая утилита имеет zerofree
.
Из описания:
Zerofree находит нераспределенные, необнужденные блоки в файловой системе ext2 или ext3 и заполняет их нулями. Это полезно, если устройство, на котором находится эта файловая система, является образ диска. В этом случае, в зависимости от типа образа диска, вторичная утилита может уменьшить размер образа диска после запуска zerofree. Zerofree требует, чтобы файловая система была отключена или смонтирована только для чтения.
Обычный способ достижения одного и того же результата (обнуление неиспользуемых блоков) заключается в том, чтобы запустить «dd», создать файл с нулями, который занимает все свободное место на диске, а затем удалить этот файл. У этого есть много недостатков, которые zerofree облегчает:
- он медленный
- это делает образ диска (временно) расти в максимальной степени
- он (временно) использует все свободное место на диске, поэтому другие одновременные действия записи могут завершиться неудачно.
Zerofree был написан для запуска с систем GNU / Linux, установленных как гостевые ОС внутри виртуальной машины. Если это не ваше дело, вам почти наверняка не нужен этот пакет.
ОБНОВЛЕНИЕ # 1
Описание пакета .deb содержит следующий абзац, который будет подразумевать, что это будет отлично работать с ext4.
Описание: нулевые свободные блоки из файловых систем ext2, ext3 и ext4. Zerofree находит нераспределенные блоки с ненулевым значением контента в файловой системе ext2, ext3 или ext4 и заполняет их нулями …
Резюме методов (как упоминалось в этом вопросе и в других местах) для удаления неиспользуемого пространства на ext2 / ext3 / ext4:
Нулевое неиспользуемое пространство
Файловая система не установлена
- Если «диск», на котором установлена ваша файловая система, тонко подготовлен (например, современный SSD, поддерживающий TRIM, файл VM, формат которого поддерживает разреженность и т. Д.), И ваше ядро говорит, что блочное устройство это понимает, вы можете использовать
e2fsck -E discard src_fs
дляe2fsck -E discard src_fs
неиспользуемое пространство (требуется e2fsprogs 1.42.2 или выше). - Использование zerofree для явного написания нулей по неиспользуемым блокам.
- Использование
e2image -rap src_fs dest_fs
для копирования только используемых блоков (новая файловая система должна быть на нулевом диске), требует e2fsprogs 1.42.9 или новее).
Установлена файловая система
- Если «диск», на котором установлена ваша файловая система, тонко подготовлен (например, современный SSD, поддерживающий TRIM, файл VM, формат которого поддерживает разреженность и т. Д.), Ваше ядро говорит, что блочное устройство это понимает, и, наконец, драйвер ext filesystem поддерживает его, вы можете использовать
fstrim /mnt/fs/
попросить файловую систему отказаться от неиспользуемого пространства. - Использование
cat /dev/zero > /mnt/fs/zeros; sync; rm /mnt/fs/zeros
cat /dev/zero > /mnt/fs/zeros; sync; rm /mnt/fs/zeros
cat /dev/zero > /mnt/fs/zeros; sync; rm /mnt/fs/zeros
(sfill
от secure-delete использует эту технику). Этот метод неэффективен, не рекомендуется Ted Ts'o (автор ext4), может не обрезать определенные вещи и может замедлить будущие fscks.
Отсутствие файловой системы дает лучшие результаты, чем ее установка. Отбрасывание имеет тенденцию быть самым быстрым методом, когда много ранее использованного пространства должно быть обнулено, но с использованием zerofree после процесса отбрасывания иногда может быть немного нулевым дополнительным (в зависимости от того, как сброс реализован на «диске»).
Уменьшение размера файла изображения
Изображение находится в выделенном формате ВМ
Вам нужно будет использовать соответствующий инструмент для создания образа диска (например, qemu-img convert src_image dst_image
), чтобы позволить qemu-img convert src_image dst_image
пространство быть восстановленным и разрешить qemu-img convert src_image dst_image
файла, представляющего изображение.
Изображение является необработанным файлом
Один из следующих методов может быть использован для того, чтобы сделать файл разреженным (так что запуск нулевой остановки занимает место):
-
cp --sparse=always src_image dst_image
. -
fallocate -d src_image
(требует использования linux v2.25 или выше).
В наши дни было бы проще использовать такой инструмент, как virt-sparsify, чтобы делать эти шаги и многое другое за один раз.
источники
- Очистить неиспользуемое пространство с нулями (ext3, ext4)
- https://ext4.wiki.kernel.org/index.php/Ext4_VM_Images
- http://article.gmane.org/gmane.comp.file-systems.ext4/42537
- http://frippery.org/uml/index.html
- освободить неиспользуемое пространство в файле qcow2-image на kvm / qemu
- http://libguestfs.org/virt-sparsify.1.html
sfill
от secure-delete может сделать это и несколько других связанных заданий.
например
sfill -l -l -z /mnt/X
ОБНОВЛЕНИЕ # 1
Существует дерево-источник, который, по-видимому, используется проектом ArchLinux в github, который содержит источник sfill
который является инструментом, включенным в пакет Secure-Delete.
Также копия sfill
страницы sfill
находится здесь:
Если у вас есть e2fsprogs 1.42.9, вы можете использовать e2image
для создания образа раздела без свободного места в первую очередь, поэтому вы можете пропустить шаг обнуления.
Вы можете использовать sfill
. Это лучшее решение для тонких томов.