Debian нет свободного места

Обновлено: 04.07.2024

Блог про Linux, Bash и другие информационные технологии

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

У меня, например, была директория

/.config/google-chrome размером 3,5 гигабайта.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В заключение

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

В этой статье показано 5 способов очистки дискового пространства в системе Debian 10 Buster, в основном через графический интерфейс, чтобы освоить этот навык мог даже новичок.

Очистить корзину

Возможно, в вашей корзине содержится большое количество бесполезных данных. Это занимает равное системное пространство как наиболее полезные данные в вашей системе. Это самое простое и быстрое решение - очистить корзину, чтобы использовать это пространство для более важных целей. Просто откройте диспетчер файлов и щелкните правой кнопкой мыши значок корзины на левой панели. Выберите опцию «Очистить корзину», чтобы окончательно удалить все файлы из корзины.


Удалить временные файлы с помощью BleachBit

Некоторые файлы в вашей системе, такие как истории браузера, кэши и временные файлы из различных программ, могут занимать больше места, чем вы можете себе представить. BleachBit, доступный через Центр программного обеспечения Debian, представляет собой программу автоматической очистки, которая избавляет вашу систему от всех нежелательных временных файлов. Сначала загрузите программное обеспечение BleachBit, а затем запустите его как администратор с помощью следующей команды, поскольку таким образом вы сможете удалить нежелательные пакеты apt и некоторые другие системные данные вместе с обычными временными файлами.


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


Сделайте свой выбор и затем нажмите кнопку Закрыть. После этого вы можете выбрать категории файлов, которые хотите очистить, и нажать кнопку «Очистить».



Анализ использования вашего диска с помощью DISK Usage Analyzer

Наша система может содержать большое количество нежелательных файлов, и мы не узнаем и не запомним их. Инструмент Disk Usage Analyzer сканирует вашу файловую систему и представляет графическое представление каталогов, занимающих огромный объем пространства в вашей системе. Вы можете получить доступ к этим каталогам, найти и избавиться от файлов, которые делают ваше хранилище тяжелым. Вы можете получить доступ к этому бесплатному инструменту через поиск в Панели запуска приложений следующим образом:


Нажав на красные зоны вашего графика, вы сможете точно перейти туда, где находится тяжелый файл.


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

Поиск тяжелых приложений с помощью Synaptic Package Manager

Synaptic Manager может помочь вам избавиться от пакетов, которые вы могли использовать ранее для установки некоторых программ в вашей системе. Эти пакеты требуются только в том случае, если вам нужно удалить, а затем переустановить программное обеспечение. Хранение этих пакетов в вашем хранилище не очень разумный выбор, так как быстрое подключение к Интернету в наши дни может помочь вам очень быстро снова загрузить их при необходимости.

Вы можете загрузить этот менеджер пакетов из Debian Software Manager, если он не установлен по умолчанию в вашей системе Linux.

Поскольку Debian 10 Buster запускает Wayland для графического отображения, а Synaptic не запускается на Wayland, необходимо запустить следующие команды, чтобы запустить Synaptic Package Manager.


В Synaptic Package Manager нажмите кнопку «Состояние» на левой панели, а затем нажмите «Установлено».


Это перечислит все установленные пакеты в вашей системе. В списке на правой панели может не отображаться размер столбца по умолчанию. Чтобы просмотреть этот очень важный столбец, щелкните меню «Настройки», а затем «Настройки». Здесь убедитесь, что столбец Размер включен. Пожалуйста, переместите эту опцию вверх, чтобы она начала появляться в вашем списке пакетов. Теперь, когда вы просматриваете список, вы можете легко указать на пакеты, занимающие много места в вашей системе, пожалуйста, не удаляйте тяжелый, но важный пакет, например, пакет ядра. Вы можете выбрать элемент из этого списка, щелкнуть правой кнопкой мыши по этому элементу, а затем выбрать Пометить для полного удаления, чтобы удалить нежелательный пакет из вашей системы. Наконец, нажмите кнопку Применить, чтобы зафиксировать изменения.

