загрузочный раздел почти заполнен в CentOS

23

Я получил предупреждение о том, что мой раздел / boot почти заполнен (85%). Что мне делать? Можно ли удалить одно из резервных копий ядра? Как это сделать безопасно?

Мой раздел прямо сейчас

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda2             10321208    719856   9077064   8% /
tmpfs                  4015460         0   4015460   0% /dev/shm
/dev/sda1               101133     80781     15130  85% /boot
/dev/sda8            253782660  47668764 193222404  20% /home
/dev/sda7              1032088    535840    443820  55% /tmp
/dev/sda3             10321208   4823740   4973180  50% /usr
/dev/sda5             10321208   1807284   7989636  19% /var

Ядро у меня есть

root@server1 [/boot]# rpm -q kernel
kernel-2.6.32-358.el6.x86_64
kernel-2.6.32-358.18.1.el6.x86_64
kernel-2.6.32-358.23.2.el6.x86_64

Каталог / Boot

root@server1 [/boot]# ls -la /boot
total 78741
dr-xr-xr-x.  5 root root     2048 Dec  3 05:33 ./
drwxr-xr-x. 23 root root     4096 Dec  4 05:46 ../
-rw-r--r--   1 root root   104112 Aug 28 12:43 config-2.6.32-358.18.1.el6.x86_64
-rw-r--r--   1 root root   104112 Oct 16 14:01 config-2.6.32-358.23.2.el6.x86_64
-rw-r--r--.  1 root root   104081 Feb 21  2013 config-2.6.32-358.el6.x86_64
drwxr-xr-x.  3 root root     1024 Sep 20 20:15 efi/
drwxr-xr-x.  2 root root     1024 Oct 21 15:06 grub/
-rw-r--r--   1 root root 16191847 Sep 20 20:21 initramfs-2.6.32-358.18.1.el6.x86_64.img
-rw-r--r--   1 root root 16261655 Oct 21 15:06 initramfs-2.6.32-358.23.2.el6.x86_64.img
-rw-r--r--.  1 root root 16187335 Sep 20 20:16 initramfs-2.6.32-358.el6.x86_64.img
-rw-------   1 root root  3698835 Sep 20 20:27 initrd-2.6.32-358.18.1.el6.x86_64kdump.img
-rw-------   1 root root  3983771 Dec  3 05:33 initrd-2.6.32-358.23.2.el6.x86_64kdump.img
-rw-------   1 root root  3695290 Sep 20 20:21 initrd-2.6.32-358.el6.x86_64kdump.img
drwx------.  2 root root    12288 Sep 20 20:13 lost+found/
-rw-r--r--   1 root root   185949 Aug 28 12:44 symvers-2.6.32-358.18.1.el6.x86_64.gz
-rw-r--r--   1 root root   185978 Oct 16 14:02 symvers-2.6.32-358.23.2.el6.x86_64.gz
-rw-r--r--.  1 root root   185734 Feb 21  2013 symvers-2.6.32-358.el6.x86_64.gz
-rw-r--r--   1 root root  2408641 Aug 28 12:43 System.map-2.6.32-358.18.1.el6.x86_64
-rw-r--r--   1 root root  2408974 Oct 16 14:01 System.map-2.6.32-358.23.2.el6.x86_64
-rw-r--r--.  1 root root  2407466 Feb 21  2013 System.map-2.6.32-358.el6.x86_64
-rwxr-xr-x   1 root root  4046224 Aug 28 12:43 vmlinuz-2.6.32-358.18.1.el6.x86_64*
-rw-r--r--   1 root root      171 Aug 28 12:43 .vmlinuz-2.6.32-358.18.1.el6.x86_64.hmac
-rwxr-xr-x   1 root root  4047152 Oct 16 14:01 vmlinuz-2.6.32-358.23.2.el6.x86_64*
-rw-r--r--   1 root root      171 Oct 16 14:01 .vmlinuz-2.6.32-358.23.2.el6.x86_64.hmac
-rwxr-xr-x.  1 root root  4043888 Feb 21  2013 vmlinuz-2.6.32-358.el6.x86_64*
-rw-r--r--.  1 root root      166 Feb 21  2013 .vmlinuz-2.6.32-358.el6.x86_64.hmac

