Как освободить место в Linux, если корневой раздел заполнен

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

Когда это происходит, вы можете столкнуться с такими ошибками, как:

No space left on device

Не паникуйте! Это просто означает, что ваш корневой каталог (раздел /) переполнен, что является распространенной проблемой, особенно на системах с ограниченным дисковым пространством или серверах, работающих 24/7.

Когда это происходит, вы можете столкнуться с такими проблемами, как:

  • Невозможность установки или обновления пакетов.
  • Невозможность загрузки системы.
  • Службы не запускаются.
  • Не записываются журналы или временные файлы.

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

Шаг 1: Проверка использования диска в Linux

Первым шагом будет подтверждение проблемы с помощью команды df, которая покажет используемое и доступное пространство на корневом разделе. Если использование составляет 100%, пора принимать меры.

df -h /

Теперь давайте определим, какие папки занимают больше всего места.

sudo du -h --max-depth=1 / | sort -hr

Это отобразит каталоги верхнего уровня под /, отсортированные по размеру.

/var
/usr
/home
/tmp
/opt

Определив самую большую директорию, вы можете исследовать ее дальше, например, если /var большая:

sudo du -h --max-depth=1 /var | sort -hr

Шаг 2: Очистка кэша пакетов в Linux

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

Очистка этого кэша – безопасный и эффективный способ освободить место.

sudo apt clean         # For Debian/Ubuntu
sudo dnf clean all     # For RHEL-based

Эти команды удаляют все кэшированные файлы пакетов из /var/cache/apt/archives/ (для APT) и /var/cache/dnf/ (для DNF), которые могут накапливаться со временем и занимать значительное количество места.

Шаг 3: Удаление старых ядер в Linux

Когда ваша система устанавливает обновления ядра, она обычно сохраняет старые версии, чтобы обеспечить восстановление в случае сбоя нового. Со временем это может занимать много места, особенно в /boot, емкость которого ограничена.

Чтобы освободить место в системе Linux, полезно удалить старые, неиспользуемые ядра. Однако никогда не удаляйте работающее ядро, поскольку оно необходимо для загрузки и правильной работы системы.

Сначала проверьте текущую версию ядра.

uname -r

Затем перечислите все установленные ядра:

dpkg --list | grep linux-image    # For Debian/Ubuntu
rpm -q kernel                     # For RHEL-based

Определив, какие версии ядра больше не нужны, вы можете удалить их. Например, чтобы удалить версию 5.15.0-88-generic на Ubuntu.

sudo apt remove --purge linux-image-5.15.0-88-generic

А в системах на базе RHEL:

sudo dnf remove kernel-4.18.0-305.el8.x86_64

После удаления обновите загрузчик.

sudo update-grub

После удаления старых ядер выполните эту операцию, чтобы очистить оставшиеся пакеты и зависимости:

sudo apt autoremove      # For Debian/Ubuntu
sudo dnf autoremove      # For RHEL-based

Шаг 4: Очистка файлов журналов в Linux

Linux ведет учет активности системы и событий в файлах журналов в каталоге /var/log. Эти журналы помогают системным администраторам устранять неполадки, отслеживать действия пользователей и понимать производительность системы.

Но со временем они могут стать очень большими, особенно если:

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

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

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

sudo du -sh /var/log/*

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

sudo truncate -s 0 /var/log/syslog
sudo truncate -s 0 /var/log/kern.log
sudo truncate -s 0 /var/log/auth.log

Если в вашей системе используется journalctl (распространено в системах systemd), очистите журналы с помощью:

sudo journalctl --vacuum-time=7d

При этом будут сохранены только журналы за последние 7 дней.

Шаг 5: Очистка Docker (если он установлен) в Linux

Если вы используете Docker, он может занимать много места из-за образов, контейнеров и томов.

Проверьте использование пространства Docker:

docker system df

Удаление неиспользуемых данных Docker:

docker system prune -a

Будьте осторожны: при этом будут удалены все неиспользуемые образы, контейнеры и тома.

Шаг 6: Метод спасения Live USB для полного корневого раздела

Если система полностью заполнена и не реагирует на запросы, вы можете использовать Live USB для загрузки в среду Live Linux и монтирования корневого раздела.

sudo fdisk -l
sudo mount /dev/sda1 /mnt  # Replace sda1 with your actual root partition

Просмотрите файловую систему и удалите большие ненужные файлы.

cd /mnt
sudo du -sh var/*
sudo rm -rf var/log/*

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

Предотвращение этой проблемы в будущем

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

  • Используйте отдельные разделы – Во время установки создайте отдельные разделы для /var, /home и /tmp.
  • Мониторинг использования диска – Настройте простые инструменты мониторинга, такие как monit, задания cron или оповещения по электронной почте, чтобы уведомлять вас о высоком уровне использования диска.
  • Планируйте регулярную очистку – Создайте задания cron для регулярной очистки журналов и кэша.
  • Избегайте хранения больших файлов в корневом разделе – Храните файлы резервных копий, загрузки и мультимедиа на подключенных внешних дисках или в отдельном разделе для данных.

Заключение

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

Приходилось ли вам сталкиваться с проблемой полного корневого раздела в системе Linux? Какие шаги вы предприняли, чтобы решить эту проблему? Поделитесь своим опытом в комментариях ниже – ваши советы могут помочь другим участникам сообщества!

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.tecmint.com

Похожие статьи

Комментарии (0)