Oracle linux удаление старых ядер

Обновлено: 01.07.2024

Что такое «неиспользуемые» ядра и почему они накапливаются в системе?

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

Но дело ещё и в том, что когда для системы выпускается новая версия Linux-ядра. То оно (новое ядро) будет установлено как отдельное независимое ядро. В процесс его установки также входит автоматическая настройка загрузчика GRUB. Для того, чтобы свежеустановленное ядро загружалось им по-умолчанию. При этом, как правило, старые ядра не удаляются. Это сделано для того, чтобы как можно в более полной степени следовать концепции «Unix Way». Которая, в частности, предполагает предотвращение всяческой самодеятельности, дабы не навредить системе. В случае с установкой новых версий ядер, старые не удаляются, чтобы дать возможность пользователю их использовать. Если с новым ядром возникнут какие-либо неполадки.

Стоит заметить, что в зависимости от «комплектности» ядер, они могут, занимать свыше 300 мегабайт дискового пространства. Нетрудно представить, какой объём в таком случае занимают несколько неиспользуемых старых ядер.

В данной статье будут рассмотрены способы очистки системы от неиспользуемых ядер на примере дистрибутивов Ubuntu. Так, например, для этих систем (как впрочем и для большинства других Linux-дистрибутивов) ядро представляет собой набор из следующих пакетов:

  • linux-headers-[версия] – заголовочные файлы ядра;
  • linux-image-[версия] – бинарный образ ядра;
  • linux-extra-[версия] – дополнительные внешние модули ядра для расширения функционала.

При установке и удалении перечисленных пакетов также выполняются и служебные скрипты для настройки системного загрузчика. Это необходимо для очистки его конфигурации (или для добавления в неё) в соответствии с установленными (или удаляемыми) в системе ядрами.

Удаление ядер с помощью системы управления пакетами

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

Как можно видеть, в качестве основного ядра (то, которое загружает загрузчик GRUB по-умолчанию) является версия 4.18.0-18.
Теперь можно выяснить, какие ещё ядра присутствуют в системе. На примере Ubuntu для этого используется команды менеджера пакетов dpkg:

Для первой команды вывод может быть примерно таким:

Похожий вывод даст вторая команда, но с тем лишь отличием, что в наименовании пакетов будет указано «linux-headers». Как можно видеть, кроме основного ядра версии 4.18.* в системе присутствуют также ядра из семейства версии 4.15 — 43, 46 и 47. От первых двух не мешало бы избавиться, высвободив таким образом значительный объём дискового пространства. А вот ядро 4.15.0-47 рекомендуется оставить как резервное. Это обычная практика в Linux-системах — иметь на борту альтернативное ядро предыдущей версии со стабильными проверенной конфигурацией и набором модулей.

Следует не забывать, выполнять вышеприведённые команды для пакетов linux-extra – они также могут присутствовать в системе. Но гораздо реже, поскольку данные пакеты чаще всего устанавливаются вручную.

Теперь, когда решено удалить неиспользуемые ядра версий 4.15.0-43 и 4.15.0-46, можно воспользоваться командами системы управления пакетами (СУП) для используемого дистрибутива. В данном случае, для Ubuntu, следует выполнить следующие команды:

Во время удаления этих пакетов конфигурация загрузчика GRUB будет автоматически перенастроена, ничего вручную для этого делать не нужно. Следует отметить, что в системе также могут присутствовать версии ядер без «generic» в наименовании пакетов. Если такие ядра не нужны, то и их также рекомендуется удалить. Изменения для GRUB можно заметить при следующей перезагрузке системы. В меню загрузчика (если в его конфигурации включен вывод меню выбора) будут отсутствовать пункты для соответствующих удалённых ядер.

Удаление сразу нескольких ядер

Нередко старых ядер накапливается довольно много. И при их удалении одной командой apt-get purge не совсем удобно перечислять наименования пакетов всех ядер. Чтобы сделать команду удаления ядер более удобочитаемой, а также сэкономить время на её составление. Можно воспользоваться некоторыми возможностями командной строки. Такими как регулярные выражения. В этом случае для удаления двух ядер версий 4.15.0-43 и 4.15.0-46. Включая их образы и заголовочные файлы запись соответствующих команд будет выглядеть следующим образом:

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

