Введение / Зачем это нужно
Каждое обновление ядра Linux в Ubuntu устанавливает новые пакеты linux-image и linux-headers. Старые версии остаются на диске, занимая от 100 до 300 МБ каждые. Со временем они могут накопить гигабайты "хлама" в разделе /boot, что приводит к ошибкам "No space left on device" при попытке установки обновлений.
Этот гайд покажет, как безопасно найти и удалить устаревшие версии ядра, освободив место и сохранив возможность отката к предыдущей стабильной версии.
Требования / Подготовка
- Права администратора: Все команды требуют
sudo. - Текущее ядро: Вы должны точно знать, какое ядро работает в данный момент. Удаление активного ядра сделает систему неработоспособной.
- Резервная копия (рекомендуется): Перед массовыми операциями с пакетами имеет смысл сделать снимок системы (snapshot), если вы используете Timeshift, или хотя бы создать список удаляемых пакетов.
- Интернет: Не требуется, но может понадобиться для переустановки ядра в случае ошибки.
Шаг 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-genericlinux-image-5.15.0-85-genericlinux-headers-5.15.0-86linux-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 пропустил какие-то старые ядра (например, они были установлены вручную), удалите их вручную.
- Составьте список версий для удаления. Например, вы решили удалить ядра
5.15.0-50и5.15.0-55. - Для каждой версии выполните команду 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 и сгенерирует новое меню, содержащее только актуальные установленные ядра.
Проверка результата
- Проверьте свободное место на
/boot:df -h /boot
Вы должны увидеть значительное увеличение свободного пространства (например, с 10% до 40-50%). - Проверьте список установленных ядер (как в шаге 2). Устаревшие версии должны исчезнуть.
- Перезагрузите систему (
sudo reboot) и убедитесь, что она загружается нормально с оставшегося ядра. При старте в меню GRUB должны быть видны только актуальные версии.
Возможные проблемы
Проблема: apt-get autoremove пытается удалить текущее ядро
Причина: Система некорректно пометила пакеты, или вы случайно установили новое ядро, но ещё не перезагрузились. Решение:
- Отмените операцию.
- Перезагрузитесь в новое ядро (
uname -rпокажет, что вы на нём). - Запустите
sudo apt-get autoremoveснова. Теперь старые ядра будут корректно определены как ненужные.
Проблема: После удаления ядер update-grub не находит новые ядра
Причина: Возможно, вы случайно удалили все ядра, кроме одного, или пакеты заголовков (linux-headers) остались в несогласованном состоянии.
Решение:
- Проверьте, что в
/bootесть файлыvmlinuz-<версия>иinitrd.img-<версия>. - Установите последнее стабильное ядро заново:
sudo apt-get install linux-generic. - Снова запустите
sudo update-grub.
Проблема: Не хватает места даже для autoremove
Причина: Раздел /boot заполнен на 100%, и apt не может создать временные файлы для обработки пакетов.
Решение:
- Временное решение: Вручную удалите самые старые файлы ядра из
/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). Делайте это осторожно, зная, что удаляете! - После освобождения 50-100 МБ запустите
sudo apt-get -f installи затемsudo apt-get autoremove --purgeдля корректного завершения.
Проблема: Система не загружается после удаления
Причина: Удалено единственное рабочее ядро или повреждён GRUB. Решение:
- Загрузитесь в Recovery Mode через меню GRUB (опция "Advanced options for Ubuntu").
- Выберите пункт
fsckдля проверки файловой системы, затемdpkgдля восстановления пакетов. - Если не помогает, загрузитесь с LiveCD, смонтируйте корневую раздел и переустановите GRUB (
chrootв систему, затемgrub-installиupdate-grub). - В крайнем случае восстановите удалённые файлы ядра из резервной копии или установите ядро заново с помощью
apt-get install.