Ядро, которое я использую

root@server1 [/boot]# uname -a
Linux server1 2.6.32-358.23.2.el6.x86_64 #1 SMP Wed Oct 16 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
тестер
источник
4
Почему это было отмечено как дубликат? Другой вопрос даже не о yum. Я не сомневаюсь, что это дубликат, но не тот конкретный вопрос.
Братчли

Ответы:

48

Выполните следующие действия, чтобы сохранить только последние 2 ядра в вашей системе, чтобы сохранить / boot в чистоте

1 - Редактировать /etc/yum.confи установить следующий параметр

installonly_limit=2

Это заставит ваш менеджер пакетов сохранить только 2 последних ядра в вашей системе (включая то, которое работает)

2 - Установить yum-utils:

yum install yum-utils

3- Выполните очистку старого ядра:

package-cleanup --oldkernels --count=2

Выполнено. Это удалит старые ядра и сохранит только последние два из них для следующих обновлений.

Для особых случаев, когда у вас есть файлы vmlinuz-0-rescue-*и они занимают initramfs-0-rescue-*слишком много места на диске, пожалуйста, посмотрите на этот вопрос на U & L:


источник
Спасибо nwildner! Могу ли я сделать это прямо сейчас? Нужно ли перезагрузить систему после этого? Нужно ли делать резервные копии всех моих данных?
Тестер
Да, ты можешь. Хорошая вещь - сделать резервную копию вашего / boot. Вам не нужно будет перезагружаться, поскольку шаг 3 удалит самое старое ядро, если только вы не запускаете его прямо сейчас. Первый шаг, сделает эту конфигурацию постоянной;)
Хотя этого не всегда достаточно. Я выполнил эти шаги и обнаружил, что у меня уже было только 2 ядра - проблема для меня была в 60-мегабайтном файле initramfs-0-rescue, которому было 5 месяцев. Удалил то и все было нормально.
Codemonkey
1
Привет, @Codemonkey. Я обновил свой ответ с подробностями о файлах спасения ...
10

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

# Install the yum-utils if they aren't installed
yum install yum-utils
# Cleanup old kernels and don't keep more than 2
package-cleanup --oldkernels --count=2

И если вы хотите, вы можете ограничить это всегда, выполнив следующее в /etc/yum.conf

installonly_limit=2
sparticvs
источник
Увидев ответ Джоэля Дэвиса, я бы тоже с ним согласился. Проверьте, что на самом деле использует все это пространство.
sparticvs
Если вы посмотрите на него lsи сложите файлы, это будет около 25 МБ на ядро, в основном в initramfs.
CJM
Да, я чувствовал, что это могут быть файлы initramfs. Очистка выше также должна удалить их.
sparticvs
@sparticvs, я проверил, -rw-r--r-- 1 root root 16191847 Sep 20 20:21 initramfs-2.6.32-358.18.1.el6.x86_64.img -rw-r--r-- 1 root root 16261655 Oct 21 15:06 initramfs-2.6.32-358.23.2.el6.x86_64.img -rw-r--r--. 1 root root 16187335 Sep 20 20:16 initramfs-2.6.32-358.el6.x86_64.imgиспользовать много места.
Тестер
@sparticvs, я могу сделать это прямо сейчас? Нужно ли перезагрузить систему после этого? Нужно ли делать резервные копии всех моих данных?
Тестер
2

Изображения ядра на самом деле очень маленькие:

[root@ditirlns01 ~]# ls -lh /boot/vmlinuz-2.6.18-3*
-rw-r--r-- 1 root root 2.2M May  4  2012 /boot/vmlinuz-2.6.18-308.8.1.el5xen
-rw-r--r-- 1 root root 2.2M Jul 27 01:43 /boot/vmlinuz-2.6.18-348.16.1.el5xen
-rw-r--r-- 1 root root 2.2M Mar 22  2013 /boot/vmlinuz-2.6.18-348.4.1.el5xen