Использование специализированных утилит — скрипт purge-old-kernels

Некоторые пользователи могут и не решиться на такие действия как удаления ядер в силу малоопытности. Для подобных ситуаций во многих дистрибутивах Linux в арсенале стандартного репозитория имеются специализированные утилиты, которые позволяют безопасно выполнять самые ответственные действия с системой. Одной из таких утилит является bikeshed, которую можно установить из одноимённого пакета:

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

Как и в случае с удалением ядер с помощью СУП, беспокоиться о перенастройке GRUB не стоит, поскольку данный скрипт это также умеет делать. Но если вдруг конфигурация загрузчика не была обновлена, то можно это сделать вручную, выполнив команду:

В заключение следует отметить, что использование скрипта purge-old-kernels является наиболее предпочтительным способом очистить систему от старых ядер. Главным преимуществом данного способа является его надёжность и универсальность, поскольку этот скрипт корректно удаляет даже те ядра, которые устанавливались в систему вручную путём сборки из исходных кодов.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.


29 Ноя 2019 18:11:27 | 0 comments

Удаление старых ядер (kernel) в Oracle Linux UEK

Раздел /boot как правило создается на отдельной ФС и её размер обычно делают 256MB, 512MB или 1GB и рано или поздно место на нем заканчивается. Как правило причиной всему служит обилие старых ядер (kernel). Конечно система сама будет подчищать старые ядра, но есть нюансы. Обо всех тонкостях мы и поговорим ниже.

Исходные данные: Oracle Linux 7.7 с ядром UEK
Задача: Подчистить старые ядра

Т.к. у меня стоит ядро UEK, то Oracle Linux помимо использования ядра UEK держит в системе еще и стандартные ядра версий 3.10 и обновляет их.

Посмотрим какие ядра у нас есть:

Мы видим, что стоит 4 ядра версии 3.10 и 6 ядер версии 4.14.35 (UEK)

Давайте сократим их до 2 штук.

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

то есть обновили ядра, но не перезагрузили сервер, в результате используется не самое новое ядро.

Проверяем текущее ядро:

Мы видим, что используется ядро kernel-uek-4.14.35-1902.7.3.1.el7uek.x86_64, то есть самое последнее.

Теперь подчистим старые ядра, всего будет 2 шага:
1. Чистка ядер версии 3.10 с помощью утилиты package-cleanup или чистка стандартным yum erase
2. Чистка ядер версии 4.14 (UEK), она возможна только с помощью yum erase

Чтобы установить утилиту package-cleanup выполните:

После этого давайте оставим последние 2 ядра версии 3.10, выполним:

После этого утилита сама удалить все старые ядра версии 3.10 и оставит только 2 последних, самых свежих.

Если Вы не хотите пользоваться package-cleanup, то можно удалить ядра с помощью yum erase, попробуем:

Как Вы поняли, указать какие версии ядер нужно удалять придется вручную.

Теперь удалим старые ядра UEK, выполним:

Теперь посмотрим что у нас осталось:

Отлично, осталось 2 ядра.

Обновим информацию в загрузчике Grub:

Перезагрузим сервер и посмотрим список ядер в загрузчике:

Boot Oracle Linux 7

Boot Oracle Linux 7

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

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

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

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

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


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

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

1. Терминал

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

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

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

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

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

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

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- linux-headers-4.15.0-

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

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

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

Скрипт 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/;/1/!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 и сможете поддерживать свою систему в чистоте и порядке, это очень важно, особенно если вы часто обновляете ядра и тестируете новые версии. Если у вас остались вопросы, спрашивайте в комментариях!

Каждый раз, когда я устанавливаю новое ядро ​​Linux, оно остается в grub_config, каждый раз делая меню загрузки длиннее.

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

Предоставляет ли Ubuntu какой-либо более простой способ очистить их или не показывать в списке загрузки?

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

GRUB2 и его отображение всех ядер

Последние версии Grub2, установленные в Ubuntu, автоматически отображают последнее ядро ​​и скрывают старые версии, которые вы, возможно, установили.

