Como liberar espaço no RHEL6 / boot com segurança?

17

Estou tentando fazer yum updatena caixa RHEL 6 e estou recebendo esta mensagem de erro

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.

Meu / boot tem o seguinte

# 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

aqui está o uso do disco na inicialização

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

O problema é que, quando obtive esse separador no meu ISP, usei a imagem padrão para o RHEL 6, que aloca apenas 100 MB para / boot claramente, isso não é suficiente. Como solucionar esse problema, é seguro excluir qualquer um dos arquivos acima, alguns deles parecem estar no disco mais de uma vez? Existe alguma maneira de expandir / inicializar sem gerar novamente imagens da máquina?

ams
fonte

Respostas:

16

O comando a seguir removerá TODAS as versões do kernel, exceto a que você está executando no momento:

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

e para a frente, por ⁠7.4. Configurando os repositórios Yum e Yum :

⁠Installonly_limit = value

… Em que value é um número inteiro que representa o número máximo de versões que podem ser instaladas simultaneamente para qualquer pacote único listado na diretiva installonlypkgs. Os padrões da diretiva installonlypkgs incluem vários pacotes diferentes do kernel; portanto, lembre-se de que alterar o valor de installonly_limit também afetará o número máximo de versões instaladas de qualquer pacote único do kernel. O valor padrão listado em /etc/yum.conf é installonly_limit = 3 e não é recomendável diminuir esse valor, principalmente abaixo de 2.

alexus
fonte
4
Talvez deixar uma versão anterior apenas para ter um backup ...
EasyEcho
11
Você também pode fazer isso: rpm -qa | grep -v `uname -r` | grep kernel- para obter a lista de Kernels que não estão sendo usados?
Pred
Uma solução melhor que a @Pred listada é usar a limpeza de pacotes. Veja esta resposta para saber como: serverfault.com/a/562201/98791
a coder
Esse comando também não remove o kernel atual (porque o uname -r é cercado por 'em vez de `)?
bye
29

De acordo com a recomendação do MadHatter aqui . Vou postar minha resposta aqui como um adendo às respostas aqui, para que possa ser usada em conjunto com as respostas sugeridas aqui.

Retirado do site a seguir

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

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

Isso removerá todos os kernels antigos e manterá apenas os dois kernels mais recentes no centos 6.4, o que provavelmente é o que você deseja, pois os kernels recentes contêm correções de bugs e você sempre pode executar failover nos kernels antigos se os novos não forem inicializados. O comando acima significa que você não precisa dizer rpm -e xyz, onde xyz é seu kernel específico, pois ele mantém automaticamente os mais novos.

Note que o comando acima apenas limpa os pacotes existentes, portanto, é necessário editar o yum.conf se você não quiser começar a acumular pacotes do kernel novamente.

Jason Zhu
fonte
Acordados, a melhor solução, e package-cleanuppede-lhe sobre o que ele irá remover antes de fazer isso
Smyles
8

Exclua pelo menos um dos kernels antigos, como Alexus disse.

Então:

Edite /etc/yum.confe especifique o limite do número de versões do kernel a serem mantidas. É definido como 5 por padrão, mas seu sistema parece capaz de lidar com apenas dois:

installonly_limit=2

Por fim, reclame com o provedor VPS sobre o modelo estranho. /booté de 500 MB por padrão em uma instalação do CentOS 6.

Michael Hampton
fonte