Como liberar mais espaço em / boot?

548

Minha partição /boot está quase cheia e recebo um aviso toda vez que eu reinicio meu sistema. Eu já deletei pacotes antigos do kernel (linux-headers ...), na verdade eu fiz isso para instalar uma versão mais recente do kernel que veio com as atualizações automáticas.

Depois de instalar essa nova versão, a partição está quase cheia novamente. Então, o que mais eu posso deletar? Existem outros arquivos associados às imagens antigas do kernel?

Aqui está uma lista de arquivos que estão na minha partição /boot :

:~$ ls /boot/
abi-2.6.31-21-generic         lost+found
abi-2.6.32-25-generic         memtest86+.bin
abi-2.6.38-10-generic         memtest86+_multiboot.bin
abi-2.6.38-11-generic         System.map-2.6.31-21-generic
abi-2.6.38-12-generic         System.map-2.6.32-25-generic
abi-2.6.38-8-generic          System.map-2.6.38-10-generic
abi-3.0.0-12-generic          System.map-2.6.38-11-generic
abi-3.0.0-13-generic          System.map-2.6.38-12-generic
abi-3.0.0-14-generic          System.map-2.6.38-8-generic
boot                          System.map-3.0.0-12-generic
config-2.6.31-21-generic      System.map-3.0.0-13-generic
config-2.6.32-25-generic      System.map-3.0.0-14-generic
config-2.6.38-10-generic      vmcoreinfo-2.6.31-21-generic
config-2.6.38-11-generic      vmcoreinfo-2.6.32-25-generic
config-2.6.38-12-generic      vmcoreinfo-2.6.38-10-generic
config-2.6.38-8-generic       vmcoreinfo-2.6.38-11-generic
config-3.0.0-12-generic       vmcoreinfo-2.6.38-12-generic
config-3.0.0-13-generic       vmcoreinfo-2.6.38-8-generic
config-3.0.0-14-generic       vmcoreinfo-3.0.0-12-generic
extlinux                      vmcoreinfo-3.0.0-13-generic
grub                          vmcoreinfo-3.0.0-14-generic
initrd.img-2.6.31-21-generic  vmlinuz-2.6.31-21-generic
initrd.img-2.6.32-25-generic  vmlinuz-2.6.32-25-generic
initrd.img-2.6.38-10-generic  vmlinuz-2.6.38-10-generic
initrd.img-2.6.38-11-generic  vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-12-generic  vmlinuz-2.6.38-12-generic
initrd.img-2.6.38-8-generic   vmlinuz-2.6.38-8-generic
initrd.img-3.0.0-12-generic   vmlinuz-3.0.0-12-generic
initrd.img-3.0.0-13-generic   vmlinuz-3.0.0-13-generic
initrd.img-3.0.0-14-generic   vmlinuz-3.0.0-14-generic

Atualmente, estou usando o 3.0.0-14-generic kernel.

    
por user6722 22.12.2011 / 11:06

22 respostas

618

Você tem muitos kernels não utilizados. Remova todos os kernels, exceto os últimos, com:

sudo apt-get purge linux-image-{3.0.0-12,2.6.3{1-21,2-25,8-{1[012],8}}}

Isto é um atalho para:

sudo apt-get purge linux-image-3.0.0-12 linux-image-2.6.31-21 linux-image-2.6.32-25 linux-image-2.6.38-10 linux-image-2.6.38-11 linux-image-2.6.38-12 linux-image-2.6.38-8

A remoção do pacote linux-image-x.x.x-x também removerá linux-image-x.x.x-x-generic .

Os cabeçalhos são instalados em /usr/src e são usados na criação de módulos de kernel externos (como o driver nvidia proprietário e o virtualbox). A maioria dos usuários deve remover esses pacotes de cabeçalho se o pacote do kernel correspondente ( linux-image-* ) não estiver instalado.

Para listar todos os kernels instalados, execute:

dpkg -l linux-image-\* | grep ^ii

Um comando para mostrar todos os kernels e cabeçalhos que podem ser removidos, excluindo o kernel em execução current :

kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver

Ele seleciona todos os pacotes nomeados começando com linux-headers-<some number> ou linux-image-<some number> , imprime os nomes dos pacotes instalados e exclui o atual carregado / executando o kernel (não necessariamente o mais recente kernel!). Isso se encaixa na recomendação de testar um kernel mais novo antes de remover os kernels mais antigos e conhecidos.