GNU GRUB

Если вы не видите свой grub - не забудьте нажать Shift во время загрузки.

Как видите, отображается только последнее ядро.

Если вы выберете показанную опцию (нажмите Enter ), тогда все старые ядра станут видимыми и доступными для загрузки.

GNU GRUB Предыдущие версии

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

Первая загрузка с последним доступным ядром.

Есть несколько способов удалить старые ядра. Лично я бы не стал трогать Computer Janitor, потому что это, как признается, сломало ваш компьютер своими советами.

синаптические

Альтернативой является Synaptic ( sudo apt install synaptic )

найдите linux-image, щелкните правой кнопкой мыши ядро, выберите полное удаление и, наконец, нажмите кнопку " Применить", чтобы удалить ядро.

Synaptic Package Manager

Повторите поиск, но на этот раз для linux-header - вы можете удалить связанные заголовки для образа ядра, выбранного ранее.

Synaptic, тем не менее, не будет пытаться проверить, что вы пытаетесь удалить. вы можете непреднамеренно удалить свое новейшее ядро ​​- или даже удалить все ваши ядра с помощью этого инструмента, оставив вам не загружаемую Ubuntu!.

Не забудьте проверить, какое ядро ​​вы используете тип:

Результат будет похож на:


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

Моя рекомендация - оставить как минимум два или предпочтительно три ядра, включая самое последнее. Причиной рекомендации является то, что у вас будет по крайней мере одно / два других ядра для загрузки, если по какой-либо причине последнее ядро ​​вы не можете загрузить или вводите регрессивную возможность, такую ​​как неисправное беспроводное соединение.

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

НЕ УДАЛЯЙТЕ ЭТОГО ЯДРА!

Затем введите команду ниже, чтобы просмотреть / просмотреть все установленные ядра в вашей системе.

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

Наконец, выполните команды ниже, чтобы обновить grub2

Перезагрузите вашу систему.

Мой однострочник для удаления старых ядер (это также освобождает место на диске)

Объяснение (помните, | использует выходные данные предыдущей команды в качестве входных данных для следующей)

  • dpkg --list список всех установленных пакетов
  • grep linux-image ищет установленные образы Linux
  • awk '< print $2 >' просто выводит 2-й столбец (который является именем пакета)
  • sort -V упорядочивает элементы по номеру версии
  • sed -n '/'`uname -r`'/q;p' печатает строки перед текущим ядром
  • xargs sudo apt-get -y purge удаляет найденные ядра

Разматывать sed вызов:

  • -n говорит sed быть спокойным
  • `uname -r` выводит текущую установленную версию ядра - мы включаем ее в обратные кавычки, чтобы вывод был включен как часть команды (вы также можете увидеть это как $(uname -r)
  • /something/q говорит остановка, когда вы сопоставляете "что-то" (в этом случае что-то выводится uname -r ) - / окружить регулярное выражение
  • p это печать
  • ; это разделитель команды, так /something/q;p говорит, что выход, когда вы соответствуете что-то, иначе распечатать

в целом, sed -n '/'`uname -r`'/q;p' выводит строки, пока они не совпадут с текущим именем ядра.

Если вы параноик (как я), вы можете сделать последнюю часть xargs echo sudo apt-get -y purge чтобы распечатать команду очистки старых ядер, вы можете проверить, что ничего неожиданного не было добавлено до ее запуска.

Модифицированная версия для удаления заголовков:

Обратите внимание sed вызов изменен. "$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")" извлекает только версию (например, "3.2.0-44"), без "-generic" или подобного из uname -r

Версия "все в одном" для удаления изображений и заголовков (объединяет две версии выше):

Ubuntu 16.04+:

Ubuntu 15.10 и ниже:

Я считаю, что это самый простой и быстрый способ. Он хранит последнее ядро ​​и еще два:

Чтобы изменить количество сохраняемых дополнительных ядер:

Удаление записей из Grub 2 Записи должны быть удалены путем редактирования или удаления файлов в папке /etc/grub.d. Файл /boot/grub/grub.cfg доступен только для чтения и обычно не требует редактирования.

