Удаление старых ядер astra linux

Новая прикольная тема для Астры. Удаление неиспользуемых ядер ОС Astra Linux SE и установка новых.

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

pkgs=`dpkg -l 2> /dev/null | egrep «^ii\s*linux-image-5\.[[:digit:]]+\.[[:digit:]]+-[[:digit:]]+-» | cut -d » » -f3 | grep -v ^linux-image-$(uname -r | cut -d ‘-‘ -f1-2)`

Есть пару интересных условий для его использования:

  • Не пытайтесь добавить его в один большой скрипт как отдельный пункт в меню, для этого лучше использовать отдельную команду или функцию для его запуска. Вот пример такой функции:
  • Как вы поняли из функции, описанной выше, данный скрипт необходимо запускать с правами супер пользователя и дать ему разрешение на выполнение, при этом необходимо запустить ОС именно под тем ядром, которое необходимо оставить.

Ну и как же удалять ядра, если не поставить новые? Так вот, установка ядер, зависит от версии ОС и ее обновлений. Так, например в Астра 1.7, существуют три основных версий ядер, которые можно поставить самим, вот список версий ядер для разных версий ОС:

Причем при обновлении той или иной версии до следующей, версии ядер, меняются, но не до самой новой версии. Для установки новых ядер ОС я использую следующие команды:

При обновлении ядер с 5.10 до 5.15 ПО не страдает, о чем не могу сказать при обновлении с версии 5.4 (Касперский точно слетает, и требует переустановки). И самое главное, это настраивать загрузчик grub и Fly после каждого обновления ядер, но это уже совсем другая история, которую я опишу в одной из следующих статей. Чтобы их не пропустить, подписывайтесь на канал, ставьте лайки и задавайте свои вопросы в комментариях.

Источник

Автоматическое удаление старых ядер

После очередного обновения убунты, я понял что меня вконец замучал растущий список загрузки в grub (это особенно актуально, если альтернативная ОС остается где-то внизу списка). Удалять вручную — это как-то неправильно, поэтому я решил заморочиться об автоматическом способе.

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

Читайте также:  Пропала сеть linux mint

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

kernels=`dpkg-query -l linux-image-* | grep ^ii | grep -v e-g | head -n -1 | gawk -F» » ‘< print $2 >‘`

for i in $kernels
do
echo «Removing kernel: «$i
# sudo apt-get -y remove $i
done

Поскольку мои познания в написании скриптов под shell можно считать нулевыми, я закомментировал неспосредственно строчку с удалением, на случай если где-то допустил критическую ошибку 🙂 Просьба хабражителей высказать свое мнение насчет надежности кода — и тогда я уберу комментарий. Кроме того, мне кажется можно и этот код упросить до одной команды (что у меня, к сожалению, не получилось).

Надеюсь, кому-нибудь пригодится.

Убедительная просьба: перед первым запуском команды, запустите ее без хвоста «| xargs apt-get -y purge» и убедитесь, что вы получаете корректный список ядер на удаление.

UPD: Хабраюзеры Messie и ValdikSS подсказали более корректный и однострочный вариант:

dpkg -l linux-image-* | grep ii | grep -v [a-z]-generic | grep -v `uname -r` | awk ‘< print $2 >‘ | xargs apt-get -y purge

UPD2: Вариант из скрипта ubucleaner от Steve_32:

dpkg -l | grep ii | awk » | grep -E ‘linux-(image|headers|ubuntu-modules|restricted-modules)’ | grep -vE ‘linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)’ | grep -v $(uname -r|sed ‘s/-*[a-z]//g’|sed ‘s/-386//g’) | xargs apt-get -y purge

Источник

Установка ядер серии 5.*

Установка актуальных версий ядер серии 5.* (модификации 5.4, 5.10, 5.15) возможна с помощью метапакетов linux-5.x с номером, соответствующим номеру модификации ядра:

Метапакеты для каждой модификации ядра представлены в трех вариантах:

  • linux-5.* — установка ядра в вариантах generic и hardened;
  • linux-5.*-generic — установка ядра в варианте generic;
  • linux-5.*-hardened — установка ядра в варианте hardened;
  • linux-5.*-lowlatency — установка ядра в варианте lowlatency (для обновлений, в которых такой вариант присутствует).

При установке любого из этих метапакетов будут установлены новейшие версии указанной модификации ядра и соответствующие им пакеты, необходимые для автоматической интеграции нового ядра с пакетами Astra Linux.

  1. Для установки ядер не следует использовать пакеты linux-image-5.*, так как нужные зависимости автоматически устанавливаются только при установке пакетов linux-5.*;
  2. Для того, чтобы установленные пакеты с ядрами обновлялись автоматически при установке обновлений необходимо установить метапакет linux-5.*. При установке метапакетов linux-5.*-generic или linux-5.*-hardened автоматическое обновление выполняться не будет.

Метапакеты могут быть установлены с помощью Графический менеджер пакетов synaptic или из командной строки командой apt с указанием названия устанавливаемого метапакета, например, для ядра 5.10:

Получение списка установленных ядер

Получить список установленных ядер можно командой:

Читайте также:  Выдать права sudo пользователю linux

Получение версии загруженного ядра

Получить версию и вариант ядра, загруженного в работающей ОС, можно командой:

На момент последнего обновления настоящей статьи:

  • В составе Astra Linux Special Edition РУСБ.10015-01:
    • В Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) без установленных оперативных обновлений доступно ядро модификации 5.4;
    • Ядро модификации 5.10 доступно после установки обновления БЮЛЛЕТЕНЬ № 2021-1126SE17 (оперативное обновление 1.7.1);
    • Ядро модификации 5.15 доступно после установки обновления БЮЛЛЕТЕНЬ № 2022-0819SE17 (оперативное обновление 1.7.2);
    • В Astra Linux Special Edition РУСБ.10152-01 (очередное обновление 4.7) без установленных оперативных обновлений доступно ядро модификации 5.4;
    • Ядро модификации 5.10 доступно после установки обновления БЮЛЛЕТЕНЬ № 2021-0915SE47MD (оперативное обновление 4.7.1);
    • Ядро модификации 5.15 доступно после установки обновления БЮЛЛЕТЕНЬ № 2022-0926SE47 (оперативное обновление 4.7.2);
    • Ядро модификации 5.4 доступно начиная с обновления 2.12.40;
    • Ядро модификации 5.10 доступно начиная с обновления 2.12.43;
    • Ядро модификации 5.15 доступно начиная с обновления 2.12.45;

    Обновление ядер и удаление неиспользуемых ядер

    При установке обновлений автоматическое обновление установленных ядер выполняется в пределах одной модификации. То есть, например, установленное ядро модификации 5.4 и версии 54 (linux-image-5.4.0-54-hardened) будет обновлено до версии 110 (linux-image-5.4.0-110-hardened), но не до ядра 5.10 или 5.15.

    При установке обновлений с помощью astra-update для каждой модификации автоматически удаляются старые версии ядер кроме двух последних версий и загруженного ядра.

    После загрузки с использованием нового ядра для удаления неиспользуемых ядер серий 4.* и 5.* можно использовать следующий сценарий:

    pkgs=`dpkg -l 2> /dev/null | egrep «^ii\s*linux-image-[45]\.[[:digit:]]+\.[[:digit:]]+-[[:digit:]]+-» | cut -d » » -f3 | grep -v ^linux-image-$(uname -r | cut -d ‘-‘ -f1-2)`

    [ -n «$pkgs» ] && apt remove $pkgs
    rm -f /boot/old-*

    Источник

    Очистка старых ядер в Linux

    old-kernel-linux

    Сегодня в статье рассмотрим примеры по очистке/удалению старых версий ядра в 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/;/1/!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/ – в каждой строке оставить только название пакета
    • /4/!d удалить строки, которые не содержат цифры.

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

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

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

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

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

    sudo dpkg -l | tail -n +6 | grep -E 'linux-image-1+' | 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/;/1/!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") )

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

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

    RSS

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

    linux-logo

    Сегодня в статье настроим и русифицируем Ubuntu Server 16.04/18.04/20.04. Чтобы поддерживался русский язык, и перевод системы стал русским

    dns_bind9

    Начиная с сентября 2017 года удостоверяющим центрам предписано обязательно проверять CAA-записи в DNS перед генерацией сертификата

    linux-logo

    В этой статье рассмотрим пример обновления Ubuntu Server 16.04 до Ubuntu Server 18.04 Все наши действия нам придется выполнять из Читать

    В связи с последними блокировками IP-адресов Роскомнадзором, встала необходимость завести свой собственный VPN сервер. Если VPN у вас ещё не Читать

    Источник

Оцените статью
Adblock
detector