Linux

Удаление старых ядер Ubuntu: освободите место на диске

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

Обновлено 16 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04 LTSUbuntu 22.04 LTSUbuntu 24.04 LTSDebian-based дистрибутивы

Введение / Зачем это нужно

Каждое обновление ядра Linux в Ubuntu устанавливает новые пакеты linux-image и linux-headers. Старые версии остаются на диске, занимая от 100 до 300 МБ каждые. Со временем они могут накопить гигабайты "хлама" в разделе /boot, что приводит к ошибкам "No space left on device" при попытке установки обновлений.

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

Требования / Подготовка

  1. Права администратора: Все команды требуют sudo.
  2. Текущее ядро: Вы должны точно знать, какое ядро работает в данный момент. Удаление активного ядра сделает систему неработоспособной.
  3. Резервная копия (рекомендуется): Перед массовыми операциями с пакетами имеет смысл сделать снимок системы (snapshot), если вы используете Timeshift, или хотя бы создать список удаляемых пакетов.
  4. Интернет: Не требуется, но может понадобиться для переустановки ядра в случае ошибки.

Шаг 1: Определите текущее активное ядро

Сначала узнайте, какая версия ядра используется сейчас. Откройте терминал (Ctrl+Alt+T) и выполните:

uname -r

Вывод будет выглядеть примерно так: 5.15.0-86-generic. Запомните или запишите эту версию. Это ядро удалять категорически нельзя.

Вы также можете посмотреть список всех доступных для загрузки ядер в меню GRUB при старте системы.

Шаг 2: Просмотрите список всех установленных ядер

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

dpkg -l 'linux-image-*' | grep ^ii

Или более читаемый вариант:

apt list --installed 2>/dev/null | grep -E 'linux-image|linux-headers'

В выводе вы увидите список пакетов, например:

  • linux-image-5.15.0-86-generic
  • linux-image-5.15.0-85-generic
  • linux-headers-5.15.0-86
  • linux-headers-5.15.0-85

Важно: Пакеты, связанные с текущим ядром (из шага 1), а также, как правило, один предыдущий (самый свежий из старых) стоит оставить для отката. Удаляйте версии, которые явно устарели (например, 5.15.0-50, 5.15.0-60 и т.д., если у вас уже 86-я).

Шаг 3: Безопасное автоматическое удаление через autoremove

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

Выполните команду:

sudo apt-get autoremove --purge

Что она сделает:

  • autoremove — удалит пакеты, которые больше не нужны как зависимости (включая старые linux-image-* и linux-headers-*, если они были автоматически установлены).
  • --purge — также удалит конфигурационные файлы этих пакетов, что даст максимальную экономию места.

Внимательно проверьте список пакетов, который предложит удалить apt! Убедитесь, что в нём нет пакетов с версией вашего текущего ядра (uname -r). Если текущее ядро попало в список — отмените операцию (Ctrl+C) и переходите к шагу 4 для ручного удаления.

Шаг 4: Ручное удаление конкретных старых ядер (если нужно)

Если autoremove пропустил какие-то старые ядра (например, они были установлены вручную), удалите их вручную.

  1. Составьте список версий для удаления. Например, вы решили удалить ядра 5.15.0-50 и 5.15.0-55.
  2. Для каждой версии выполните команду purge:
sudo apt-get purge linux-image-5.15.0-50-generic linux-headers-5.15.0-50 linux-headers-5.15.0-50-generic
sudo apt-get purge linux-image-5.15.0-55-generic linux-headers-5.15.0-55 linux-headers-5.15.0-55-generic

Почему purge? Обычный remove оставляет конфиги, а purge удаляет всё. Для ядер это важно, так как конфигурационные файлы в /boot могут занимать десятки мегабайт.

Совет: Можно удалить несколько версий одной командой, перечислив их через пробел.

Шаг 5: Обновите конфигурацию загрузчика GRUB

После удаления пакетов файлы ядер из /boot физически удалены, но меню загрузчика GRUB может ещё содержать ссылки на них. Обновите его конфигурацию:

sudo update-grub

Эта команда просканирует /boot и сгенерирует новое меню, содержащее только актуальные установленные ядра.

Проверка результата

  1. Проверьте свободное место на /boot:
    df -h /boot
    

    Вы должны увидеть значительное увеличение свободного пространства (например, с 10% до 40-50%).
  2. Проверьте список установленных ядер (как в шаге 2). Устаревшие версии должны исчезнуть.
  3. Перезагрузите систему (sudo reboot) и убедитесь, что она загружается нормально с оставшегося ядра. При старте в меню GRUB должны быть видны только актуальные версии.

Возможные проблемы

Проблема: apt-get autoremove пытается удалить текущее ядро

Причина: Система некорректно пометила пакеты, или вы случайно установили новое ядро, но ещё не перезагрузились. Решение:

  1. Отмените операцию.
  2. Перезагрузитесь в новое ядро (uname -r покажет, что вы на нём).
  3. Запустите sudo apt-get autoremove снова. Теперь старые ядра будут корректно определены как ненужные.

Проблема: После удаления ядер update-grub не находит новые ядра

Причина: Возможно, вы случайно удалили все ядра, кроме одного, или пакеты заголовков (linux-headers) остались в несогласованном состоянии. Решение:

  1. Проверьте, что в /boot есть файлы vmlinuz-<версия> и initrd.img-<версия>.
  2. Установите последнее стабильное ядро заново: sudo apt-get install linux-generic.
  3. Снова запустите sudo update-grub.

Проблема: Не хватает места даже для autoremove

Причина: Раздел /boot заполнен на 100%, и apt не может создать временные файлы для обработки пакетов. Решение:

  1. Временное решение: Вручную удалите самые старые файлы ядра из /boot (например, vmlinuz-5.15.0-50-generic, initrd.img-5.15.0-50-generic, config-5.15.0-50, System.map-5.15.0-50). Делайте это осторожно, зная, что удаляете!
  2. После освобождения 50-100 МБ запустите sudo apt-get -f install и затем sudo apt-get autoremove --purge для корректного завершения.

Проблема: Система не загружается после удаления

Причина: Удалено единственное рабочее ядро или повреждён GRUB. Решение:

  1. Загрузитесь в Recovery Mode через меню GRUB (опция "Advanced options for Ubuntu").
  2. Выберите пункт fsck для проверки файловой системы, затем dpkg для восстановления пакетов.
  3. Если не помогает, загрузитесь с LiveCD, смонтируйте корневую раздел и переустановите GRUB (chroot в систему, затем grub-install и update-grub).
  4. В крайнем случае восстановите удалённые файлы ядра из резервной копии или установите ядро заново с помощью apt-get install.

Часто задаваемые вопросы

Безопасно ли удалять старые ядра вручную?
Можно ли настроить автоматическую очистку старых ядер?
Чем `apt-get autoremove` отличается от `purge`?
Что делать, если после удаления ядер система не загружается?

Полезное

Определите текущее активное ядро
Просмотрите список установленных ядер
Удалите ненужные ядра через apt autoremove
Вручную удалите конкретные старые ядра (если нужно)
Обновите конфигурацию загрузчика GRUB

Эта статья помогла вам решить проблему?