Слишком много ядер?

Если вы не уверены в том, какое ядро ​​вы используете в данный момент, в терминале введите uname -r.

Ядра, удаленные через APT (Synaptic, "apt-get remove" и т. Д.), Автоматически обновят grub.cfg, и никаких действий пользователя не требуется.

Отличным инструментом для удаления ядер (и пунктов меню) является Ubuntu-Tweak, безопасное и простое в использовании приложение с графическим интерфейсом.

Установите Ubuntu твик

Ubuntu-Tweak будет доступен в разделе Приложения> Системные инструменты.

Удалить старые записи ядра

Выберите "Очиститель пакетов" слева и "Очистить ядро" на правой панели.

Выберите из отображаемого списка образы ядра и заголовки, которые вы хотите удалить. Используемое ядро ​​отсутствует в списке.

Удалить операционные системы из меню Grub

Другие операционные системы, которые были удалены с компьютера, также будут удалены из меню после запуска "update-grub" от имени пользователя root.

Пункты меню размещаются в меню Grub2 скриптами. Если вы не хотите, чтобы в меню были введены другие операционные системы, отключите /etc/grub.d/30_osprober

Запустите эту команду, чтобы остановить запуск скрипта
sudo chmod -x /etc/grub.d/30_os-prober

DISABLE_30_OS-PROBER='true' в /etc/default/grub

Удалить Memtest86+ из меню Grub
sudo chmod -x /etc/grub.d/20_memtest86+

  • Запустите команду update-grub, чтобы изменения могли быть включены в grub.cfg

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

Альтернативный способ удаления записей ядра (до 10.04)

для GRUB не GRUB2

Вы можете найти его в разделе Система >> Администрирование >>

Вы видите на втором скриншоте, вы можете выбрать, сколько ядер показать? Обычно я просто держу его на 1, но когда я получаю обновление ядра, я всегда изменяю его на 2 перед перезапуском, чтобы я мог выбрать старое ядро, если у нового ядра проблемы с моим оборудованием. Как только я знаю, что новое ядро ​​работает хорошо, я изменяю его обратно на 1.

Чисто в командной строке это удалит все, кроме текущего и второго самого текущего (через "-2" в команде head ниже):

Обновить: purge-old-kernels устарела в настоящее время.

Я сделал скрипт для очистки ядер даже в сложных условиях. Это называется linux-purge и вы можете найти это здесь.

Если вы просто хотите очистить ядра (и связанные пакеты), которые старше, чем используемое в настоящее время ядро, когда система не сломана, вы можете использовать этот скрипт.

Здесь также есть страница документации по Ubuntu, в которой я участвовал относительно удаления старых ядер.

Вы можете следовать разделу Использование пакета "unattended-updates" в статье " Автоматические обновления безопасности" в Ubuntu Wiki, чтобы выполнить это.

Вам необходимо изменить следующую строку в файле /etc/apt/apt.conf.d/50unattended-upgrades;

автоматически удалять старые пакеты, в том числе ядра.

Также удалите или прокомментируйте строку

в разделе "NeverAutoRemove" файла /etc/apt/apt.conf.d/01autoremove.

Самый быстрый / простой способ (применим как минимум с 12.04), который уже имеется в Ubuntu: apt-get , Выполните следующие действия, если хотите удалить все старые версии ядра, которые не используются (за исключением предыдущей версии, которую вы не используете. Это делается для того, чтобы убедиться, что если текущая версия ядра каким-либо образом дает сбой, у вас есть возможность пойти вернуться в предыдущее состояние). Сделайте следующее:

Это исключит любые старые файлы (включая версии ядра), которые у вас могут быть. Обратите внимание, что если у вас много старых версий, это займет некоторое время, поскольку необходимо убедиться, что удаление версии ядра не имеет проблем. Для меня удаление последних 12 версий ядра заняло около 2 минут. Вы также можете сделать следующее:

Который устранит все загруженное и хранящееся в папке кеша apt. Наконец у вас есть:

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

Компьютер Janitor может очищать старые ядра, и я считаю, что по умолчанию установлен в Ubuntu (но не Kubuntu).

