Каков самый безопасный способ очистки / загрузки раздела?

У меня есть 200 МБ, выделенных для /boot раздел. Всякий раз, когда я пытаюсь обновить ядро, я получаю сообщение об ошибке, в котором в основном говорится /boot полон.

Что я могу сделать для очистки /boot и удалить / создать резервную копию старых ядер?

Метод командной строки:

Сначала проверьте версию вашего ядра, чтобы вы не удалили используемый образ ядра, запустив:

uname -r

Теперь выполните эту команду для получения списка установленных ядер:

dpkg --list 'linux-image*' | grep ^ii

и удалите ядра, которые вам больше не нужны / не нужны, выполнив это:

sudo apt-get remove linux-image-VERSION

Замените ВЕРСИЮ на версию ядра, которую вы хотите удалить.

Когда вы закончите удаление старых ядер, вы можете запустить это, чтобы удалить все пакеты, которые вам больше не понадобятся:

sudo apt-get autoremove

И, наконец, вы можете запустить это, чтобы обновить список ядра grub:

sudo update-grub

ПРИМЕЧАНИЕ: это только в том случае, если вы не можете использовать 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 чтобы убрать то, что вызывает недовольство apt по поводу частичной установки.

Если вы столкнулись с ошибкой, которая содержит строку типа "Внутренняя ошибка: не удалось найти образ (/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 и подумайте о том, чтобы установить для автоматического обновления::Удаления неиспользуемых зависимостей значение true в /etc/apt/apt.conf.d/50unattended-upgrades. Это будет эквивалентно запуску автозапуска после каждого обновления системы безопасности, чтобы убедиться, что вы очищаете неиспользуемые ядра, но также удаляете другие вещи, которые, по его мнению, не используются, избавляя вас от этой проблемы в будущем.

Документация по этому поводу есть по адресу https://help.ubuntu.com/community/RemoveOldKernels

Вкратце: Используйте

sudo apt-get autoremove --purge# and/or:sudo purge-old-kernels

То purge-old-kernels инструмент может быть установлен с помощью sudo apt install byobu. Вот описание с его справочной страницы:

Эта программа удалит старые пакеты ядра и заголовков из системы, освободив место на диске. Он никогда не удалит запущенное в данный момент ядро. По умолчанию в нем будут сохранены по крайней мере последние 2 ядра, но пользователь может переопределить это значение с помощью --keep параметр.

Если вам нужно решение для копирования и вставки, ReSearchIT Eng предложил следующее:

sudo apt install -y byobusudo purge-old-kernels -y --keep 1sudo apt-get -y autoremove --purge

Я обнаружил, что гораздо проще отказаться от небольшого раздела и переместить /boot до самого корня. Это также предотвращает любые проблемы с нехваткой места в будущем.

Сначала переместите ваши данные из загрузочного раздела в корневой (запустите как sudo -s):

cp -a /boot /boot2umount /bootrmdir /bootmv /boot2 /boot

Удалить (или прокомментировать) /boot запись в /etc/fstab:

vim /etc/fstab

Обновите grub и убедитесь, что все правильно:

update-grub

apt теперь должна быть возможность обновления без проблем.

Это оставляет неиспользуемый раздел размером 200 Мб (который вы могли бы использовать для чего-то другого, если сочтете, что это того стоит).

Удаление старых ядер (для освобождения места в /boot)см.: http://askubuntu.com/questions/89710/how-do-i-free-up-more-space-in-boot

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

Затем бегите

sudo apt-get update

sudo apt-get autoremove

При этом удаляются все ядра, кроме последних 2 ядер. Протестировано на Ubuntu 16.04 LTS, когда /boot был на 100% заполнен и apt-get upgrade не удалось выполнить последнее обновление ядра. Автоматическое удаление ядра является итеративным, поэтому, если у вас есть несколько ядер, они будут удаляться по одному за раз. Так что наберитесь терпения.

Зачем делать это вручную, если вы можете сделать это с помощью инструмента? Вы знаете, что вам это понадобится снова через 30 секунд, потому что в наши дни им требуется 30 секунд, чтобы запустить новое обновление ядра = P

Я рекомендую использовать этот инструмент, бутнукем

git clone https://github.com/erichs/bootnukem.gitcd bootnukemsudo ./install.sh

Затем

sudo bootnukem --dry-run

Удалять --dry-run как только вы подтвердите, что это выглядит безопасно

короткий ответ - использовать мой сценарий: ubuntu-очистка ядра

Смотрите Вики сообщества Ubuntu

Если /boot заполнен, см. apt - How can I remove old kernels/install new ones when /boot is full? - Ask Ubuntu