Как безопасно освободить место на RHEL6 / boot?

17

Я пытаюсь сделать yum updateна коробке RHEL 6, и я получаю это сообщение об ошибке

Transaction Check Error:
  installing package kernel-2.6.32-279.9.1.el6.x86_64 needs 10MB on the /boot filesystem
  installing package grub-1:0.97-77.el6.x86_64 needs 10MB on the /boot filesystem

Error Summary
-------------
Disk Requirements:
  At least 10MB more space needed on the /boot filesystem.

My / boot имеет следующее

# ls -lah /boot
total 74M
dr-xr-xr-x.  5 root root 2.0K Jun 10 08:05 .
drwxr-xr-x. 23 root root 4.0K Aug 27 03:08 ..
-rw-r--r--   1 root root  99K Apr 26 12:53 config-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root  99K Feb 10  2012 config-2.6.32-220.7.1.el6.x86_64
-rw-r--r--.  1 root root  99K Nov  9  2011 config-2.6.32-220.el6.x86_64
drwxr-xr-x.  3 root root 1.0K Mar 29  2012 efi
drwxr-xr-x.  2 root root 1.0K Jun 10 07:53 grub
-rw-r--r--   1 root root  15M Jun 10 07:53 initramfs-2.6.32-220.17.1.el6.x86_64.img
-rw-r--r--   1 root root  15M Mar 29  2012 initramfs-2.6.32-220.7.1.el6.x86_64.img
-rw-r--r--.  1 root root  15M Mar 29  2012 initramfs-2.6.32-220.el6.x86_64.img
-rw-------   1 root root 3.4M Jun 10 08:06 initrd-2.6.32-220.17.1.el6.x86_64kdump.img
-rw-------   1 root root 3.5M Jun 10 07:53 initrd-2.6.32-220.7.1.el6.x86_64kdump.img
-rw-------   1 root root 3.4M Mar 29  2012 initrd-2.6.32-220.el6.x86_64kdump.img
drwx------.  2 root root  12K Mar 29  2012 lost+found
-rw-r--r--   1 root root 168K Apr 26 12:55 symvers-2.6.32-220.17.1.el6.x86_64.gz
-rw-r--r--   1 root root 168K Feb 10  2012 symvers-2.6.32-220.7.1.el6.x86_64.gz
-rw-r--r--.  1 root root 168K Nov  9  2011 symvers-2.6.32-220.el6.x86_64.gz
-rw-r--r--   1 root root 2.3M Apr 26 12:53 System.map-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root 2.3M Feb 10  2012 System.map-2.6.32-220.7.1.el6.x86_64
-rw-r--r--.  1 root root 2.3M Nov  9  2011 System.map-2.6.32-220.el6.x86_64
-rwxr-xr-x   1 root root 3.8M Apr 26 12:53 vmlinuz-2.6.32-220.17.1.el6.x86_64
-rw-r--r--   1 root root  171 Apr 26 12:53 .vmlinuz-2.6.32-220.17.1.el6.x86_64.hmac
-rwxr-xr-x   1 root root 3.8M Feb 10  2012 vmlinuz-2.6.32-220.7.1.el6.x86_64
-rw-r--r--   1 root root  170 Feb 10  2012 .vmlinuz-2.6.32-220.7.1.el6.x86_64.hmac
-rwxr-xr-x.  1 root root 3.8M Nov  9  2011 vmlinuz-2.6.32-220.el6.x86_64
-rw-r--r--.  1 root root  166 Nov  9  2011 .vmlinuz-2.6.32-220.el6.x86_64.hmac

вот использование диска при загрузке

# du -h
13K ./lost+found
282K    ./grub
247K    ./efi/EFI/redhat
249K    ./efi/EFI
251K    ./efi
75M .

Проблема в том, что, когда я получил это более строгое у своего провайдера, я использовал их образ по умолчанию для RHEL 6, который выделяет только 100 МБ для / boot, этого явно недостаточно. Как я могу обойти эту проблему, безопасно ли удалить какие-либо из перечисленных выше файлов, некоторые из которых, кажется, находятся на диске более одного раза? Есть ли какой-нибудь способ расширения / загрузки без повторного создания образа машины?

военно-картографическая служба
источник

Ответы:

16

Следующая команда удалит ВСЕ версии ядра, кроме той, которую вы используете в данный момент:

sudo yum remove `rpm -q kernel | grep -v 'uname -r'`

и для продвижения вперед, согласно .47.4. Настройка Yum и Yum Repositories :

⁠Installonly_limit = значение

… Где значение - это целое число, представляющее максимальное количество версий, которые могут быть установлены одновременно для любого отдельного пакета, указанного в директиве installonlypkgs. Значения по умолчанию для директивы installonlypkgs включают несколько различных пакетов ядра, поэтому следует помнить, что изменение значения installonly_limit также повлияет на максимальное количество установленных версий любого отдельного пакета ядра. Значение по умолчанию, указанное в /etc/yum.conf: installonly_limit = 3, и уменьшать это значение не рекомендуется, особенно ниже 2.

Alexus
источник
4
Может быть, оставить одну версию до этого, чтобы иметь резервную копию ...
EasyEcho
1
Не могли бы вы также сделать это: rpm -qa | grep -v `uname -r` | grep kernel- получить список ядер, которые не используются?
Пред
Лучшее решение, чем в списке @Pred, - использовать пакетную очистку. Смотрите этот ответ, чтобы узнать, как: serverfault.com/a/562201/98791
кодер
Разве эта команда также не удаляет текущее ядро ​​(потому что uname -r окружен 'вместо `)?
до
29

Согласно рекомендации MadHatter здесь . Я опубликую свой ответ здесь в качестве добавления к ответам здесь, чтобы его можно было использовать вместе с ответами, предложенными здесь.

Взято со следующего сайта

## Install yum utils ##
yum install yum-utils

## Package-cleanup set count as how many old kernels you want left ##
package-cleanup --oldkernels --count=2

Это удалит все старые ядра и сохранит только два самых последних ядра в centos 6.4, что, вероятно, вам и нужно, поскольку последние ядра содержат исправления ошибок, и вы всегда можете переключиться на более старые ядра, если новые не загружаются. Приведенная выше команда означает, что вам не нужно идти и говорить rpm -e xyz, где xyz - ваше конкретное ядро, так как оно автоматически сохраняет самые новые.

Обратите внимание, что приведенная выше команда очищает только существующие пакеты, поэтому редактирование вашего yum.conf необходимо, если вы не хотите снова собирать пакеты ядра.

Джейсон Чжу
источник
Договорились, лучшее решение, и package-cleanupпредложит вам, что он удалит, прежде чем это сделать
sMyles
8

Удалите хотя бы одно из старых ядер, как сказал Алексус.

Потом:

Отредактируйте /etc/yum.confи укажите лимит количества версий ядра для сохранения. По умолчанию установлено значение 5, но ваша система, похоже, способна обрабатывать только два:

installonly_limit=2

Наконец, пожаловаться VPS провайдеру на странный шаблон. /bootпо умолчанию 500 МБ в установке CentOS 6.

Майкл Хэмптон
источник