GRUB 1, если вы используете это, имеет опцию в /boot/grub/menu.lst указать, сколько ядер должно показываться на максимуме. GRUB 2, насколько я могу судить, не делает.

Чтобы выяснить, какие ядра и заголовки установлены, используйте

Затем вы можете удалить их по одному или вместе, просто убедитесь, что самые последние из них.

Есть также несколько удобных команд и скриптов для автоматизации удаления.

Следующие утверждения об удалении всех неиспользуемых ядер и заголовков:

Вот что происходит при запуске 18.04.1:

Чтобы удалить старые образы ядра Linux, сначала загрузитесь в ядре, которое вы хотите сохранить.

Вы также можете проверить версию ядра, используя команду uname -r чтобы вы не удалили неправильный по ошибке.

Теперь перейдите в менеджер пакетов synaptic и найдите linux-image и удалите более старые версии, кроме той, которая показана верхней командой. Вообще я предпочитаю идти с последним.

Теперь при перезагрузке вы увидите более чистое меню grub.

Вы можете установить Ubuntu-Tweak, а затем перейдите в Приложения -> Системный инструмент -> Ubuntu Tweak и

введите описание здесь

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

Лично мне нравится использовать Synaptic , Это заставляет меня чувствовать себя более уверенно в том, что происходит. Единственное приложение, которое я использовал, имеет возможность удалять старые ядра, это Ubuntu Tweak.

Как удалить ядра, которые вы не используете:

  • Откройте UbuntuTweak
  • Нажмите "Очиститель пакетов" в разделе "Приложения" на левой панели.
  • В правой части окна "Очистка" нажмите "Очистить ядра".
  • Выбрать все ядра - я думаю, что используемого в списке нет, но на всякий случай проверка работает uname -a в терминале

Вы можете удалить старые ядра ( linux-image-. пакеты), используя Synaptic, и это удалит их из меню загрузки. Будьте осторожны, чтобы не удалить работающее ядро ​​(вы можете проверить его версию с uname -r ).

Имейте в виду, что наличие одной или двух старых версий может помочь вам устранить неполадки, если что-то пойдет не так.

Кроме того, вы можете редактировать / удалять записи вручную ( gksu gedit /boot/grub/grub.cfg ), но они будут сгенерированы заново при обновлении до более нового ядра. Если вы думаете об удалении recovery mode варианты - нет. Они могут пригодиться, если вы сломаете что-то, что мешает вам загрузиться.

Преимущество этого ответа в том, что нативный Ubuntu Bash используется без установки сторонних приложений. Пользователи кастомных ядер, которые не использовали apt или же dpkg можете изменить этот сценарий bash в соответствии с их потребностями. Этот ответ основан на ( Как выборочно очистить все старые ядра сразу).

Zenity предоставляет удобный графический интерфейс для терминала для обработки списка и выбора элементов с помощью радиокнопок:

