partição de inicialização está quase cheia no CentOS

22

Recebi um aviso de que minha partição / boot está quase cheia (85%). O que devo fazer? Posso remover um dos kernel de backup? Como fazer isso com segurança?

Minha partição agora

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

O Kernel que tenho

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

O diretório / 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

O Kernel que estou usando

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
Testador
fonte
4
Por que isso foi marcado como duplicado? A outra pergunta nem é sobre yum. Não duvido que seja uma duplicata, mas não dessa questão em particular.
Bratchley

Respostas:

47

Faça o seguinte para manter apenas os 2 últimos kernels no seu sistema, para manter / inicializar limpo

1 - Edite /etc/yum.confe defina o seguinte parâmetro

installonly_limit=2

Isso fará com que seu gerenciador de pacotes mantenha apenas os 2 últimos kernels do seu sistema (incluindo o que está sendo executado)

2 - Instalar yum-utils:

yum install yum-utils

3- Faça uma limpeza do kernel antigo:

package-cleanup --oldkernels --count=2

Feito. Isso apagará de boa maneira os kernels antigos e manterá apenas os dois últimos para as próximas atualizações.

Para casos especiais em que você tem vmlinuz-0-rescue-*e initramfs-0-rescue-*arquivos usando muito espaço em disco, por favor dê uma olhada nesta pergunta sobre L & L:


fonte
Obrigado nwildner! Posso fazer isso agora? Preciso reiniciar o sistema depois de fazer isso? Preciso fazer backup de todos os meus dados?
Testador
Sim você pode. Um backup do seu / boot, apenas por precaução, pode ser uma boa coisa a fazer. Você não precisará reiniciar, pois a etapa 3 apagará o kernel mais antigo, a menos que você esteja executando agora. O primeiro passo, vai fazer esta configuração permanente;)
Embora isso nem sempre seja suficiente. Eu segui estas etapas e descobri que já tinha apenas 2 kernels - o problema para mim era um arquivo "initramfs-0-rescue" de 60 MB com 5 meses de idade. Excluiu isso e estava tudo bem.
Codemonkey 19/02
1
Hey @Codemonkey. Atualizei minha resposta com detalhes sobre arquivos de resgate ...
10

Você pode excluir kernels antigos com segurança, fazendo o seguinte:

# 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

E, se desejar, você pode limitar isso sempre fazendo o seguinte em /etc/yum.conf

installonly_limit=2
sparticvs
fonte
Depois de ver a resposta de Joel Davis, eu também concordo com ele. Verifique para ver o que realmente está usando todo esse espaço.
Sparticvs
Se você olhar para ele lse adicionar os arquivos, são cerca de 25 MB por kernel, principalmente no initramfs.
Cjm
Sim, eu tinha a sensação de que poderia ser os arquivos initramfs. A limpeza acima também deve removê-los.
Sparticvs
@sparticvs, verifiquei -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.imgusar muito espaço.
Testador
@sparticvs, posso fazê-lo agora? Preciso reiniciar o sistema depois de fazer isso? Preciso fazer backup de todos os meus dados?
Testador
2

As imagens do kernel são realmente muito pequenas:

[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

Obviamente, há mais no pacote do kernel, mas essa é a parte em /bootque é sua preocupação.

Portanto, com uma /bootpartição de 100 MB , excluir um kernel de 2-3 MB provavelmente não o levará muito longe.

100MB é geralmente muito mais do que as pessoas precisam. Eu faria du -shinvocações suficientes para que você possa ver o que está ocupando todo esse espaço, porque você nem deveria estar chegando perto de usar 100 MB nesse ponto de montagem:

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

Que é com três núcleos instalados:

[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 ~]#

Estou disposto a apostar que alguém colocou um arquivo /bootcomo uma mudança temporária e esqueceu de removê-lo mais tarde.

Bratchley
fonte
3
Mas existem os arquivos initramfs, que são bem maiores que os arquivos do kernel. Olhando para @ Don ls, eles usam 14 MB.
ah sim, eu estou vendo isso agora. Oh bem, eu vou deixar minha resposta e apenas votar em seus caras '
Bratchley
0

O que devo fazer?

se você fizer um uname -aque relatará sua versão em execução no momento .

De acordo com a sua postagem, presumo que essa seja a 2.6.32-358.23.2.el6.x86_64sua versão atual; portanto, mova todas as antigas para outra partição em que haja espaço suficiente para economizar, faça algo como:

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

O /boot/efi/EFI/centos/grub.cfgarquivo que você deseja verificar e será fácil ler o código do menu, o superior será o padrão que você vê ao inicializar e também procura o de resgate ; você provavelmente terá vários listados. É aqui que você também pode verificar qual versão está realmente executando.

Normalmente, apenas mantenho a mais recente (na parte superior) e o resgate (na parte inferior) grub.cfg. Conhecer o verdadeiro grub.cfg(no seu caso, porque eu vejo a pasta EFI) está em /boot/efi/EFI/centos/grub.cfg. Você não edita esse arquivo diretamente, mas eu examinaria esse arquivo para verificar se os arquivos foram inicializados porque é esse grub.cfg que é usado durante a inicialização.

O resgate geralmente é a versão do kernel voltando à instalação do sistema, que pode ser muitas versões anteriores ao que você pode estar executando agora. Para uma opção de resgate, que provavelmente é uma boa idéia a longo prazo, basta apontá-la para uma versão confiável e funcional, para que o sistema seja inicializado pelo menos e você possa editar arquivos no disco, caso um novo kernel desapareça depois de instalar e não inicializar ou não funcionar. Basicamente, você deseja pelo menos 2 opções de inicialização no menu grub, a mais recente e, em seguida, alguma versão confiável para recorrer.

você edita /etc/default/grub.cfge modifica este arquivo; faça o menu como quiser, simplesmente comentando os que você não deseja com a e #, em seguida, faça umgrub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

KDUMP é o problema

E a partir dos initrd-2.6.32-358.18.1.el6.x86_64kdump.imgarquivos com o kdump no nome, parece que você tem o kdump ativado. A menos que você o use, você pode desativar o kdump, o que ajudará a economizar espaço. E, a menos que você esteja depurando falhas do sistema e similares, você não precisa dos *kdump.imgarquivos para poder excluí-los. Eu não uso o kdump, nunca o usei, mas ele está ativado por padrão durante a instalação e suspeito que, por padrão, salve na sua pasta / boot; que se apenas 100mb é ruim. Portanto, modifique o kdump para despejar em outro lugar ou você provavelmente não o usará, portanto desative o kdump.

Ron
fonte