Удаление неиспользуемых ядер linux mint

Справочная информация

В настройках системы имеется пункт об удалении ненужных ядер, который доступ при обращении к менеджеру обновлений в разделе «Правка – Параметры – Автоматизация». Если в строке «Автоматическое обслуживание» положение движка установить в положение «Включено», то задание будет выполняться еженедельно от имени суперпользователя.

Однако мне более привычен старый способ удаления лишних ядер и очистки системы от ненужных файлов, который, как показала практика, в Linux Mint 20x не работает. Чтобы он работал в условии необходимо изменить значение vmlinuz* на config*

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

Задачу можно выполнять при каждой загрузке системы, для чего создаваемый сценарий sh поместить в автозагрузку. Файл sh должен иметь разрешение на запуск как программы.

Так как операции могут быть выполнены только с правами суперпользователя (напр., sudo /home/user/clean.sh ), то самому скрипту ( clean.sh – так называется у меня. Вы можете ему назначить какое угодно имя ) можно назначить запуск от имени суперпользователя без ввода пароля. Для этого выполните в терминале sudo xed /etc/sudoers и добавьте в него строку:

user ALL=NOPASSWD: путь_к_вашему_скрипту (напр., /home/user/clean.sh)

user – это ваш логин в системе.

При запуске сценария производится подсчёт ядер в системе. Если количество ядер будет больше 1, то будет осуществлено удаление всех ядер кроме текущего, а также выполнены команды автоочистки и автоудаления ненужных пакетов. Также в процессе будут удалены неиспользуемые модули ядра из каталога /lib/modules

Текст сценария (на примере моего).

