Apagar novos kernels / boot full

8

Temos alguns servidores Ubuntu 16.04. unattended-upgrades são ativados automaticamente desde 16.04 e a partição de inicialização está em uma partição separada. Devido às atualizações automáticas de segurança, a partição de inicialização está ficando sem espaço com novos kernels.

Não podemos simplesmente reinicializar os sistemas para que a máquina ainda esteja usando o penúltimo kernel.

Quais kernels devo remover? Todos, exceto o currrent, o mais antigo e o mais novo?

Vocês têm algumas recomendações?

Eu também notei que o kernel mais novo tem o status "Half Configured". Este kernel provavelmente não funcionaria, então eu devo remover este e usar o kernel antigo.

Saída de dpkg -l | grep linux image :

    ii  linux-image-4.4.0-21-generic --> old kernel
    ii  linux-image-4.4.0-34-generic --> current kernel
    ii  linux-image-4.4.0-36-generic --> new kernel
    ii  linux-image-4.4.0-38-generic --> new kernel
    ii  linux-image-4.4.0-42-generic --> new kernel
    ii  linux-image-4.4.0-45-generic --> new kernel
    ii  linux-image-4.4.0-47-generic --> new kernel
    ii  linux-image-4.4.0-51-generic --> new kernel
    ii  linux-image-4.4.0-53-generic --> new kernel
    iF  linux-image-4.4.0-57-generic --> new kernel
    
por user83026 28.12.2016 / 15:05

4 respostas

7

Para limpar o kernel antigo, você pode usar a ferramenta de linha de comando purge-old-kernels .

This program will remove old kernel and header packages from the system, freeing disk space. It will never remove the currently running kernel. By default, it will keep at least the latest 2 kernels, but the user can override that value using the --keep parameter. Any additional parameters will be passed directly to apt-get

Para instalar purge-old-kernels , execute:

sudo apt install byobu

ou

sudo apt install bikeshed

Para manter a última execução do kernel n :

sudo purge-old-kernels --keep n

e, g: n = 2

sudo purge-old-kernels --keep 2

Atualizar grub :

sudo update-grub
    
por 28.12.2016 / 17:05
4

Para o Ubuntu, o Grub2 exibe automaticamente o kernel mais recente e oculta os kernels mais antigos. Se você quiser vê-los, você pode pressionar Shift durante a inicialização.

Então, antes de apagar os kernels mais antigos, inicialize com o último kernel disponível (o grub2 carrega por padrão na inicialização). Para verificar qual kernel você está usando, você pode usar o comando:

uname -r

A recomendação é manter pelo menos dois ou, preferencialmente, três kernels, incluindo o mais recente. O motivo é que você terá pelo menos um / dois outros kernels para inicializar se ocorrer que você não consegue inicializar com o kernel mais recente.

Para remover os kernels mais antigos, abra o terminal e verifique seu kernel atual:

uname -r 

Em seguida, liste todos os kernels instalados em seu sistema.

dpkg --list | grep linux-image 

Encontre todos os kernels que estão abaixo do seu kernel atual. Execute os comandos abaixo para remover o kernel selecionado:

sudo apt-get purge linux-image-x.x.x.x-generic 

Por fim, execute os comandos abaixo para atualizar o grub2

sudo update-grub2 

E reinicie o seu sistema.

    
por 28.12.2016 / 15:38
3

apt-get autoremove , executado periodicamente, deve ser capaz de ajudar você a realizar o que deseja. O kernel em execução, o kernel anterior e os dois últimos kernels devem ser suficientes.

    
por 28.12.2016 / 15:26
2

Inicialize um do kernel anterior.

Primeiro, tente apt autoremove --purge

Se não funcionar dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)//")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*//;/[0-9]/!d'

Controle o que será deinstallt.

dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)//")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*//;/[0-9]/!d' | xargs sudo dpkg -P Isto irá limpar o Kernel da lista do comando abaixo.

sudo apt -f install

e com certeza

 sudo update-grub
    
por 28.12.2016 / 22:02