GrabDuck

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

:

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

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

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

$ ls /boot/

21352725115_29ae7aab5f_c

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

21164866468_07760fc23c_z

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

Удалить старые ядра Ubuntu с помощью apt-get

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

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

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

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

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

$ sudo uname -a

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

$ dpkg --list | grep linux-image
$ dpkg --list | grep linux-headers

21165822519_ef5fe421e2_c

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

$ sudo apt-get purge linux-image-3.19.0-15
$ sudo apt-get purge linux-headers-3.19.0-15

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

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

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

$ sudo apt-get purge linux-image-3.19.0-{18,20,21,25}
$ sudo apt-get purge linux-headers-3.19.0-{18,20,21,25}

21352725355_39cc4fc2d0_c

После выполнения этих команд будет удаленно четыре образа ядра 3.19.0-18, 3.19.0-20, 3.19.0-21 и 3.19.0-25.

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

$ sudo update-grub2

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

20731623163_cccfeac854_z

Удаление старых версий ядер с помощью скрипта Purge-old-kernels

Это был не единственный способ удалить старые версии ядра ubuntu. Все можно сделать более удобно с помощью скрипта purge-old-kernels. Этот скрипт входит в состав пакета bikeshed вместе с другими полезными инструментами. Для установки выполните:

$ sudo apt-get install bikeshed

Скрипт purge-old-kernels позволяет удалить нужное количество старых ядер и их заголовочных файлов. Например, для удаления всех образов ядер вместе с дополнительными файлами, кроме трех самых новых ядер, выполните:

$ sudo purge-old-kernels --keep 3

Это единственный способ, который работает для ядер, собранных из исходников и установленных вручную.

Как удалить старые образы ядер с помощью центра приложений

Удаление старых ядер ubuntu 16.04 может быть выполнено и с помощью графического интерфейса. Откройте центр приложений из меню Dash или ярлыка в панели Unity, затем наберите в строке поиска linux-image:

3ffbf0e6bda6t

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

936a3b0ceac6t

Ту же самую процедуру нужно будет проделать для пакетов linux-headers. Аналогично удаление старых ядер в Ubuntu будет выполняться в пакетном менеджере Synaptic.

Другие способы

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

$ 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-get autoremove
$ sudo update-grub

Выводы

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