Удаление старых ядер с помощью диспетчера пакетов Synaptic

Каждый раз, когда вы устанавливаете новое ядро ​​для Debian, оно сохраняет старое ядро ​​сохраненным, и вы даже можете загрузить старое. Debian делает это, чтобы вы могли получить доступ к системе, даже если новое ядро ​​не работает. Если вы уверены, что можете загрузить последнюю версию и хотите удалить предыдущие версии, это можно сделать с помощью диспетчера пакетов Synaptic. Просто найдите ключевое слово «linux-» и затем выберите пакеты, которые вы хотите удалить из списка. Отметьте их для удаления из правого меню и избавьтесь от них навсегда, нажав кнопку Применить.


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

Избежать такой проблемы можно ещё на этапе планирования установки системы. Выделяйте под каталог /home отдельный раздел диска, тогда если вы займете всю память своими файлами, это не помешает работе системы. Также выделяйте больше 20 гигабайт под корневой раздел чтобы всем программам точно хватило места. Но что делать если такая проблема уже случилась? Давайте рассмотрим как освободить место на диске с Linux.

Первым дело надо понять на каком разделе у вас закончилась память. Для этого можно воспользоваться утилитой df. Она поставляется вместе с системой, поэтому никаких проблем с её запуском быть не должно:


На точки монтирования, начинающиеся со слова snap внимания можно не обращать. Команда отображает общее количество места на диске, занятое и доступное место, а также процент занятого места. В данном случае 100% занято для корневого раздела - /dev/sda5. Конечно, надо разобраться какая программа или файл заняла всё место и устранить эту проблему, но сначала надо вернуть систему в рабочее состояние. Для этого надо освободить немного места. Рассмотрим что можно сделать чтобы экстренно освободить немного памяти.

1. Отключить зарезервированное место для root

Обычно, у всех файловых систем семейства Ext, которые принято использовать чаще всего как для корневого, так и для домашнего раздела используется резервирование 5% памяти для пользователя root на случай если на диске закончится место. Вы можете эту память освободить и использовать. Для этого выполните:

sudo tune2fs -m 0 /dev/sda5


Здесь опция -m указывает процент зарезервированного места, а /dev/sda5 - это ваш диск, который надо настроить. После этого места должно стать больше.

2. Очистить кэш пакетного менеджера

Обычно, пакетный менеджер, будь то apt или yum хранит кэш пакетов, репозиториев и другие временные файлы на диске. Они некоторые из них ненужны, а некоторые нужны, но их можно скачать при необходимости. Если вам срочно надо дисковое пространство этот кэш можно почистить. Для очистки кэша apt выполните:

sudo apt clean
sudo apt autoclean

Для очистки кэша yum используйте команды:

3. Очистить кэш файловой системы

Вы могли удалить некоторые большие файлы, но память после этого так и не освободилась. Эта проблема актуальна для серверов, которые работают долгое время без перезагрузки. Чтобы полностью освободить память надо перезагрузить сервер. Просто перезагрузите его и места на диске станет больше.

4. Найти большие файлы

После выполнения всех перечисленных выше рекомендаций, у вас уже должно быть достаточно свободного места для установки специальных утилит очистки системы. Для начала вы можете попытаться найти самые большие файлы и если они не нужны - удалить их. Возможно какая-либо программа создала огромный лог файл, который занял всю память. Чтобы узнать что занимает место на диске Linux можно использовать утилиту ncdu:

sudo apt install ncdu

Она сканирует все файлы и отображает их по размеру:


Более подробно про поиск больших файлов читайте в отдельной статье.

5. Найти дубликаты файлов

С помощью утилиты BleachBit вы можете найти и удалить дубликаты файлов. Это тоже поможет сэкономить пространство на диске.

