Как освободить место на диске

Как освободить место на дискеПо мере использования системы она начинает использовать всё больше и больше дискового пространства. И чем дальше, тем больше. И рано или поздно вы понимаете, что часть места ушла неизвестно куда. Давайте вспомним несколько способов освободить место на диске, удалив ненужную информацию. Все способы будут рассмотрены на примере операционной системы Debian GNU/Linux 8.2 «Jessie», но часть из них подходит и для других дистрибутивов, в том числе не являющихся потомками Debian’а.

Анализ использования дискового пространства

Прежде чем что-то делать, нужно проанализировать, что именно занимает так много места на диске, какие директории. Для этого подойдет программа baobab, визуально изображающая диск со всеми директориями или поддиректории какой-то директории. Выглядит это следующим образом (картинка из википедии):

Baobab-screenshot-ru

Выглядит наглядно, виден размер как в процентах, так и в единицах измерения.

Удаление ненужных программ

В первую очередь желательно удалить все программы, которыми вы не пользуетесь. Большинство людей используют достаточно ограниченный набор программ, а устанавливают обычно заметно больше, чем используют. Соответственно, если у вас есть лишние программы, они просто занимают место на диске, и их можно удалить командой

Вместе с программами часто устанавливаются библиотеки. Часть из них будет удалена вместе с программой, а часть останется. И эту вторую часть обычно можно удалить командой

 

Удаление «осиротевших» пакетов

После удаления пакетов могут остаться такие пакеты, от которых уже ни один пакет в системе не зависит, и которые не будут удалены автоматически командой

Такие пакеты можно найти при помощи программы deborphan. Для этого придется установить пакет с одноименным названием

После запуска программа выводит список «осиротевших» пакетов, которые вы можете удалить либо вручную, либо при помощи такой простой конструкции:

 

Удаление настроек, оставшихся от удаленных пакетов

После удаления пакетов командой

обычно остаются настройки программ, входящих в пакет, или какие-то файлы с данными, если не используется ключ —purge. Такие удаленные пакеты, для которых остались настройки, можно просмотреть при помощи команды

Результат должен выглядеть приблизительно так:

Удалить такие настройки можно такой командой:

В процессе работы этой большой команды вы, возможно, увидите, что некоторые директории с настройками не были удалены, потому что не пусты. Вы можете их просмотреть и удалить вручную, если в этом действительно есть необходимость.

Удаление настроек программ из директории пользователя

Большинство программ, которые сохраняют настройки и данные, сохраняют их именно в домашней директории пользователя. Обычно это или директория, название которой начинается с точки, например

или директория с названием программы в директории

У меня, например, была директория ~/.config/google-chrome размером 3,5 гигабайта.

Удалить такие директории можно вручную, либо использовать для этого программу bleachbit. Она знает, где хранятся настройки и данные достаточно большого количества программ, и может вам помочь с их удалением. Она есть в стандартных репозиториях и ее можно поставить командой

Хотя, честно говоря, когда вы разберетесь с тем, где хранятся настройки разных программ и как почистить кэш менеджера пакетов, может быть bleachbit вам и не потребуется.

Архивация данных

Это, пожалуй, самый старый и самый известный способ. И действительно, вы можете заархивировать данные, которые вам пока не очень нужны, и они будут занимать заметно меньше места. Из современных архиваторов стоит отметить xz, дающий неплохое сжатие, а из ставших уже классическими, естественно, tar + «bzip2 —best».

Использование файловой системы со сжатием

Если хотите, можете попробовать что-то не совсем обычное, что-то вроде fusecompress. Правда, собирать придется из исходных кодов и польза достаточно сомнительная, учитывая скорость работы.

Использование облачных хранилищ

Этот вариант для тех, кто не боится, что его данные будут просматривать разные корпорации. Для того, чтобы не занимать локальное дисковое пространство, облачное хранилище нужно монтировать как удаленную файловую систему при помощи davfs2. Для этого лучше всего подходит, как ни странно, Yandex.Disk. Есть, правда, небольшой минус. DavFS копирует синхронизируемые файлы в свою директорию, поэтому может при копировании файлов на удаленный сервер занимать дополнительное место.

Создание жестких ссылок на одинаковые файлы

Как вы знаете, жесткая ссылка ссылается на содержимое файла. Если  найти два файла с одинаковым содержимым, то можно один удалить и заменить его на жесткую или, возможно, символическую ссылку. Но не забывайте, что создание жестких ссылок возможно только в пределах одной файловой системы. Для поиска дубликатов можно воспользоваться такими программами как dupeGuru или FSLint.

Эти способы не подходят. Как освободить место на диске?

Если способы выше не подходят, просто купите диск побольше и не морочьте людям голову.

Как уменьшить расход дискового пространства

Чтобы меньше заботиться о расходовании дискового пространства, можно предпринять ряд мер. Это вас, скорее всего, не спасет, но, всё-таки, немного поможет.

1. Отключить кэш менеджера пакетов или перенести его в оперативную память

В дистрибутивах на базе Red Hat кэширование обычно по умолчанию отключено в настройках yum. Для этого есть специальная опция «keepcache=0» в файле /etc/yum.conf. В дистрибутивах на базе Debian всё несколько сложнее. Штатной настройки, отвечающей за отключение кэша нет, но есть парочка воркараундов.

Первый воркараунд состоит в удалении пакетов после установки через директиву Dpkg::Post-Invoke. Для  этого создадим файл /etc/apt/apt.conf.d/02autoclean и запишем в него следующее:

Второй воркараунд состоит в задании пустых значений для следующих переменных:

В официальной документации указывается следующее:

Поэтому, наверное, можно этот способ считать официальным.

2. Отключить логи

Для рабочей станции можно отключить логи совсем (в большинстве случаев на рабочей станции их смотрят ну ОЧЕНЬ редко, если вообще смотрят), либо уменьшить их количество, которое сохраняет logrotate, например, до 5. Для серверов отключать логи крайне не рекомендуется, лучше перенаправлять их на другой сервер, на котором rsyslog настроен на прием логов.

3. Использовать оперативную память для хранения данных, которые обычно пишутся на диск

Это может быть, например, кэш браузера, или еще какие-то временные данные, в том числе и кэш пакетного менеджера. Обычно такие данные не очень важны и их сохранность после перезагрузки не обязательна. На самом деле есть два варианта виртуальной файловой системы, которую можно использовать — это ramfs и tmpfs. Сейчас в основном используется tmpfs, которая по сути очень похожа на более старую ramfs, но которая позволяет ограничивать объем виртуального диска. Вот пример:

После этого можно делать символические ссылки на /mnt/ramdisk и не забыть сделать соответствующую запись в /etc/fstab

Плюс такого подхода еще и в том, что операции ввода-вывода с RAM-диском в разы быстрее, чем на самом быстром SSD.

4. Если вы используете виртуальные машины наподобие VirtualBox, рассмотрите возможность использования контейнеров, например, LXC. Достаточно часто возможностй контейнеров более, чем достаточно, и полная виртуализация, которая использует больше ресурсов, в том числе дискового пространства, — это все-таки некоторый оверхэд.

В заключение

Естественно, есть еще варианты оптимизации расходования дискового пространства и прочих системных ресурсов, если есть, что добавить, — пишите в комментариях.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *