Написать эту статью мне пришлось после того, как я увидел, что советуют добрые люди в интернете. Сложность просто зашкаливает! Да ещё и требуются какие-то специальные утилиты.
А на самом деле всё проще простого.
Выясняем объем свободного места на виртуалке:
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 (или набор файлов).
Теперь можно пробовать сжать виртуальную машину и порадоваться результату.
Дискуссия
Написал HaroldBup
Опубликовано в: Установка PHP 5.6 на CentOS через Yum in LinuxНаписал KostrikinIF
Опубликовано в: Настраиваем службу FirewallD in LinuxНаписал MalinNup
Опубликовано в: Узнаём размер директории в командной строке Centos in LinuxНаписал Владимир Драч
Опубликовано в: ISPConfig 3 и Debian 9: профессиональный хостинг своими руками in LinuxНаписал Евгений
Опубликовано в: ISPConfig 3 и Debian 9: профессиональный хостинг своими руками in Linux