#!/bin/bash
folder=/home/minter
kern=`find /boot -name config* | wc -l`
if [ $kern -gt 1 ];
then
apt purge -y $(dpkg -l ‘linux-*’ | sed ‘/^ii/!d;/'»$(uname -r | sed «s/\(.*\)-\([^0-9]\+\)/\1/»)»‘/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/8/!d’ | head -n -1)
apt autoclean
apt autoremove -y
rm $folder/.bash_history
> $folder/.bash_history
fi
exit

Обратите внимание на переменную folder, которая указывает на домашнюю папку пользователя, соответствующую логину пользователя в системе (в приводимом примере – minter). Не ошибитесь , иначе вы получите свой «самый чистый домашний каталог в мире».

Если вам нужно протоколирование действий, то добавьте их в протокол событий, например:

#!/bin/bash
folder=/home/minter
log= . указать расположение файла
kern=`find /boot -name config* | wc -l`
if [ $kern -gt 1 ];
then
echo «$(date ‘+%H-%M-%S’) — в системе ядер — $kern, удаление ядер.» >> $log
apt purge -y $(dpkg -l ‘linux-*’ | sed ‘/^ii/!d;/'»$(uname -r | sed «s/\(.*\)-\([^0-9]\+\)/\1/»)»‘/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/3/!d’ | head -n -1)
echo «$(date ‘+%H-%M-%S’) — запуск автоочистки.» >> $log
apt autoclean
echo «$(date ‘+%H-%M-%S’) — запуск автоудаления.» >> $log
apt autoremove -y
rm $folder/.bash_history
> $folder/.bash_history
echo «$(date ‘+%H-%M-%S’) — история bash очищена.» >> $log
else
echo «$(date ‘+%H-%M-%S’) — очистка системы не требуется.» >> $log
fi
exit

Читайте также:  Установка vim arch linux

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

Листинг каталога /boot до работы clean.sh :

Листинг каталога /boot после работы clean.sh :

Источник

Справочная информация

Про удаление «ненужных «ядер в Интернет имеется много информации, да и на этом ресурсе имеется соответствующая публикация.

Но со временем меня перестала устраивать необходимость всё время нажимать в терминале клавишу y после «Хотите продолжить? [Д/н]». Поэтому для своего удобства был создан текстовый файл с набором впоследствии вставляемых в окно терминала набором команд, в которых необходимо менять только цифры.

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

Перед удалением необходимо определиться, какие ядра из системы будут удаляться.

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

Пояснение. abi – application binary interface – это файлы, являющиеся частью двоичным интерфейсом приложения и включены в ядро в качестве одной из его составных частей. Как поясняют назначение abi на англоязычных форумах,

The ABI is included as part of the kernel version. If you run the command uname -r you will see something like 2.6.26-4-generic. The 4 in this example is the ABI. Numerically, it means nothing, except that it has changed since 3 and will be 5 when it changes again.

abi is the application binary interface, which are the kernel «hooks» a program can call to process commands, system libraries, etc. Because these machine language addresses move from time to time, the abi provides a common directory for applications to reference.

Хорошей практикой считается удаление всех ядер за исключением текущего и ему предшествующего. Но если Вы уверены в том, что система со свежим ядром функционирует должным образом, то удалить можно все предыдущие. В соответствии с этим критерием, в рассматриваемом примере удалению подлежат ядра 4.13.0-26, 4.13.0-31, 4.13.0-32, 4.13.0-36.

Дополнение. К имеющим отношения к ядрам также относятся и каталоги с файлами и вложенными каталогами, расположенные в /lib/modules

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

Командами для удаления ядра являются sudo apt purge linux-image- и sudo apt purge linux-headers- Например, для удаления ядра 4.13.0-32 указанные команды приобретут вид sudo apt purge linux-image-4.13.0-32 и sudo apt purge linux-headers-4.13.0-32 Чтобы не вводить эти команды по одной между нами пишутся два символа &&. Поэтому командой удаления ядра 4.13.0-32 в одну строку является

purge linux-image-4.13.0-32 && sudo apt purge linux-headers-4.13.0-32

Так как в примере моё намерение включает удаления ядер 4.13.0-26, 4.13.0-31, 4.13.0-32, 4.13.0-36, то командой для их удаления будет являться

sudo apt purge linux-image-4.13.0-26 && sudo apt purge linux-headers-4.13.0-26 && sudo apt purge linux-image-4.13.0-31 && sudo apt purge linux-headers-4.13.0-31 && sudo apt purge linux-image-4.13.0-32 && sudo apt purge linux-headers-4.13.0-32 && sudo apt purge linux-image-4.13.0-36 && sudo apt purge linux-headers-4.13.0-36

Читайте также:  Kali linux no wireless interface found

Примечание.

Профессионалы, конечно, могут меня «тыкнуть носом» в то, что более грамотной командой будет являться sudo apt purge linux-image-4.13.0- && sudo apt purge linux-headers-4.13.0-.

Однако у меня был случай, когда была допущена ошибка: вместо 4.10 было указано 4.4 Поэтому при составлении «грамотной» команды необходимо проявлять предельную внимательность.

А поскольку мне проще в команды после image- и headers- дописывать номера ядер, то пишу в столбик

sudo apt purge linux-image-4.13.0-26
sudo apt purge linux-headers-4.13.0-26
sudo apt purge linux-image-4.13.0-31
sudo apt purge linux-headers-4.13.0-31
sudo apt purge linux-image-4.13.0-32
sudo apt purge linux-headers-4.13.0-32
sudo apt purge linux-image-4.13.0-36
sudo apt purge linux-headers-4.13.0-36

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

Как указано выше, чтобы не вводить каждый раз y на вопрос «Хотите продолжить? [Д/н]», в команду удаления после sudo apt purge добавляется -y . При этом предполагается ответ Yes на все вопросы, а сами вопросы не выводятся. Команда – sudo apt purge -y

Таким образом, итоговой командой для удаления ядер 4.13.0-26, 4.13.0-31, 4.13.0-32, 4.13.0-36 без ввода подтверждения своих действий является

sudo apt purge -y linux-image-4.13.0-26 && sudo apt purge -y linux-headers-4.13.0-26 && sudo apt purge -y linux-image-4.13.0-31 && sudo apt purge -y linux-headers-4.13.0-31 && sudo apt purge -y linux-image-4.13.0-32 && sudo apt purge -y linux-headers-4.13.0-32 && sudo apt purge -y linux-image-4.13.0-36 && sudo apt purge -y linux-headers-4.13.0-36

Примечание. На многих ресурсах для удаления всех ядер кроме используемого приводится команда (в одну строку)

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

Но мной она никогда не применялась, поэтому прокомментировать её никак не могу.

Важно. Не удаляйте ядро, которое активно в Вашей системе. Чтобы его узнать введите в терминале uname -r . В противном случае Вы пополните круг пользователей, задающих вопрос: «я удалил все ядра, что мне делать?».

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

Хотя у меня такого не возникло, но если вдруг в каталоге modules «лишние» каталоги не были удалены, то можно использовать команду, например,

sudo rm -R /lib/modules/4.13.0-26-generic && sudo rm -R /lib/modules/4.13.0-31-generic && sudo rm -R /lib/modules/4.13.0-32-generic && sudo rm -R /lib/modules/4.13.0-36-generic

Примечание. О неудалении относящихся к ядрам каталогов в /lib/modules свидетельствуют выводы в окне терминала, такие как, например, это

dpkg: предупреждение: при удалении linux-headers-4.13.0-32-generic каталог «/lib/modules/4.13.0-32-generic» не пуст, поэтому не удалён

Раньше такое действие мной и применялось, поэтому в конец команды удаления дописывалось && sudo update-grub

Читайте также:  Gta sa wine linux

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

Найден образ linux: /boot/vmlinuz-4.13.0-37-generic
Найден образ initrd: /boot/initrd.img-4.13.0-37-generic
Найден образ linux: /boot/vmlinuz-4.13.0-36-generic
Найден образ initrd: /boot/initrd.img-4.13.0-36-generic

Найден образ linux: /boot/vmlinuz-4.13.0-32-generic
Найден образ initrd: /boot/initrd.img-4.13.0-32-generic

Found memtest86+ image: /boot/memtest86+.bin
завершено

А после завершения удаления ядра 4.13.0-36

Найден образ linux: /boot/vmlinuz-4.13.0-37-generic
Найден образ initrd: /boot/initrd.img-4.13.0-37-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
завершено

Поэтому необходимости в sudo update-grub не вижу.

Хочется надеяться, что к содержанию данной публикации не будет применим «печальный» комментарий участника одного из форумов:

Американский форум – задал вопрос, тебе обстоятельно и вежливо ответили.
Еврейский форум – задал вопрос, тебе задали вопрос.
Русский форум – задал вопрос, тебе объяснили какой же ты мудак.

Источник

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

linux mint

Начиная с Linux Mint 19.2 стало возможным настроить Linux Mint на автоматическое удаление устаревших версий и зависимостей ядра. Новое приложение Update Manager поставляется с соответствующей опцией. Данная функция по умолчанию отключена. В статье я покажу как включить автоматическое удаление старых ядер в Linux Mint.

В Linux Mint 19.2 менеджер обновлений получил ряд улучшений.

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

Используя эти новые параметры, вы можете настроить приложение Update Manager на автоматическое удаление старых ядер.

Если вы всегда используете последнее ядро ​​или / и у вас нет проблем с вашим оборудованием, лучше избавиться от старых ядер. Они занимают много места на диске и становятся бесполезны, когда используется последнее ядро.

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

Шаг 1: Нажмите кнопку «Меню» на панели, чтобы открыть меню приложений. Снимки экрана сделаны в Cinnamon, но настройки менеджера обновлений выглядят одинаково в Xfce и MATE.

Шаг 2: Перейдите в Администрирование —> Менеджер обновлений Linux Mint.

Менеджер обновлений Linux Mint

Шаг 3: В диспетчере обновлений выберите «Правка» —> «Параметры».

Меню правка параметры Linux Mint

Шаг 4: Перейдите на вкладку «Автоматизация».

Шаг 5: Включите функцию «Удалить старые ядра и зависимости».

Linux Mint Включить автоматическое удаление старых ядер

Шаг 6: Введите пароль для подтверждения операции.

удалить старые ядра Linux Mint

Вы включили автоматическое удаления старых ядер в Linux Mint. С этого момента Linux Mint будет автоматически удалять старые ядра еженедельно.

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

Релиз Linux Mint 19.2 Tina будет поддерживаться до 2023 года. Он основан на Ubuntu 18.04 LTS. Он использует ядро ​​Linux 4.15, функции Cinnamon 4.2, среды MATE 1.22 и XFCE 4.12.

Вы можете узнать больше о его функциях в этой статье.

Источник

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