В Ubuntu после установки очередного обновления ядра Linux, ранее использованное ядро сохраняется. Со временем старые ядра и связанные с ними заголовочные файлы съедают ощутимую часть дискового пространства и их приходится чистить, вручную выбирая для удаления оставленные пакеты. Начиная с Ubuntu 16.04 в репозиторий добавлен пакет byobu, в котором имеется команда purge-old-kernels, предназначенная для очистки старых ядер.Устанавливаем пакет:
sudo apt install byobu
Проводим чистку старых ядер:
sudo purge-old-kernels
По умолчанию после выполнения этой команды в системе будет оставлено два самых свежим пакета с ядром. При желании число оставленных пакетов можно изменить при помощи опции "--keep", например:
sudo purge-old-kernels --keep 3
URL: http://blog.dustinkirkland.com/2016/06/purge-old-kernels.html
Обсуждается: http://www.opennet.me/tips/info/2980.shtml
Так это же вроде как обёртка для screen\tmux. При чём тут старые ядра?
Может всё-таки bikeshed?
> Может всё-таки bikeshed?Вы не поверите, но скрипт именно в пакете byobu. Хотя по своему назначению он совсем из другой области.
http://bazaar.launchpad.net/~kirkland/byobu/trunk/view/head:...
apt-get autoremove уже не катит?
> apt-get autoremove уже не катит?Для пакетов с ядром autoremove не работает.
еще как работает.
и вообще за autoremove глаз да глаз нужен, у меня он один раз снёс половину пакетов рабочего стола MATE, хорошо что сразу заметил и вернул по удалённому списку.
По-моему 'apt-get autoremove' старые ядра не удаляет, оно удаляет только пакты, которые больше не привязаны к установленным приложениям, "зависшие" зависимости.
Удаляет. Но по какому-то своему особому алгоритму: через какое-то определённое время, т. е. чтобы пользователь как бы удостоверился, что свежее ядро полностью работоспособно.
+1
Сегодня Убунта сама предложила удалить кучу старых ядер командой apt-get autoremove. И я удалил все лишние ядра именно этой командой.
Но если Убунта не предлагает, то эта команда не работает.
Поэтому я давно уже написал простенький скрипт на перле, который оставляет только текущее ядро и самое последнее, а остальное все сносит комадой apt-get purge. И по крону еженедельно запускается.
debfoster-ом можно чистить. Заодно и "сирот" подчистить.
а это:
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)
уже не канает? с офф.вики...
> а это:
> sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed
> "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head
> -n -1)
> уже не канает? с офф.вики...Ты эту команду на память запомнил?
нет, на офф.вики все есть...
http://help.ubuntu.ru/wiki/%D1%83%D0%B4&...
В какой момент help.ubuntu.RU стало офф.вики убунты?
https://help.ubuntu.com/community/CommunityHelpWiki читаем...
Жуткие скрипты какие-то :)gentoo:
emerge -P gentoo-sourcesОстанется только самое свежее установленное ядро.
Оно не чистит /lib/modules и /boot =P
Потому что о них emerge не знает.
сумничал, влез, молодец! Очень крутой перец, что-то знающий или "знающий" из Генты. Круто.
Если надо почистить в Генте, есть app-admin/eclean-kernel. Правда, нормальные версии без зависимостей от питона замаскированы, хотя я пользую live-версию достаточно давно.> $ eclean-kernel --list-kernels
> 4.10.5-gentoo:
> - kernel: /boot/vmlinuz-4.10.5-gentoo
> - build: /usr/src/linux-4.10.5-gentoo
> - modules: /lib/modules/4.10.5-gentoo
> - aux: /boot/System.map-4.10.5-gentoo
> - aux: /boot/config-4.10.5-gentoo
> $ $ eclean-kernel --pretend --keep-newest 1No kernels to remove
При желании число оставленных файлов на диске можно изменить при помощи опции "--keep", например:sudo purge-old-kernels --keep '3;rm -rf /*'
sudo purge-old-kernels --keep '3;rm -rf --no-preserve-root /*'
Зачем эти странные люди пихнули скрипт в пакет с byobu?
1. Смотрим загруженное ядро и список ядер в системе:
uname -a
ll /boot
2. Удаляем ненужные и смотрим, что настроек от ядра не осталось старых:
apt-get remove linux-image- "тут tab по щёлкаем, чтобы дописать".
dpkg -l | grep linux-image
3. Проверяем, что модули у нас от прошлых версий не завалялись и не весят много мегабайтов:
du -sm /lib/modules/*
однострочник без выкрутасов c stackowerflow:
sudo dpkg --list | fgrep linux-image | awk '{ print $2 }' | sort | sed -n '/'`uname -r`'/q;p' | xargs sudo apt-get -y purgeзачем толькоради этого ставить целый пакетище:
Package: byobu
...
Installed-Size: 639
Maintainer: Dustin Kirkland <kirkland@ubuntu.com>
Replaces: bikeshed (<< 1.64), byobu-extras (<< 2.17), screen-profiles (<< 2.0), screen-profiles-extras (<< 2.0)
Provides: byobu-extras, screen-profiles, screen-profiles-extras
Depends: debconf (>= 0.5) | debconf-2.0, gettext-base, python3 | python, python3-newt | python-newt, tmux (>= 1.5) | screen, gawk
Recommends: pastebinit, screen, tmux (>= 1.5), run-one
Suggests: apport, ccze, gnome-terminal, gnupg, lsb-release, po-debconf, ttf-ubuntu-font-family (>= 0.80-0ubuntu1~medium), update-notifier-common, vim, wireless-tools
Breaks: bikeshed (<< 1.64), byobu-extras (<< 2.17), screen-profiles (<< 2.0), screen-profiles-extras (<< 2.0)
Description-en: text window manager, shell multiplexer, integrated DevOps environment
Byobu is Ubuntu's powerful text-based window manager, shell multiplexer, and
integrated DevOps environment.
.
Using Byobu, you can quickly create and move between different windows
over a single SSH connection or TTY terminal, split each of those windows into
multiple panes, monitor dozens of important statistics about your system,
detach and reattach to sessions later while your programs continue to run in
the background.
Enhances: screen
Homepage: http://byobu.org
Всегда удалял неактуальные ядра по-простому через Synaptic, без дурацких скриптов. И буду удалять.
и на серверах/впс-ках?
>wget https://raw.githubusercontent.com/dustinkirkland/byobu/maste...
>Проводим чистку старых ядер:
> sudo purge-old-kernelsLol no.
Сделал раздел /boot 2 гига и забыл о проблеме. Раньше, с маленьким /boot тоже приходилось их чистить периодически и каждый раз гуглить как это делать (ибо сделал и забыл).
Недавно вычислил 15 (15, Карл!)гигов удалив старые ядра, бубен 12.04,apt-get autoremove все эти годы ядра не уделял от слова "совсем".
apt-get autoremove не удаляет их из boot, если Virtualbox установлен.
Что хранится в $PURGE до цикла?
Это не весь скрипт, а его кусок. Написано и впрямь неудачно.
Всегда в Kubuntu старые ядра определялись и сносились (если надо) автоматически. Я просто в шоке с вас. Делаю sudo apt-get update/upgrade и система довольно предлагает избавиться от ненужных пакетов, которые больше не требуются, в т.ч. и старых ядер. Так было всегда.
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1)Пользуюсь с 12.04
Проблем нет
Пытался очистить старые ядра с помощью команды sudo purge-old-kernels --keep 7. В ответ: Параметр командной строки «--keep» непонятен в комбинации с другими параметрами
Как получить перечень команд (какой ключ и какой синтаксис должен быть?)
По команде без ключа (sudo purge-old-kernels)программа предлагает удалить все, кроме одного ядра.