Então, depois de atualizar os kernels e reiniciar para testá-lo, você pode remover todos os outros kernels com:

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
    
por Lekensteyn 24.12.2011 / 15:34
210

Sua partição de inicialização está cheia. Como esta é uma atualização do kernel, esses arquivos serão copiados para a partição de inicialização, portanto, é necessário limpá-la. Aqui está uma postagem no blog que mostrará como limpe as imagens antigas do kernel com um comando. Eu vou dar uma sinopse básica do método. Use este comando para imprimir a versão atual do seu kernel:

uname -r

Em seguida, use este comando para imprimir todos os kernels que você instalou e que não sejam seu kernel mais recente:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e 'uname -r | cut -f1,2 -d"-"' | grep -e '[0-9]'

Verifique se o seu kernel atual não está nessa lista. Observe como esta é a maioria do comando final (abaixo). Para desinstalar e excluir esses kernels antigos, você vai querer canalizar esses argumentos para:

sudo apt-get -y purge

Agora, podemos fazer tudo o que queremos combinando esses dois últimos comandos nessa bagunça profana:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e 'uname -r | cut -f1,2 -d"-"' | grep -e '[0-9]' | xargs sudo apt-get -y purge

E esse comando vai cuidar de tudo para você. Vou confirmar que isso funciona perfeitamente, mas nunca confio em ninguém na internet. :) Para mais informações, o post do blog dá uma explicação muito boa sobre o que cada parte do comando faz para lê-lo, então você está satisfeito que ele faz o que você quer fazer.

    
por dward 21.02.2013 / 04:38
102
sudo apt-get autoremove

Este comando está fazendo o trabalho automaticamente.

    
por karan 05.11.2012 / 06:58
39

O Gerenciador de Pacotes Synaptic pode ser usado para selecionar e remover facilmente imagens antigas do kernel.

SevocêaindanãotiveroSynapticinstalado:

sudoapt-getinstallsynaptic

Inicieoaplicativoeselecioneasopçõesexibidas.

Vocêdevesercapazdedestacartodosospacotes"linux-" com a versão "2.6.x", onde x é entre 31 e 38, de acordo com os arquivos em sua pasta / boot.

Clique com o botão direito do mouse em cada um desses pacotes do Linux e escolha a opção "Marcar para remoção completa". Por fim, clique no botão aplicar. Isso removerá todos os arquivos e arquivos associados. Sua pasta /boot deve estar um pouco mais clara.

    
por fossfreedom 24.12.2011 / 15:34
22

Esta é uma nova resposta para uma pergunta antiga, mas uma maneira fácil de limpar essa coisa (e mais) é instalar o Ubuntu Tweak . Para instalar :

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

então você pode rodar o Ubuntu Tweak, indo para a aba "janitor", e daqui é uma questão de três cliques:

É melhor deixar o último kernel (nunca se sabe) ou um kernel funcional conhecido por segurança; mas isso é facilmente personalizável.

Você pode usar a mesma ferramenta para limpar muitas coisas --- lembre-se de que, se você limpar o cache de miniaturas ou o TB TB, o sistema precisará reconstruí-los se forem necessários.

    
por Rmano 25.11.2014 / 14:11
17

Consegui corrigir o problema usando dpkg para remover os pacotes diretamente. Embora os pacotes ainda estejam listados em dpkg -l , os arquivos são removidos de /boot , liberando espaço.

phrogz@planar:/boot$ sudo dpkg --remove linux-image-2.6.32-30-server
(Reading database ... 145199 files and directories currently installed.)
Removing linux-image-2.6.32-30-server ...
Running postrm hook script /usr/sbin/update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-35-server
Found linux image: /boot/vmlinuz-2.6.32-34-server
Found initrd image: /boot/initrd.img-2.6.32-34-server
Found linux image: /boot/vmlinuz-2.6.32-33-server
Found initrd image: /boot/initrd.img-2.6.32-33-server
Found linux image: /boot/vmlinuz-2.6.32-32-server
Found initrd image: /boot/initrd.img-2.6.32-32-server
Found linux image: /boot/vmlinuz-2.6.32-31-server
Found initrd image: /boot/initrd.img-2.6.32-31-server
Found memtest86+ image: /memtest86+.bin
done

# Repeat for kernels -31 and -32 and -33, up to (but not including)
# the version listed by 'uname -a'

