Основывается на материале http://ask.xmodulo.com/remove-kernel-images-ubuntu.html
Вопрос: Я обновлял ядро на моей 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-{18,20,21,25} sudo apt-get purge linux-headers-3.19.0-{18,20,21,25}
Вышеприведённая команда удалит 4 образа ядра: 3.19.0-18, 3.19.0-20, 3.19.0-21 и 3.19.0-25.
Если по каким-либо причинам конфигурация GRUB не обновлена должным образом после удаления старых ядер, вы можете попытаться обновить конфигурацию GRUB вручную с командой update-grub2.
sudo 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. Удаление в одну простую команду
sudo apt-get autoremove
Эта команда удалит все неиспользуемые/старые образы ядер кроме текущего.
3. Удаление в одну сложную команду
Удалить все ядра кроме текущего
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) --assume-yes
4. Готовый скрипт
Один из читателей написал целый скрипт, который решает эту проблему: https://github.com/ClockworkNet/kernel_cleanup
Связанные статьи:
- Как обновить загрузчик GRUB в Debian и производных дистрибутивах (Kali Linux, Ubuntu, Linux Mint) (55.5%)
- Решение проблемы «the disc contains an unclean file system» (50%)
- Как происходит загрузка Linux (50%)
- На какой диск (или раздел) устанавливать загрузчик при установке Linux (50%)
- Как в GRUB пересканировать диски (50%)
- Как установить гостевые дополнения VirtualBox (Guest Additions) для Ubuntu (RANDOM - 5.5%)