Написать эту статью мне пришлось после того, как я увидел, что советуют добрые люди в интернете. Сложность просто зашкаливает! Да ещё и требуются какие-то специальные утилиты.
А на самом деле всё проще простого.
Выясняем объем свободного места на виртуалке:
df -h
Запоминаем количество мегабайт, которые над принудительно обнулить.
Выполняем чтение нулей из /dev/zero и запись их на диск в /home:
dd if=/dev/zero of=/home/zero.bak bs=1000000 count=1000
В качестве последнего параметра count указываем количество мегабайт для зануления. В моём примере обнулится гигабайт.
Как показывает практика, для виртуальных машин с диском 32 Gb вполне достаточно указывать размер области зануления с точностью до гигабайта. Если же диск меньше, точность нужно повышать, но с осторожностью. Важно оставить хоть сколько-то действительно свободного места для виртуальной машины, чтобы не произошло сбоев в работе. Даже если сервер ничем в данный момент не занимается и вяло журналирует события, 100 Мб для работы всё равно следует оставить как минимум.
При выполнении команды dd будет потрачено ощутимое количество времени (в зависимости от производительности физического жёсткого диска). Поэтому есть смысл выполнять обнуление последовательно, частями, меняя каждый раз имя файла с zero.bak на какое-то другое.
Ну и в завершении надо не забыть удалить сгенерированный файл zero.bak (или набор файлов).
Теперь можно пробовать сжать виртуальную машину и порадоваться результату.
Дискуссия
Написал Rocky 9
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Константин
Опубликовано в: Докеризация стека LEMP под Ubuntu c помощью Compose in LinuxНаписал bammbr
Опубликовано в: Шлюз для маленького отдела на Red Hat 9 in LinuxНаписал Федор
Опубликовано в: Установка и конфигурация Samba на CentOS 7 in LinuxНаписал Evgenytrl
Опубликовано в: Загрузка файлов с помощью Wget in Linux