Depois disso, apt-get -f install corrigiu meus problemas de dependência e tudo ficou bem com o mundo.

No entanto, não aceitarei essa resposta, pois ainda preciso saber se devo aumentar meu /boot size ou fazer outra coisa.

    
por Phrogz 03.12.2011 / 19:47
14

Você pode parar de usar uma partição / boot separada, então você não terá esse espaço limitado lá. Para fazer isso, desmonte a partição, monte-a em outro lugar e copie todos os arquivos para o diretório / boot em sua partição raiz, remova a entrada do / etc / fstab e reinstale o grub. Por exemplo (você precisará usar a partição correta):

sudo -s
umount /boot
mount /dev/sda2 /mnt
cp -a /mnt/* /boot/
umount /mnt
gedit /etc/fstab
grub-install /dev/sda

Você pode usar o gparted para excluir a partição antiga / boot e possivelmente estender a partição raiz para usar esse espaço. Para estender a partição raiz, você precisará inicializar a partir do LiveCD, e o espaço livre precisa estar imediatamente à direita. Se a partição / boot estiver atualmente à esquerda da partição raiz, você precisará primeiro mover a partição raiz para a esquerda, depois estendê-la, mas isso pode levar muito, muito tempo, então pode não valer a pena problema.

    
por psusi 22.12.2011 / 17:38
6

Tirando o melhor das respostas acima, minha abordagem testada e verdadeira é esta:

  • uname -a para encontrar o kernel em execução.
  • dpkg -l linux-{headers,image}-\* | grep ^ii para listar todos os pacotes relacionados ao kernel atualmente instalados. Isso incluirá o kernel em execução.
  • sudo apt-get purge linux-{image,headers}-3.16.0-{xx,yy,zz} para remover os kernels antigos. Substitua xx,yy,zz por uma lista das construções do kernel que você deseja remover - estas são todas as compilações listadas pelo comando anterior que são mais antigas que o kernel atualmente em execução. Certifique-se de não remover o kernel atualmente em execução - seu sistema não será inicializado . Você também pode precisar alterar a versão do kernel de 3.16.0 para o que estiver instalado em seu sistema.
  • Opcionalmente, faça um% adicionalsudo apt-get autoremove - isso removerá quaisquer dependências remanescentes dos kernels antigos que não são mais necessários para o atual, liberando mais espaço.

Você pode ter arquivos de cabeçalho sem as versões de kernel correspondentes instaladas ou vice-versa - basta incluir todas essas versões no comando. O APT irá reclamar que alguns pacotes não podem ser removidos porque não estão instalados, mas isso não causará nenhum dano.

Se algo falhar ...

  • Se o comando apt falhar devido a um erro sem espaço no dispositivo , use o comando dpkg correspondente: sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz} .
  • Se o comando dpkg ainda não funcionar porque os pacotes linux-image são requeridos pelos pacotes linux-headers da mesma versão (que você também deseja desinstalar), o dpkg pode não ter conseguido resolver isso. Reexamine a saída de dpkg -l e especifique quaisquer sufixos de nome de pacote na linha de comando. Por exemplo, em um dos meus sistemas, o comando que eventualmente funcionou foi sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-pae .
  • Se você tiver qualquer outro erro, procure ajuda - você pode ter um problema diferente do que imaginava.
por user149408 09.07.2015 / 22:24
4

Para mim, apt-get purge e dpkg --remove falharam. Então tive que deletar algumas imagens antigas do kernel de / boot com rm -f .

    
por orkoden 14.10.2013 / 11:22
2

I already deleted old kernel packages (linux-headers...)

linux-headers-* não são kernels. Pacotes de kernel são os chamados linux-image-* . Os chamados linux-headers-* são pacotes de desenvolvimento para compilar módulos do kernel: eles não vivem no diretório / boot e não são necessários para o uso diário do sistema.

Os arquivos que você listou em / boot do incluem várias imagens antigas do kernel ( vmlinuz* ) e imagens initrd compiladas ( initrd.img* ) para esses kernels, o que é uma indicação de que você ainda tem um muitos pacotes antigos do kernel instalados.

Você deve poder listar seus kernels instalados com

aptitude search ~ilinux-image

(Note que isso provavelmente retornará pacotes que não são kernels também).

Geralmente, não há necessidade de instalar mais de dois kernels - o que está em uso atualmente e o anterior (como um fallback). Então você pode começar a remover os mais antigos, um por um, assim:

sudo apt-get autoremove linux-image-3.2.0-23-generic

Certifique-se de substituir "3.2.0-23-generic" pela versão atual do kernel que você deseja remover! Além disso, não remova pacotes como linux-image-generic . Você tem que ter muito cuidado para não remover o kernel atualmente em execução ou você não poderá inicializar (o Ubuntu pode ou não avisar você sobre isso).

Você pode encontrar o seu kernel atualmente em execução com:

uname -r
    
por thomasrutter 29.08.2014 / 11:15
2

Listar todos os kernels:

dpkg --list 'linux-image*'

Exibe o kernel atual:

uname -r

Listar todos os kernels EXCETO atual:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e 'uname -r | cut -f1,2 -d"-"' | grep -e '[0-9]'

Verifique se o seu kernel atual não está nessa lista.

Remova todos os kernels EXCETO atual:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e 'uname -r | cut -f1,2 -d"-"' | grep -e '[0-9]' | xargs sudo apt-get -y purge

Limpar outras coisas:

sudo apt-get autoremove

Se ainda houver erro de espaço em disco de inicialização para instalar / desinstalar arquivos, remova diretamente uma imagem do OLD do diretório / boot,

ls -lh /boot/*-3.13.0-119*;

rm /boot/*-3.13.0-119*; 

NOTA: Por favor, revise a imagem atual do kernel novamente antes de excluir qualquer imagem.

    
por Hemant Thorat 10.07.2018 / 12:35
1

Utilitário super útil que limpará sua partição de inicialização

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh

Use a seu próprio risco, mas funcionou para mim:

sudo bootnukem
    
por Jonathan 14.08.2016 / 22:08
1

Eu tive esse problema e mais como eu removi alguns arquivos initrd-img-xxx manualmente do / boot e eu tive um problema que essas versões antigas continuam gerando e preenchendo a pasta /boot . Para corrigi-lo, segui o seguinte:

  • Eu removi a versão antiga do kernel gerada manualmente para liberar espaço.
  • Você estará editando um arquivo de configuração de texto como superusuário, então cole o seguinte em um terminal:

    sudo gedit /etc/initramfs-tools/update-initramfs.conf
    
  • Localize a linha update_initramfs=yes e altere para update_initramfs=no . Salve e saia do arquivo e execute:

    sudo dpkg --configure -a
    

Isso resolveu meu problema. Isso foi baseado em este blog

Espero que tudo esteja bem quando você reiniciar e, mais tarde, você poderá tentar alterar o no de volta para yes em update-initramfs.conf .

    
por aibrahim 23.03.2017 / 09:59
1

Mostro que ainda em 2017 essa pergunta tem novos comentários e respostas, mas falta uma resposta que acho muito útil aqui:

O Ubuntu como um SO desktop de uso diário simples não tem razão para ser instalado com partição \ boot separada e algo assim NÃO oferecerá algo a um "usuário comum" ... Então uma solução é uma nova instalação sem partição \ boot e desta forma você nunca terá um problema como esse

PS: Minha resposta pode ser excluída ou adicionada na resposta aceita ... (acho que isso ajudará algumas pessoas dessa maneira)

    
por koleygr 20.08.2017 / 08:58
0

Salve este script como /usr/local/bin/remove_kernels.sh (lembre-se de conceder permissões de execução sudo chmod 755 /usr/local/bin/remove_kernels.sh ):

#!/bin/sh
if test $(id -u) != 0; then
 echo Error: You must be root to run this script!
 exit 1
fi
apt purge $( dpkg --list | grep -P -o "linux-image-\d\S+" | grep -v $(uname -r | grep -P -o ".+\d") )
update-grub

Em seguida, para remover todos os kernels antigos, basta digitar: sudo remove_kernels.sh

    
por 08.10.2018 / 18:27
0

/ partição de inicialização pode ser um pouco estranho às vezes

não inicie diretamente a exclusão de arquivos kernal.

Passos a seguir

  1. Verifique se o kernal atualmente instalado está sendo usado pelo sistema linux

    uname -r

    isto deve dar a você o nome da imagem kernal atualmente instalada no sistema

  2. Agora comece a excluir arquivos extras, exceto aquele específico instalado em seu sistema

    apt-get remove linux-image-XXXXX

  3. Também remova o arquivo de cabeçalho também

    apt-get remove linux-headers-XXXXX

  4. Também pode haver uma condição em que apt parou de funcionar; nesse caso, mude para / boot

    cd /boot

  5. Comece removendo os arquivos manualmente, mas com muito cuidado, tenha em mente não excluir os arquivos installed one's kernal do seu sistema.

    rm linux-image-XXXXX

    rm linux-image-extra-XXXXXX

  6. Depois de remover os arquivos corretos, a instalação parcial de limpeza, se houver

    apt-get -f install

  7. Remova arquivos extras armazenados como arquivos de inicialização limpos manualmente

    apt-get autoremove

  8. Atualizar o grub

    update-grub

  9. Por fim, atualize seus pacotes de sistema

    apt-get update

por 03.05.2019 / 20:09
0

No aptitude ou synaptic existe uma seção "antiga ou manualmente instalada". Deve haver os pacotes antigos do linux lá.

    
por Martin Ueding 22.12.2011 / 12:59
0

Existe um script que eu escrevi abaixo que torna o processo um pouco mais fácil de usar.

YMMV - foi feito para o Mint 14. Ainda aprendendo BASH, provavelmente é um pouco desajeitado. Use a seu próprio risco, mas funciona para mim!

#!/bin/bash

endCol='\e[0m'
bold_red='\e[1;31m'
bold_green='\e[1;32m'
bold_yellow='\e[1;33m'

title_color='\e[0;30;47m'

function show_kernel_info {
clear
current_kernel=$(uname -r)
echo "Current ACTIVE kernel is:"
echo -e "  "$bold_yellow$current_kernel$endCol
echo "This kernel will be TOTALLY EXCLUDED from all actions in this script."
echo "Also, one fallback non-active kernel will be always left untouched."
echo ""
echo "These are the non-active kernels stored in /boot:"
count_of_old_kernels_in_boot=$(ls -o /boot/initrd* | grep -c -v "$current_kernel")
if [ $count_of_old_kernels_in_boot = 0 ]; then
  echo " * No non-active kernels found! *"
else
  ls -o /boot/initrd* | grep -v "$current_kernel"
fi
echo ""
list_of_old_kernels=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic")
current_old_kernel=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic" | head -n 1)
count_of_old_kernels_installed=$(dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -c -v "linux-image-generic")
echo "Listing of all unused kernels still installed in the system (these may not exist in /boot):"
if [ $count_of_old_kernels_installed = 0 ]; then
  echo " * No unused kernel installs found! *"
else
  dpkg --list | grep linux-image | awk -F' ' '{ print $2 }' | grep -v "$current_kernel" | grep -v "linux-image-generic"
fi
echo ""
}

function exit_script {
free_space_after=$(df -BM /boot | tail -n 1 | awk -F' ' '{ print $4 }' | tr -d M)
let freed_space=$free_space_after-$free_space_before
echo ""
echo "Results (in MB)"
echo "---------------"
echo "Free space in /boot before script was run: "$free_space_before
echo "Free space now: "$free_space_after
echo ""
echo "Amount of space freed up = "$freed_space
echo ""
echo "Press any key to exit."
read -s -n 1
echo ""
exit
}

# Main code
echo ""
echo -e $title_color" --------------------------- "$endCol
echo -e $title_color" -   Kernel Cleanup v1.0   - "$endCol
echo -e $title_color" --------------------------- "$endCol
echo ""
echo "Maximise this window for readability."
echo "Press any key to continue."
read -s -n 1
echo ""
echo "This script will remove old unused kernels, but it will prompt you before removing each one."
echo "It will never remove the current running kernel, and will also leave one fallback kernel."
echo "It can also remove source files from /usr/src for each kernel removed."
echo "This is normally safe to do and will free up lots more space."
echo ""
echo "Do you want that done as well? (y/n, enter=yes)"
valid_input=0
while [ "$valid_input" = "0" ]; do
  read -s -n 1 YesNo_input
  if [ "$YesNo_input" = "" ]; then
    YesNo_input="y"
  fi
  case $YesNo_input
  in
    y)
    RemoveSource="y"
    valid_input=1
    ;;

    Y)
    RemoveSource="y"
    valid_input=1
    ;;

    n)
    RemoveSource="n"
    valid_input=1
    ;;

    N)
    RemoveSource="N"
    valid_input=1
    ;;
  esac
done

free_space_before=$(df -h /boot | tail -n 1 | awk -F' ' '{ print $4 }' | tr -d M)
show_kernel_info
while [ $count_of_old_kernels_in_boot -gt 1 ]; do
  # failsafe check if somehow the current kernel is about to be removed!
  if [ "$current_old_kernel" = "$current_kernel" ]; then
    echo -e $bold_red"ERROR!"$endCol" Somehow the current kernel has crept into the removal process!"
    echo "I refuse to do that! Aborting script."
    exit_script
  fi
  # failsafe check if somehow a linux-image-generic entry is about to be removed
  if [ "$current_old_kernel" = "linux-image-generic" ]; then
    echo -e $bold_red"ERROR!"$endCol" Somehow one of the linux-image-generic entries has crept into the removal process!"
    echo "I refuse to do that! Aborting script."
    exit_script
  fi
  echo "Command about to be executed is:"
  echo "  $ sudo apt-get purge \"$current_old_kernel\""
  check_in_boot=$(echo $current_old_kernel | sed 's/linux-image/initrd.img/g')
  if [ -e /boot/$check_in_boot ]; then
    echo -e $bold_yellow"Note:"$endCol" This kernel exists in /boot but it NON-active, so it's OK to remove."
  else
    echo -e $bold_green"Totally safe to remove:"$endCol" This kernel does NOT exist in /boot."
  fi
  echo ""
  echo "Are you sure you want to remove this kernel?"
  echo "(*upper case* Y=yes / any other key will exit the script)"
  read -s -n 1 yes_no
  echo ""
  # Only entering a single upper case Y will work!
  if [ "$yes_no" != "Y" ]; then
    echo "Aborting script."
    exit_script
  fi
  echo "Removing kernel "$current_old_kernel"..."
  sleep 1
  sudo apt-get -y purge $current_old_kernel
  if [ "$RemoveSource" = "y" ]; then
    current_old_source=$(echo $current_old_kernel | sed 's/linux-image/linux-headers/g')
    current_old_source=$(echo $current_old_source | sed 's/-generic//g')
    current_old_source=$(echo $current_old_source | sed 's/-pae//g')
    sudo apt-get -y purge $current_old_source
  fi
  show_kernel_info
done

if [ $count_of_old_kernels_in_boot = 0 ]; then
  echo -e $bold_red"There are no NON-active kernels to remove!"$endCol
else
  echo -e $bold_red"There is only one NON-active kernel left in /boot!"$endCol
  echo "This script will not remove the last non-active kernel so that you have at least one backup kernel."
fi
echo "Aborting script."
exit_script
    
por wibbynut 08.03.2014 / 07:33
0

[Como um noob do AskUbuntu eu não posso comentar até a reputação = 50, então não vote baixo por causa disso.]

Meu servidor também estava fazendo isso. Literalmente nenhuma das respostas esperadas aqui funcionou, uma vez que elas requerem alguma sala de trabalho no / boot para serem concluídas. Se a partição de inicialização estiver cheia, ela terminará abruptamente sem excluir nenhuma das imagens.

A única coisa que funcionou para mim foi revisar a imagem atual e, em seguida, manualmente sudo rm filename para os arquivos de imagem mais antigos (cada um tinha -3.16.0-30 em seus nomes). Uma vez feito isso, então sudo apt-get autoremove tinha o espaço de manobra necessário para fazer seu trabalho. Ele destacou alguns erros associados a essa versão, por exemplo: "depmod: FATAL: não foi possível carregar o /boot/System.map-3.16.0-30-generic: nenhum desses arquivos ou diretórios", mas isso é de se esperar. / p>

Quando terminar, o df retornou 42% em uso para / boot para indicar que está saudável novamente.

    
por Justin Case 08.02.2017 / 01:44
0

Eu escrevi este script bash purgar os kernels antigos de uma só vez:

Todo o código bash e instruções estão incluídos no link.

    
por WinEunuuchs2Unix 31.07.2017 / 01:46
-1

Se você não puder remover mais arquivos não usados e tiver outra partição com / ou espaço livre no mesmo dispositivo, poderá redimensionar a partição / boot por parted / gparted . (Ele também está incluído na mídia de instalação.)

Aviso : O redimensionamento da partição é perigoso , salve seus dados importantes em outras mídias antes de executá-lo!

    
por Rudolf Dovičín 02.01.2015 / 22:42