Немає місця в кореневому розділі Linux: що робити?

Одна з найпоширеніших проблем, з якою стикаються користувачі Linux — це заповнення кореневого розділу (/).

Система вирішила повідомити про це через відмову встановлювати пакети, запускати сервіси або писати логи. Тому зараз ми покажемо, як швидко і безпечно звільнити місце. 

Крок 1: перевірка використання диска

Починаємо з діагностики: потрібно з’ясувати, чи справді проблема в нестачі місця на кореневому розділі. Для цього використовуємо команду:

df -h /

Вона покаже, скільки простору вже зайнято, а скільки ще доступно. Якщо бачиш 100% — пора діяти.

Далі з’ясовуємо, які саме каталоги займають найбільше місця. Для цього запусти:

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 досить розумна система, і щоб не завантажувати одне й те саме кожного разу, вона зберігає всі встановлені та оновлені пакети у локальний кеш. Але з часом цей кеш може розростися до гігантських розмірів — особливо якщо система часто оновлюється.

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

Використовуємо команду залежно від твого дистрибутиву:

  • Для Debian/Ubuntu:

sudo apt clean

  • Для RHEL/CentOS/Fedora:

sudo dnf clean all

Ці команди очистять локальний кеш пакетів, що зберігається у:

  • /var/cache/apt/archives/ (APT),
  • /var/cache/dnf/ (DNF).

Якщо твоя система працює вже давно або часто отримує оновлення — різницю після очищення ти точно помітиш.

Крок 3: видалення старих ядер

Linux зазвичай зберігає старі версії ядра після оновлень — на випадок, якщо щось піде не так із новою версією. Це корисно, однак з часом такі запаси починають займати чимало місця, особливо в розділі /boot, де простору обмаль.

Щоб звільнити місце, можна сміливо видалити старі ядра, які не використовуються. Але будь уважним: не чіпай ядро, яке працює зараз, бо без нього система просто не завантажиться.

Спершу дізнайся, яке ядро юзається:

uname -r

Тепер подивись список встановлених ядер:

  • Для Debian/Ubuntu:

dpkg --list | grep linux-image

  • Для RHEL/CentOS/Fedora:

rpm -q kernel

Побачив старі версії? Видаляй обережно, залишаючи поточне ядро.

  • В 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

І наостанок — видали зайві залежності:

  • Для Debian/Ubuntu:

sudo apt autoremove

  • Для RHEL/CentOS/Fedora:

sudo dnf autoremove

Крок 4: очищення лог-файлів

У 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

Якщо твоя система працює на systemd, то для очищення логів краще скористатись:

sudo journalctl --vacuum-time=7d

Ця команда залишить тільки логи за останні 7 днів. І часто цього більш ніж достатньо.

Крок 5: очищення Docker у Linux

Якщо ти використовуєш Docker — є велика ймовірність, що саме він забрав чималу частину диска. Контейнери, образи, томи — все це накопичується, навіть якщо ти вже давно нічого не запускав.

Спочатку перевір, скільки він займає місця:

docker system df

Якщо бачиш багато зайвого, видали все, що не використовується:

docker system prune -a

Уважно: ця команда видаляє все, що не використовується прямо зараз — образи, контейнери й томи. Якщо ти не запускав їх вручну або вони неактивні — вони будуть видалені. Будь обережним, щоб не втратити щось важливе.

Крок 6: на випадок, якщо система не запускається 

Буває, що кореневий розділ заповнений настільки, що система просто перестає реагувати: не вантажиться, не дає залогінитись і нічого не працює. У такому випадку скористайся Live USB, щоб отримати доступ до кореневого розділу через Live Linux.

sudo fdisk -l

sudo mount /dev/sda1 /mnt  # заміни sda1 на свій кореневий розділ

Перейди в цю файлову систему:

cd /mnt

Подивись, що займає найбільше місця:

sudo du -sh var/*

І, якщо треба, обережно видали найбільші логи або інші непотрібні дані:

sudo rm -rf var/log/*

Обережно: не видаляй системні файли — краще обмежся логами, кешем або тимчасовими файлами. І завжди перевір, що саме ти збираєшся стерти.

Як не потрапити в таку ситуацію знову?

Почистити кореневий розділ — це добре. Але ще краще зробити так, щоб більше до цього не повертатись. 

Ось кілька порад, як уникнути такої ситуації:

  • Використовуй окремі розділи

Під час встановлення системи створи окремі розділи для:

  1. /var — тут зберігаються логи та кеш
  2. /home — для особистих файлів
  3. /tmp — для тимчасових даних
  • Слідкуй за диском

Використовуй прості інструменти моніторингу, як-от monit, cron або сповіщення на email. Система попередить тебе ще до того, як ситуація стане критичною.

  • Автоматичне прибирання

Налаштуй регулярне очищення кешу та логів через cron. Один раз налаштував — і спокійно працюєш далі.

  • Не зберігай великі файли в кореневому розділі

Резервні копії, медіа, архіви — краще зберігати на зовнішніх носіях або в окремому розділі (наприклад, /data).

Підсумуємо

Як бачиш, повністю заповнений кореневий розділ — це не катастрофа, а просто сигнал, що пора навести лад. Linux дає нам усі інструменти для цього — потрібно лише трохи розібратись.

Саме з цим ми допомагаємо в ITEDU, тому якщо хочеш глибше зануритись у Linux, тобі точно до нас.

Обирай свій курс та реєструйся.

Залишити відповідь

Дякуємо, що поділились