Как видно из названия, текущее ядро, с которым вы загрузились, не может быть удалено и не включено в список. Указанный размер - это то, сколько будет сохранено в /boot каталог. Больше сохранено на вашем диске, потому что двоичные файлы ядра находятся и в других областях. 27 июля 2017 г. примечание: каталоги /usr/src/*kernel_version* а также /lib/modules/*kernel_version* теперь включены также.

Дата изменения обнаружена с использованием stat команда. В моей системе эта дата "затрагивается" каждый раз, когда ядро ​​загружается с помощью этого ( Как узнать, когда в последний раз загружалась определенная версия ядра?) Cron скрипт перезагрузки. Однако в вашей системе эта дата будет датой выпуска ядра, а не последней, когда вы ее загрузили.

Вам предоставляется последняя возможность просмотреть все, что будет очищено, и увидеть общее дисковое пространство (несколько вводящее в заблуждение), которое будет восстановлено:

Скопируйте этот код в исполняемый файл с именем rm-kernels в /usr/local/bin :

ПРИМЕЧАНИЕ. Вам нужно разрешение sudo для создания файла, поэтому используйте:

Чтобы сделать файл исполняемым, используйте:

rm-kernels-server версия сервера для выборочного удаления всех ядер одновременно Вместо графического диалогового окна с графическим интерфейсом используется текстовое диалоговое окно для выбора очищаемых ядер.

Перед запуском скрипта необходимо установить функцию диалога, используя:

sudo apt install dialog

Диалог находится в стандартной установке Ubuntu Desktop, но не в Ubuntu Server.

Образец экрана


rm-kernels-server код Bash

ПРИМЕЧАНИЕ: в вызове dialog директива --ascii-lines передается для замены расширенного набора символов рисования линии (который ssh не нравится) с "+-----+" для рисования ящиков. Если вам не нравится этот внешний вид, вы можете использовать --no-lines директива для не коробки вообще.

28 июля 2017 г. Обновления

Расчетный размер каждого ядра был взят из /boot/*kernel_version* которые были 5 файлов на общую сумму

50 МБ. Формула была изменена, чтобы включить файлы в /usr/src/*kernel_version* а также /lib/modules/*kernel_version* , Расчетный размер для каждого ядра теперь составляет

400 МБ. Код выше для rm-kernels а также rm-kernels-server был обновлен Однако приведенные выше примеры экранов еще не отражают эти изменения.

По умолчанию размер файлов для linux-заголовков оценивается в 125 МБ, а для linux-образа - в 220 МБ, потому что du может быть мучительно медленным, если файлы не находятся в кеше. Чтобы получить реальный размер, используя du передать любой параметр в скрипт.

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

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

old-kernel-linux

Сегодня в статье рассмотрим примеры по очистке/удалению старых версий ядра в Linux. Данные команды подойдут для операционных систем семейства Debian, таких как MX Linux, Debian, Ubuntu, Linux Mint, Lubuntu, Xubuntu, Elementary OS, Zorin OS и так далее. В конце статьи будут примеры для Proxmox.

Удаление старых версий ядра Linux

Давайте очистим систему от старых пакетов Kernel. Удаление старых ядер Linux одной командой из терминала.

Если вы обновили ядро или систему — перезагрузите компьютер! А лучше в начале выполнить команду без удаления!

  • dpkg -l ‘linux-*’ — выбрать все установленные пакеты, которые начинаются с linux-.
  • sed ‘/^ii/!d; удалить из списка все строки, которые начинаются с чего-то отличного от ii.
  • uname -r | sed «s/\(.*\)-\([^0-9]\+\)/\1/» — получить текущую версию вашего ядра.
  • /'»$(uname -r | sed «s/\(.*\)-\([^0-9]\+\)/\1/»)»‘/d — удалить все строки за исключением той, в которой содержится текущая версия ядра.
  • s/^[^ ]* [^ ]* \([^ ]*\).*/\1/ — в каждой строке оставить только название пакета
  • /1/!d удалить строки, которые не содержат цифры.

Команда выдаст все ядра установленные в системе. Если в них нет новых только-что установленных (свежих) ядер, то переходим к удалению. Для этого в терминале набираем следующую команду:

  • xargs sudo apt-get -y purge — полностью удалить эти пакеты.

Удаление старых Kernels через DPKG

В этом примере вы сможете удалить старые ядра (kernel) через утилиту DPKG:

Получите список всех ядер за исключением текущего загруженного:

Пример вывода команды:

В данном выводе может быть 3 статуса образов ядер:

  • rc — означает, что ядро уже удалено.
  • ii — означает, что ядро установлено и может быть удалено.
  • iU — ЭТО НЕЛЬЗЯ УДАЛЯТЬ. Это означает, что ядро не установлено, но требуется его установка в apt.

Хотя в примере стоит значение rc, но все же данный список раздражает. Давайте удалим старые ядра вручную, для этого набираем вот такую команду:

Так же попробуйте удалить пакеты со значение ii заголовочных файлов для старых ядер (Если команда выводит ошибки можете не обращать на это внимание):

Удаление старых версий ядра в Proxmox

Смотрим старые ядра:

Удаляем в ручную при помощи apt, вот например версию 5.4.60:

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВК или подписаться на Twitter. Ссылки в шапки страницы.
Заранее всем спасибо.

Читайте также: