- Удаление старых ядер в Debian и Ubuntu
- Как удалить образы неиспользуемых старых ядер в Ubuntu
- Как очистить старые образы ядер с apt-get
- Как очистить старые образы ядра с purge-old-kernels
- И ещё четырех быстрых способа удалить старые ядра
- 1. Используя графический интерфейс (GUI)
- 2. Удаление в одну простую команду
- 3. Удаление в одну сложную команду
- 4. Готовый скрипт
- Связанные статьи:
- Очистка старых ядер в Linux
- Удаление старых версий ядра Linux
- Удаление старых Kernels через DPKG
- Удаление старых версий ядра в Proxmox
- RSS
Удаление старых ядер в Debian и Ubuntu
Иногда, при установке обновлений на сервер, можно столкнуться с проблемой нехватки места на /boot разделе. В Debian и Ubuntu есть два разных способа решения возникшей ситуации.
Первый способ — универсальный, ручной. Подходит для систем, куда установка новых пакетов не возможна, либо где пакет byobu для установки не доступен. Выводим список установленных ядер, а затем с помощью пакетного менеджера удаляем лишнее:
# dpkg --list | grep linux-image # apt-get --purge remove linux-image-XXXX
При необходимости, обновляем конфиг GRUB:
Разумеется, ручное удаление файлов с помощью rm из /boot так же возможно, но прибегать к такому способу стоит только в самом крайнем случае.
Второй способ — с помощью утилиты purge-old-kernels из пакета byobu. Устанавливаем пакет, и удаляем все старые ядра, оставив только новое (либо несколько, если это важно):
# apt-get install byobu # purge-old-kernels --keep 3
Пакет byobu доступен для установки и в Ubuntu, и в Debian (в 9 во всяком случае) прямо из репозиториев. Если вы заметили, что на сервере /boot раздел имеет небольшой размер, имеет смысл озадачиться установкой этой утилиты заранее.
Кроме того, в man purge-old-kernels для Ubuntu 17.10 можно найти следующее дополнение:
This utility is now deprecated. The functionality it used to provide should be integrated into apt(8).
Т. е. в этой версии Ubuntu уже можно использовать apt для удаления старых ядер. Например:
Как удалить образы неиспользуемых старых ядер в Ubuntu
Вопрос: Я обновлял ядро на моей Ubuntu множество раз. Теперь мне бы хотелось удалить неиспользуемые старые образы ядер и таким образом сберечь дисковое пространство. Какой самый простой способ удалить более ранние версии ядер Linux на Ubuntu?
В среде Ubuntu есть несколько способов обновить ядро. На настольных компьютерах Ubuntu, приложение для обновления программ позволяет вам на ежедневной основе проверять и обновлять до последней версии ядра. В Ubuntu Server пакет unattended-upgrades (автоматических обновлений) заботиться об автоматическом обновлении ядра, как важном компоненте обновления безопасности. Иначе вы можете обновить ядро используя команду apt-get или aptitude.
Со временем продолжающиеся обновления ядра приведут к тому, что в вашей системе накопиться много неиспользуемых старых образов ядер, которые будут понапрасну занимать место на диске. Каждый образ ядра и связанные файлы модулей/ядер занимают 200-400 мегабайт дискового пространства, и понапрасну потраченное место от неиспользуемых образов ядер будет быстро прибавляться.
Менеджер загрузки GRUB поддерживает записи GRUB для каждого старого ядра, на тот случай, если вы захотите загрузиться с ним.
Если вам не нужны старые образы ядер, то при следующей очистке диска вы можете подумать об их удалении.
Как очистить старые образы ядер с apt-get
Перед тем, как вы удалите старые образы ядер, запомните, что рекомендуется сохранить хотя бы последние два образа (самый последний и предыдущий), на случай если что-то пойдёт не так. Теперь давайте посмотрим как удалить старые образы ядра на платформе Ubuntu.
В Ubuntu образы дисков состоят из следующих пакетов.
- linux-image- : образ ядра
- linux-image-extra- : дополнительные модули ядра
- linux-headers- : файлы заголовков ядра
Для начала давайте проверим, какие образы ядра установлены на вашей системе.
dpkg --list | grep linux-image dpkg --list | grep linux-headers
Из списка образов ядра вы можете удалить конкретные версии, к примеру 3.19.0-15) следующим образом.
sudo apt-get purge linux-image-3.19.0-15 sudo apt-get purge linux-headers-3.19.0-15
Вышеприведённая команда удалит образ ядра и связанные с ним файлы модулей ядра и заголовка (хедера).
Помните, что удаление старого ядра автоматически запустит установку последнего образа ядра Linux если вы ещё не обновились. Также после удаления старого ядра, конфигурация GRUB будет автоматически обновлена для удаления соответствующей записи GRUB из меню GRUB.
Если у вас много неиспользуемых ядер, вы моете удалить множество их за раз, используя следующий синтаксис оболочки. Помните, что это раскрытие скобок будет работать только для bash или других совместимых оболочек.
sudo apt-get purge linux-image-3.19.0- sudo apt-get purge linux-headers-3.19.0-
Вышеприведённая команда удалит 4 образа ядра: 3.19.0-18, 3.19.0-20, 3.19.0-21 и 3.19.0-25.
Если по каким-либо причинам конфигурация GRUB не обновлена должным образом после удаления старых ядер, вы можете попытаться обновить конфигурацию GRUB вручную с командой update-grub2.
Теперь перезагрузитесь и проверьте, что меню GRUB очищено должным образом.
Как очистить старые образы ядра с purge-old-kernels
Другим более дружественным способом удаления старых ядер является утилита командной строки под названием purge-old-kernels. Этот инструмент является частью пакета bikeshed, который является рандомной коллекцией полезных инструментов.
sudo apt-get install bikeshed
Испольузя purge-old-kernels, вы можете удалить настраиваемое количество старых образов ядер и файлов заголовков. Например, для удаления всех образов ядер (вместе с их файлами заголовков), кроме последних трёх ядер, запустите это:
sudo purge-old-kernels --keep 3
И ещё четырех быстрых способа удалить старые ядра
Эти способы подсказали читатели. Ещё одно подтверждение того, что если делиться знаниями, то они приумножаются.
1. Используя графический интерфейс (GUI)
Запустить Ubuntu Tweak, затем «Start Janitor», поставьте галочку «Old Kernel» (старые ядра).
2. Удаление в одну простую команду
Эта команда удалит все неиспользуемые/старые образы ядер кроме текущего.
3. Удаление в одну сложную команду
Удалить все ядра кроме текущего
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/9/!d' | head -n -1) --assume-yes
4. Готовый скрипт
Один из читателей написал целый скрипт, который решает эту проблему: https://github.com/ClockworkNet/kernel_cleanup
Связанные статьи:
Очистка старых ядер в 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/;/8/!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/ – в каждой строке оставить только название пакета
- /7/!d удалить строки, которые не содержат цифры.
Команда выдаст все ядра установленные в системе. Если в них нет новых только-что установленных (свежих) ядер, то переходим к удалению. Для этого в терминале набираем следующую команду:
dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/5/!d' | xargs sudo apt-get -y purge
Удаление старых Kernels через DPKG
В этом примере вы сможете удалить старые ядра (kernel) через утилиту DPKG:
Получите список всех ядер за исключением текущего загруженного:
sudo dpkg -l | tail -n +6 | grep -E 'linux-image-3+' | 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/;/2/!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.
Сегодня в статье настроим и русифицируем Ubuntu Server 16.04/18.04/20.04. Чтобы поддерживался русский язык, и перевод системы стал русским
Начиная с сентября 2017 года удостоверяющим центрам предписано обязательно проверять CAA-записи в DNS перед генерацией сертификата
В этой статье рассмотрим пример обновления Ubuntu Server 16.04 до Ubuntu Server 18.04 Все наши действия нам придется выполнять из Читать
В связи с последними блокировками IP-адресов Роскомнадзором, встала необходимость завести свой собственный VPN сервер. Если VPN у вас ещё не Читать