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

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

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

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

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
  • 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/ – в каждой строке оставить только название пакета
  • /[0-9]/!d  удалить строки, которые не содержат цифры.

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

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
  • xargs sudo apt-get -y purge – полностью удалить эти пакеты.

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

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

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

sudo dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r)

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

rc linux-image-4.15.0-55-generic 4.15.0-55.60 amd64 Signed kernel image generic
rc linux-image-4.15.0-55-generic 4.15.0-75 amd64 Signed kernel image generic
rc linux-image-4.15.0-55-generic 4.15.0-76 amd64 Signed kernel image generic

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

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

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

sudo dpkg --purge linux-image-4.15.0-55-generic

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

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

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

dpkg -l 'pve-kernel-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'

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

apt remove pve-kernel-5.15.53-1-pve

или “залпом”:

apt-get purge $( dpkg --list | grep -P -o "pve-kernel-\d\S+" | grep -v $(uname -r | grep -P -o ".+\d") )

[endtxt]

RSS

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

5 2 голоса
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять