У меня выделено 200 МБ на /boot
раздел. Всякий раз, когда я пытаюсь обновить ядро, я получаю сообщение об ошибке, которое в основном утверждает, /boot
что заполнено.
Что я могу сделать для очистки /boot
и удаления / резервного копирования старых ядер?
kernel
boot-partition
koba101
источник
источник
Ответы:
Метод командной строки:
Сначала проверьте версию ядра, чтобы не удалять используемый образ ядра, запустив:
Теперь запустите эту команду для получения списка установленных ядер:
и удалите ядра, которые вам больше не нужны / не нужны, запустив это:
Замените VERSION версией ядра, которое вы хотите удалить.
Когда вы закончите удаление старых ядер, вы можете запустить это, чтобы удалить все пакеты, которые вам больше не нужны:
И, наконец, вы можете запустить это, чтобы обновить список ядра grub:
источник
sudo dpkg --list 'linux-image*' | grep ^ii
немного упрощает просмотр только установленных ядер. Кроме того, я думаю, чтоupdate-grub
это безопасно, но не обязательно, то есть запускается автоматически при удалении ядра.sudo dpkg --list 'linux-image*' | grep ^ii | awk '{print $2}' | sort | egrep "[0-9]-generic" | head -n -3 | tr '\n' ' '; echo ""
для получения списка имен пакетов, которые будут использоваться сsudo apt-get remove
.head -n -3
используется для хранения 3 самых последних ядер, оставшихся в системе.apt-get remove `dpkg --list 'linux-image*' |grep ^ii | awk '{print $2}'\ | grep -v \`uname -r\``
sudo apt-get autoremove
должно хватить (обычно оставляя вас с последними 3 ядрами)/boot
он переполнен, поэтомуapt-get
произойдет сбой с каким-либо кодом ошибки или другим. Ответ ниже немного «дилетантский» (я должен признаться , что я должен был сам стали выдавать , чтоrm -rf
в/boot
) , но только один , который, вероятно , будет работать в этой ситуации.ПРИМЕЧАНИЕ: это только если вы не можете использовать apt для очистки из-за 100% полной загрузки
Если apt-get не работает, потому что ваш / boot на 100%, вам нужно сначала очистить / boot. Это, скорее всего, привело к обновлению ядра при частичной установке, что означает, что apt почти полностью завис и полностью будет сообщать вам о запуске,
apt-get -f install
даже если эта команда продолжает давать сбой.Получить список образов ядра и определить, что вы можете обойтись без. Эта команда покажет установленные ядра, кроме запущенного в данный момент
sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`
. Обратите внимание на две новейшие версии в списке. Вам не нужно беспокоиться о работающей, поскольку она не указана здесь. Вы можете проверить это сuname -r
.Создайте команду для удаления всех файлов в / boot для ядер, которые не имеют значения для вас, используя расширение скобок, чтобы сохранить вас в здравом уме. Не забудьте исключить текущий и два новейших образа ядра. Пример:
sudo rm -rf /boot/*-3.2.0-{23,45,49,51,52,53,54,55}-*
. Вы также можете использовать диапазон с синтаксисом {80..84}.sudo apt-get -f install
чтобы очистить то, что делает способным сварливым о частичной установке.Если вы столкнулись с ошибкой, включающей строку типа «Внутренняя ошибка: не удалось найти изображение (/boot/vmlinuz-3.2.0-56-generic)», то запустите команду
sudo apt-get purge linux-image-3.2.0-56-generic
(с соответствующей версией).Наконец,
sudo apt-get autoremove
чтобы очистить старые пакеты образов ядра, которые были потеряны при ручной очистке.Предложите, запустите
sudo apt-get update
иsudo apt-get upgrade
позаботьтесь о любых обновлениях, которые могли быть скопированы, ожидая, пока вы обнаружите полный / загрузочный раздел.Предложение 2, просмотрите https://help.ubuntu.com/community/AutomaticSecurityUpdates и рассмотрите возможность установки для параметра Unattended-Upgrade :: Remove-Unused-Dependencies значения true в /etc/apt/apt.conf.d/50unattended-upgrades. Это будет равносильно запуску автоматического удаления после каждого обновления безопасности, чтобы быть уверенным, что вы удалите неиспользуемые ядра, но также удалит другие вещи, которые, по его мнению, не используются, избавляя вас от этой проблемы в будущем.
источник
dpkg --purge
при полной загрузке, вы получите следующее$ sudo dpkg --purge linux-image-3.13.0-65-generic dpkg: dependency problems prevent removal of linux-image-3.13.0-65-generic: linux-image-extra-3.13.0-65-generic depends on linux-image-3.13.0-65-generic. dpkg: error processing package linux-image-3.13.0-65-generic (--purge): dependency problems - not removing Errors were encountered while processing: linux-image-3.13.0-65-generic
df -i
я обнаружил, что у меня также заканчиваются inode/
из-за огромного количества файлов для исходного кода старых ядер в/usr/src
Есть документация об этом в https://help.ubuntu.com/community/RemoveOldKernels
В итоге: использование
purge-old-kernels
Инструмент может быть установлен с помощьюsudo apt install byobu
. Вот описание с его man-страницы:Если вам нужно решение для копирования и вставки, ReSearchIT Eng предлагает следующее:
источник
apt-get autoremove --purge
должно быть достаточно, хотя.Я обнаружил, что гораздо легче отказаться от небольшого раздела и перейти
/boot
к корню. Это также предотвращает любые проблемы из космоса в будущем.Сначала переместите ваши данные из загрузочного раздела в корневой каталог (запустите как
sudo -s
):Удалить (или прокомментировать)
/boot
запись в/etc/fstab
:Обновите grub и убедитесь, что все правильно:
apt
Теперь должен быть в состоянии обновить без проблем.Это оставляет неиспользованный раздел 200 МБ (который вы могли бы использовать для чего-то другого, если вы найдете, что это стоит того).
источник
Удаление старых ядер (чтобы освободить место на / boot), смотрите: http://askubuntu.com/questions/89710/how-do-i-free-up-more-space-in-boot
Тогда беги
источник
sudo apt-get autoremove
Это удаляет все, кроме последних 2 ядер. Протестировано на Ubuntu 16.04 LTS, когда оно
/boot
было загружено на 100% иapt-get upgrade
не прошло последнее обновление ядра. Автоматическое удаление ядра является итеративным, поэтому, если у вас есть несколько ядер, они будут удалены по одному за раз. Так что наберитесь терпения.источник
Зачем делать это вручную, если вы можете сделать это с помощью инструмента? Вы знаете, что вам понадобится снова через 30 секунд, потому что им требуется 30 секунд, чтобы запустить новое обновление Kernal в эти дни = P
Я рекомендую использовать этот инструмент, bootnukem
затем
Удалить, как
--dry-run
только вы подтвердите, что выглядит безопасноисточник