Главная >> Инструкции >> Как удалить старые ядра Ubuntu

Как удалить старые ядра Ubuntu

В Ubuntu ядро можно обновить несколькими способами. Для версии Ubuntu Desktop, менеджер обновлений программного обеспечения позволяет обновить ядро до самой новой версии в любое удобное время. В серверной версии Ubuntu ядро обновляется автоматически, утилитами из пакета unattended-upgrades, как часть важных обновлений безопасности. Также ядро можно обновить вручную, с помощью утилит управления пакетами apt, aptitude или даже собрав из исходников.

Со временем из-за таких обновлений, в системе накапливается много неиспользуемых образов ядер, которые только занимают дисковое пространство. Каждый образ ядра вместе со связанными заголовочными файлами и файлами модулей занимает около 200-400 мегабайт. Таким образом, удаление старых ядер в ubuntu позволит освободить много дискового пространства.

Посмотреть сколько в вашей системе набралось образов ядер можно с помощью файлового менеджера, открыв каталог /boot или просто выполнив команду в терминале:

ls /boot/

 

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

 

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


Содержание статьи

Удалить старые ядра в Ubuntu

1. Терминал

Перед тем как удалить старые ядра Ubuntu вспомните, что рекомендуется иметь в системе две версии ядра - последнюю, используемую на данный момент, и предыдущую, на случай какой-либо неполадки.

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

В Ubuntu образы ядра принадлежат к таким пакетам:

  • linux-image-<версия> - образ ядра
  • linux-image-extra-<версия> - внешние модули ядра
  • linux-headers-<версия> - файлы заголовков

Сначала посмотрим какое ядро используется на данный момент в вашей системе:

sudo uname -a

Смотрим какие версии ядер были установлены:

apt list --installed | egrep "linux-image|linux-headers"

Можно посмотреть список ядер с помощью dpkg:

dpkg --list | egrep "linux-image|linux-headers"

Здесь rc - означает, что пакет был установлен, но уже удален, а ii - что пакет сейчас установлен.

На основе полученного списка вы можете удалить любую версию, например, 4.15.0-91:

sudo apt purge linux-image-4.15.0-66-generic linux-headers-4.15.0-91-generic

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

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

Если такое ядро не одно, вы можете удалить старые ядра ubuntu одной командой, используя расширенный синтаксис Bash. Оператор {} будет работать только в Bash и совместимых с ним оболочках:

sudo apt purge linux-image-4.15.0-{20.21,50.54,51.55} linux-headers-4.15.0-{20.21,50.54,51.55}

После выполнения этих команд будет удаленно три образа ядра 4.15.0-20.21, 4.15.0-50.54, 4.15.0-51.55.

Если конфигурация Grub не обновится по каким-либо причинам, это можно сделать вручную:

sudo update-grub2

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

Скрипт purge-old-kernels, который можно было использовать для удаления старых ядер больше не актуален, потому что он просто ссылается на команду apt. Теперь можно удалить старые ядра с помощью неё:

sudo apt --purge autoremove

Удалить все старые ядра, кроме используемого и предпоследнего, также можно командой:

sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)

Затем нужно выполнить команду очистки системы и вручную обновить конфигурацию grub.

sudo apt autoremove
sudo update-grub

2. Synaptic

Synaptic - это графический пакетный менеджер для Ubuntu. Он позволяет устанавливать удалять и обновлять все пакеты в системе. Для его установки выполните:

sudo apt install synaptec

Запустите программу, в левой части выберите пункт Разделы затем Ядро и модули:

Найдите в списке пакеты linux-headers и linux-image, которые не используются и выберите в контекстном меню для них пункт Отметить для полного удаления:

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

3. Ubuntu Cleaner

Это небольшая утилита, которая позволяет вам держать систему в чистоте удаляя старые ядра, ненужные пакеты, кэши браузеров и тому подобные вещи. Для её установки надо добавить PPA:

sudo add-apt-repository ppa:gerardpuig/ppa

Затем установите программу:

sudo apt install ubuntu-cleaner

После завершения установки вы найдёте её в главном меню:

Для очистки ядер выберите Old kernels на левой панели, затем отметьте ядра, которые надо удалить или отметьте пункт Old kernels в правой части окна:

После этого нажмите Clean и подтвердите операцию:

Всё, ваши старые ядра будут удалены.

Выводы

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

17 комментариев к “Как удалить старые ядра Ubuntu”

  1. Добрый день. Ubuntu вижу первый раз.
    Забился раздел /boot на сервере.
    Используемое ядро 4.4.0-164.
    Так же валяются много предыдущих версий и несколько новых(165, 166). В статье написано "Обратите внимание, что при удалении старого ядра, будет автоматически инициирован процесс обновления ядра до последней версии". Поговорил с начальством, сказали что обновлять до новой версии не надо, т.к. не будет работать развёрнутая на сервере почтовая программа.
    Вопрос. Могу ли я перед удалением старых ядер, сначала удалить новые? Или как можно удалить старые, чтобы остаться на текущей версии ядра?

    Ответить
  2. AVer TV 507 Studio можно как нибудь адаптировать к Linux Mint 19.3 ? драйвера пишут только под винду, тут несколько советов находил в интернете не получается Linux устройство не видит вообще, через wine & virtualbox тоже не тянет. уже спортивный интерес.

    Ответить
  3. а можно удалить старые ядра без того , что будет "автоматически инициирован процесс обновления ядра до последней версии, если вы этого еще не сделали"?

    Ответить
  4. Удалил ядра из /boot/ теперь пытаюсь восстановить загрузик.

    Воспользовался статьёй https://losst.pro/kak-udalit-starye-versii-yadra-v-ubuntu удалил все ядра включая рабочее. Linux не грузится (Debian 11). Пытаюсь загрузить через груб, загружаю ядро (4.19.0-17-amd64), но падает ошибка kernel panic. Может Я не подходящее ядро загружаю?

    Ответить
  5. Привет, Дмитрий. У меня подобной ситуации ни разу не возникало, я могу только предположить. Поскольку вы удалили все ядра, то загрузчик, похоже, просто не знает, что загружать. У вас современный дистрибутив, загрузите систему с live-cd, попробуйте сделать восстановление. Если не знаете, как это сделать, сообщите, попробую воспроизвести ситуацию на своей старенькой машине, только туда придётся предварительно Debian 11 ставить.

    ...Опыт, сын ошибок трудных...

    Ответить
  6. Параллельно стоит винда. Настроил видимость папок linux. В etc не нашёл номера ядра. Точно не могу узнать какое ядро там стояло. Поэтому при подставлении ядра grub он падает. Может не заморачиваться и просто перекинуть личные настройки и папку home и все данный на новую систему?

    Ответить
  7. Дмитрий, думаю - да, вам проще будет переустановить систему. Для /home имеет смысл создать отдельный раздел; если вы раньше этого не делали, то настоятельно рекомендую.

    А вашу ситуацию я всё-таки постараюсь воспроизвести. Может быть, сделаю это сегодня.

    Ответить
  8. Вот эта команда опасная:
    sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)
    При её вызове появляется сообщение удалить или отменить удаление текущего ядра.

    Ответить
  9. Решил проблему следующим образом:
    1) загрузился с установочного диска в режиме: Advanced options: Graphical Rescue Mode
    2) запустил shell в окружение поломанного линукса: Execute shell in /dev/sdc5
    3) скопировал и запустил заранее скачанный образ ядра: dpkg -i linux-image-amd64_5.10.140-1_amd64.deb
    4) обновил boot: update-grub

    Версию ядра узнал из логов сообщений bash-a. Эта статья [https://losst.pro/kak-uznat-versiyu-debian] для это случая не подходит,

    Ответить

Оставьте комментарий