Очевидно, что в пакете ядра есть еще кое-что, но это та часть, на /bootкоторой вы заинтересованы.

Таким образом, с /bootразделом в 100 МБ удаление 2-3 МБ ядра, вероятно, не поможет вам.

100 МБ на самом деле обычно намного больше, чем нужно людям. Я сделал бы достаточно du -shвызовов, чтобы вы могли видеть, что занимает все это пространство, потому что вам даже не нужно приближаться к использованию 100 МБ в этой точке монтирования:

[root@ditirlns01 ~]# df -h /boot
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1             99M   34M   60M  37% /boot

Который с тремя установленными ядрами:

[root@ditirlns01 ~]# rpm -qa kernel*
kernel-xen-2.6.18-348.16.1.el5
kernel-xen-2.6.18-348.4.1.el5
kernel-headers-2.6.18-348.16.1.el5
kernel-xen-2.6.18-308.8.1.el5
[root@ditirlns01 ~]#

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

Bratchley
источник
3
Но есть файлы initramfs, которые намного больше, чем файлы ядра. Глядя на @Don ls, они используют 14 МБ.
ах да, я вижу это сейчас. Ну что ж, я оставлю свой ответ и просто оповестю ваших парней »
Братчли
0

Что мне делать?

если вы сделаете это, uname -aто сообщит о вашей текущей работающей версии.

В соответствии с вашими публикациями я предполагаю, что это 2.6.32-358.23.2.el6.x86_64ваша текущая работающая версия, поэтому переместите все старые версии в другой раздел, где достаточно места для сохранения, сделайте что-то вроде:

mkdir /root/oldkernels
mv   /boot/initramfs-2.6.32-358.18.1.el6.x86_64.img    /root/oldkernels

/boot/efi/EFI/centos/grub.cfgФайл , который вы хотите проверить , и это будет достаточно легко прочитать код меню в нем, верхней будет один по умолчанию вы видите при загрузке , а также искать спасения одного; Вы, вероятно, будете иметь в списке многочисленные из них. Именно здесь вы также можете проверить, какую версию вы на самом деле используете.

Я обычно просто держу последнюю (вверху) и спасательную (внизу) grub.cfg. Знайте, что реальный grub.cfg(в вашем случае, потому что я вижу папку EFI) находится в /boot/efi/EFI/centos/grub.cfg. Вы не редактируете этот файл напрямую, но я бы посмотрел этот файл, чтобы проверить загружаемые файлы, потому что именно этот grub.cfg используется при загрузке.

Спасательное , как правило , версия ядра, восходящие к установке системы, которая может быть много версий до того , что вы можете работать прямо сейчас. Для варианта восстановления, который, вероятно, является хорошей идеей в долгосрочной перспективе, вам просто нужно указать на надежную и работающую версию, чтобы система хотя бы загрузилась и вы могли редактировать файлы на диске, если новое ядро ​​обанкротилось. после установки и не загружается или не работает. По сути, вы хотите, чтобы в меню grub было по крайней мере 2 варианта загрузки, последняя версия, а затем надежная версия.

вы редактируете /etc/default/grub.cfgи модифицируете этот файл; сделайте меню, как вы хотите, просто закомментировав те, которые вы не хотите с помощью #, а затем сделайтеgrub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

KDUMP это проблема

А из initrd-2.6.32-358.18.1.el6.x86_64kdump.imgфайлов, имеющих имя kdump , похоже, что у вас включен kdump. Если вы не используете его, вы можете отключить kdump, который поможет сэкономить место. И если вы не отладки системы аварий и т.п., вам не нужны *kdump.imgфайлы , так что вы можете удалить их. Я не использую kdump, никогда не использую, но он включен по умолчанию во время установки, и я подозреваю, что по умолчанию сохраняет в папку / boot; что если только 100 МБ это плохо. Так что либо измените kdump для дампа в другом месте, либо вы, скорее всего, не используете его, поэтому отключите kdump.

рон
источник