6. Удалите старые ядра

Ядро Linux довольно часто обновляется старые ядра остаются в каталоге /boot и занимают место. Если вы выделили под этот каталог отдельный раздел, то скоро это может стать проблемой и вы получите ошибку при обновлении, поскольку программа просто не сможет записать в этот каталог новое ядро. Решение простое - удалить старые версии ядер, которые больше не нужны.

Выводы

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Эта ситуация выглядит странной и непонятной — что нужно сделать для очистки диска, если место и так есть?

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

Подобная ситуация возникала на этом же сервере накануне и помогла очистка логов, очистка кэша установленных пакетов и удаление ненужных файлов. Но на следующей день ситуация повторилась, хотя места уже точно было достаточно — несколько свободных гигабайт места на диске.

Что делать, если закончилось место в Linux

Вполне возможно, что на диске действительно закончилось место, тогда вам рекомендуются следующие статьи:

Если же место на самом деле имеется, то продолжайте чтение.

Проверьте с du и df

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

Начнём с du. Укажем ей базовую директорию на диске у которого проблемы. Это руководство подразумевает, что проблемным диском является раздел с рутом.


Для обхода всего дерева директорий потребуется время.

Теперь попробуем с df:


Добавьте корень файловой системы (рут) и файловые системы, смонтированные под ним. Например, если у вас есть «/home» на отдельном диске, добавьте это к показанию для root. Количество занятого и свободного пространства должно получиться близко к тому, что нам показала программа du. Если это не так, это может указывать на то, что удалённые файлы используются процессами.

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

Возможные причины

Возможны разные ситуации возникновения ошибки о том, что диск переполнен, когда на самом деле на нём ещё достаточно места. Если вы видите несоответствие между выводом команд du и df, то перейдите к первому варианту решения проблемы. В противном случае начните со второго.

Удаление файлов занятых процессом

Иногда файл будет удалён, но процесс все ещё использует его. Linux не освободит хранилище, связанное с файлом, пока процесс ещё запущен. Вам просто нужно найти процесс и перезапустить его.

Попробуйте найти процесс.


Если результатов нет, то попробуйте команду:

В списке должен присутствовать процесс, вызывающий проблему, затем просто перезапустите его:

Недостаточно Инод (Inode)

Для современных файловых систем Linux есть такое понятие как иноды (“inodes”) - это набор метаданных на файловой системе. Иноды отслеживают информацию о файлах. Многие файловые системы имеют фиксированное количество инод, поэтому очень возможно занять максимальное выделенное количество без заполнения самой файловой системы. Вы можете использовать для проверки команду df:


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

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

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

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

