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

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

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

253 голоса | спросил koba101 14 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 14 Sep 2013 23:41:55 +0400 2013, 23:41:55

7 ответов


304

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

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

  uname -r
 

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

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

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

  sudo apt-get удалить linux-image-VERSION
 

Замените VERSION версией ядра, которое вы хотите удалить.

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

  sudo apt-get autoremove
 

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

  sudo update-grub
 
ответил PeppeDAlterio 15 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 15 Sep 2013 00:34:22 +0400 2013, 00:34:22
246

ПРИМЕЧАНИЕ: это только в том случае, если вы не можете использовать apt для очистки из-за 100% полной загрузки /

Если apt-get не работает, потому что ваш /boot на 100%, вам нужно сначала очистить /загрузить. Вероятно, это привело к обновлению ядра при частичной установке, что означает, что 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 grumpy о частичной установке.

Если вы столкнулись с ошибкой, включающей строку типа «Внутренняя ошибка: не удалось найти изображение (/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 , чтобы позаботиться о любых обновлениях, которые могут быть скопированы, ожидая, пока вы полностью /boot.

Рекомендация2, просмотрите https://help.ubuntu.com/community/AutomaticSecurityUpdates и рассмотрите возможность установки автоматического обновления: : Удалить-Неиспользованные-зависимые значения в true в /etc/apt/apt.conf.d/50unattended-upgrades. Это будет эквивалент запуска autoremove после каждого обновления безопасности, чтобы убедиться, что вы очищаете неиспользуемые ядра, но также удалите другие вещи, которые, по его мнению, не используются, избавляют вас от этой проблемы в будущем.

ответил flickerfly 7 MarpmFri, 07 Mar 2014 20:54:24 +04002014-03-07T20:54:24+04:0008 2014, 20:54:24
43

Существует документация об этом на https://help.ubuntu.com/community/RemoveOldKernels

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

  sudo apt-get autoremove --purge
# и /или:
sudo purge-old-kernels
 

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

  

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

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

  sudo apt install -y byobu
sudo purge-old-kernels -y -keep 1
sudo apt-get -y autoremove --purge
 
ответил peq 9 PM000000120000001931 2016, 12:12:19
6

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

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

  cp -a /boot /boot2
umount /boot
rmdir /boot
mv /boot2 /boot
 

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

  vim /etc /fstab
 

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

  обновление-личинка
 

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

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

ответил laktak 14 AMpFri, 14 Apr 2017 10:43:28 +030043Friday 2017, 10:43:28
2

Удаление старых ядер (для свободного места в /boot) см .: http://askubuntu.com/questions/89710/как-ду-я-свободно-вверх более-пространство-в-ботинке

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

Затем запустите

  sudo apt-get update
 
ответил Amos Folarin 14 PM00000050000001431 2017, 17:09:14
2

sudo apt-get autoremove

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

ответил DeepSpace101 3 +03002017-10-03T19:39:21+03:00312017bEurope/MoscowTue, 03 Oct 2017 19:39:21 +0300 2017, 19:39:21
0

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

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

  git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh
 

Тогда

  sudo bootnukem --dry-run
 

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

ответил Jonathan 4 Maypm17 2017, 20:28:06

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132