Ещё варианты команд, которые делают это же самое (по умолчанию они настроены проверять текущую папку — это можно изменить, для этого вместо точки впишите желаемую для проверки папку:

Когда найдена папка с наибольшим количеством инод, то проверьте её подпапки — для поиска проблемной. Продолжайте эти действия, пока не найдёте папку с огромным количеством нагенерированных файлов.

Например, использование первой команды для поиска по директории /src/:

Вариант для поиска по директории /var/cache/:

В разных ситуациях для пользователей проблемными папками оказывались:

  • /var/lib/php/sessions/
  • /var/cache/fontconfig
  • /usr/src/
  • /var/cache/eaccelerator/
  • /var/log/squid3/

В /usr/src/ накапливалось слишком большое количество файлов, имеющих отношение к предыдущим ядрам. В /var/lib/php/sessions/ - бесконечные сессии phpMyAdmin. В /var/log/squid3/ и вообще в папке /var/log/ может накопиться огромное количество файлов с журналами от неправильно работающей программы или просто за много лет. В папке /var/cache/ может скопиться огромное количество файлов, имеющих отношение к кэшированию.

В моём случае причиной проблемы оказалась папка /var/cache/fontconfig — в этой папке постоянно накапливаются новые файлы (я не знаю, насколько это нормально) и по итогу работы за 4 года из-за этой папки закончились иноды.

Когда проблемная папка найдена, то нужно её очистить. Скорее всего все файлы в ней не нужны (оцените это исходя из вашей ситуации). Также весьма вероятно, что файлов там астрономическое количество и их обработка может затянуться на часы, поэтому самый быстрый вариант — удалить папку целиком, а затем создать её заново. Даже при таком подходе в моём случае удаление папки /var/cache/fontconfig заняло около 10-20 минут.

Это полностью разрешило мою проблему и снизило количество используемых инод со 100% до 13%:


Плохие блоки

Ещё одна распространённая проблема — это плохие блоки в файловой системе. Со временем из-за износа дисков, файловые системы повреждаются. Ваша операционная система, скорее всего, увидит эти блоки пригодными для использования, если они не помечены иным образом. Лучший способ найти и пометить эти блоки — использовать fsck с флагом -cc. Помните, что вы не можете использовать fsck из той же файловой системы, которую тестируете. Вам, вероятно, понадобится использовать Live CD.

Очевидно, замените /dev/sda2 на имя того диска и раздела, который вы хотите проверить. Кроме того, имейте в виду, что это, вероятно, займёт много времени.

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

Когда не хватает дискового пространства на виртуальном сервере, администратор вручную увеличивает свободное место. О том, как это сделать на сервере под управлением Debian 9 – расскажем ниже.

Предварительная подготовка

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


Скриншот №1. Увеличение дискового пространства.

Важно! Все нижеперечисленные операции выполняются с правами доступа суперпользователь.

Настройка

Запустим сканирование ОС для нахождения свободного пространства.
echo 1 > /sys/block/sda/device/rescan

Утилита находит добавленное дисковое пространство и транслирует информацию Debian.

1. Воспользуемся встроенной утилитой parted, чтобы добавить новый объем к текущему. Запустим с ключом p.
Parted
(parted) p

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


Скриншот №2. Информация о дисковом пространстве.

Запоминаем цифру, которая указана под номером 1. В нашем случае это 236 Gb.

2. Обозначим утилите, какой раздел требует изменения. На скриншоте №2 он выделен цифрой 2.
(parted) resizepart 2

Указываем после знака вопроса новый размер, который доступен после увеличения объема. В нашем случае это 236Gb. Нажимаем Enter. Выходим из утилиты командой quit.

3. Обновим текущую конфигурацию ОС. Для начала откроем встроенный менеджер fdisk, указав текущий раздел диска (sda). Запустим утилиту с ключом n.
fdisk /dev/sda
Command (m for help): n

На экране появится запрос о назначении типа диска.

В нашем примере это будет логический диск. Нажимаем клавишу l.

Далее потребуется задать значения начального и конечного сектора. Оставляем как есть, т.е. нажимаем «Ввод» два раза.

Утилита создаст новый раздел. Запоминаем его номер – в нашем случае это 7.

4. Используя ключ t, меняем тип раздела.

Указываем номер раздела, который будем менять (для нашей ситуации - 7). Далее вводим новый тип – 8e. Если необходимо узнать список доступных типов, то используем ключ L.

5. Вводим операнд w. Утилита сообщит о невозможности перезагрузки – произведем её вручную.

6. Оповестим ОС Debian об изменениях в разделе sda.
partx -v -a /dev/sda

7. Активируем новый раздел, используя внутреннюю команду.
pvcreate /dev/sda7

8. Теперь необходимо добавить к текущей группе томов новый физический раздел.
vgextend debian94-vg /dev/sda7

9. Предпоследний этап – увеличиваем дисковое пространство логического тома.
lvextend -l +100%FREE /dev/debian94-vg/root

И заключительный шаг – расширяем файловую систему жесткого диска.
resize2fs /dev/debian94-vg/root

Читайте также: