Espaço livre em disco insuficiente ao atualizar

136

Estou recebendo um erro no atualizador de software quando tento fazer minhas atualizações diárias. diz:

The upgrade needs a total of 25.3 M free space on disk '/boot'.
Please free at least an additional 25.3 M of disk space on '/boot'.
Empty your trash and remove temporary packages of former installations 
using 'sudo apt-get clean'.

Eu tentei digitar sudo apt-get clean no Terminal, mas ainda recebo a mensagem. Todas as páginas que eu leio parecem ser para usuários experientes do Ubuntu. Estou executando o Ubuntu 12.10. Quero atualizar para o 13.04, mas entendo que tenho que terminar primeiro.

Esta é a saída da digitação em cat /etc/fstab no Terminal:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=fa55c082-112d-4b10-bcf3-e7ffec6cebbc /boot           ext2    defaults        0       2
/dev/mapper/ubuntu-swap_1 none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
matty@matty-G41M-ES2L:~$ 

Saída de df -h :

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-root  915G   27G  842G   4% /
udev                     984M  4.0K  984M   1% /dev
tmpfs                    397M  1.1M  396M   1% /run
none                     5.0M     0  5.0M   0% /run/lock
none                     992M  1.8M  990M   1% /run/shm
none                     100M   52K  100M   1% /run/user
/dev/sda1                228M  222M     0 100% /boot
matty@matty-G41M-ES2L:~$ 

E dpkg -l | grep linux-image dá:

ii linux-image-3.5.0-17-generic 3.5.0-17.28 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-18-generic 3.5.0-18.29 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-19-generic 3.5.0-19.30 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-21-generic 3.5.0-21.32 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-22-generic 3.5.0-22.34 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-23-generic 3.5.0-23.35 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-24-generic 3.5.0-24.37 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-25-generic 3.5.0-25.39 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-26-generic 3.5.0-26.42 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
iF linux-image-3.5.0-28-generic 3.5.0-28.48 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
    
por carmatt95 22.05.2013 / 06:30

9 respostas

188
% bl0ck_qu0te%

Ok, então, da saída de /etc/fstab que você postou, parece que o seu /boot está montado em uma partição separada e na saída de < strong> df -h , essa partição está cheia. Isso ocorre porque há kernels antigos instalados que não são necessários; Você pode dizer que, olhando para a saída de dpkg -l | grep linux-image que você postou, onde você pode ver mais de uma " linux-image " com diferentes versões. Precisamos remover as versões antigas.

Primeiro, quero que você execute o comando uname -r em um terminal. Isso mostrará a versão do kernel que você está usando no momento. Nós nunca queremos remover essa versão do kernel. O comando dirá algo como isto 3.5.0-26-generic . Tome nota desse número, 26 ! Os seguintes comandos irão assumir que esse é o kernel que você está executando.

O comando para remover uma versão antiga do kernel é:

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

... onde os caracteres x são números. Então, no seu caso, porque você tem muitas versões antigas (17, 18, 19, etc ...), nós teríamos que rodar esse comando para cada uma das versões, assim:

  • sudo apt-get purge linux-image-3.5.0-17-generic
  • sudo apt-get purge linux-image-3.5.0-18-generic
  • sudo apt-get purge linux-image-3.5.0-19-generic

... e assim por diante. Mas há uma maneira de fazer tudo isso por meio de um comando. O comando é este ( NÃO EXECUTE O COMANDO AINDA! Leia o seguinte. ):

sudo apt-get purge linux-image-3.5.0-{17,18,19,21,22,23,24}-generic

Este comando irá remover as versões mencionadas nos parênteses. Não incluí as versões 25, 26 e 28 pelas seguintes razões:

  • Não incluiu 26 obviamente porque essa é a versão do kernel que você está executando no momento! Essa é a versão que obtivemos do comando uname -r , lembra? Nós nunca queremos remover isso!
  • Não incluiu 28 porque é esse para o qual seu upgrade estava tentando fazer upgrade (você pode dizer isso a partir do iF status ao lado dele, o que significa que ele é "parcialmente configurado").
  • Não incluiu 25 porque geralmente é uma boa prática deixar pelo menos uma versão antiga. Então, como você está executando 26, nós manteremos 25, então não vamos incluí-lo no comando acima.

Portanto, se o último número em uname -r for 26 (ou 28, ou mesmo 25), é seguro executar o comando acima. Digite sua senha quando solicitado e digite y quando solicitado. Isto irá mostrar um monte de linhas, e acabará por voltar para o prompt de comando (no seu caso, matty@matty-G41M-ES2L:~$ ), esperemos que sem erros. Quando terminar, faça df -h e observe a última linha, aquela que começa com /dev/sda1 . Você deve descobrir que agora tem mais espaço e que a porcentagem usada é menor que 100%, como era antes. Agora você pode continuar com a atualização novamente.

    
por Alaa Ali 23.05.2013 / 09:57
42

Você pode instalar o Ubuntu-Tweak.Para instalar, siga os seguintes passos:

Abra o terminal. Adicione o repositório necessário com o comando:

sudo add-apt-repository ppa:tualatrix/ppa

Atualize a lista de softwares com o comando:

sudo apt-get update

Finalmente, instale o Ubuntu Teak com o comando:

sudo apt-get install ubuntu-tweak

Depois disso, abra dash e digite "ubuntu tweak".

Em seguida, vá para a guia janitor e selecione as caixas de seleção Apps , Personal e System e clique no botão clean na parte inferior direita.

    
por devWeek 11.06.2014 / 17:15
16

Uma maneira rápida de remover todos os kernels e cabeçalhos não utilizados (excluindo o kernel atual em execução) foi apontada por @Lekensteyn em sua resposta à pergunta Como faço para liberar mais espaço em / inicializar? :

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

Isso deve liberar espaço suficiente para você atualizar.

    
por marianoju 30.09.2015 / 10:00
6

Há um relatório de bug sobre o problema aqui: link

Sinta-se à vontade para dizer se "este bug também afeta você", para que possa receber mais atenção.

    
por alci 29.10.2014 / 10:38
3

No meu sistema Ubuntu eu sigo um método similar ao postado, mas é um pouco mais simples e limpa mais espaço no kernel, etc.

  1. Eu verifico o kernel em execução que estou usando, pois é imperativo não interferir nisso.

    uname -a
    
  2. Então, eu vejo / boot com o objetivo de remover todos os arquivos relacionados ao kernel que não estão não relacionados diretamente ao kernel em execução. Isso me dá uma lista de todas as versões do kernel que eu quero remover, por exemplo: 3.5.0-17, 3.5.0-18

    ls -l /boot
    
  3. Agora eu pego a primeira versão do kernel na minha lista de eliminação e encontro todos os pacotes relacionados a ela.

    dpkg -l | grep 3.5.0-17
    
  4. Purgue-os do sistema

    sudo apt-get purge <list of packages separated by spaces>
    
  5. volte para 3 e selecione a próxima versão do kernel na minha lista de eliminação.

  6. Concluído

por Kiat 18.07.2014 / 11:59
1

Eu estava recebendo este erro, este artigo ajudou.

Eu usei df -h para identificar que a inicialização estava cheia, uname -r para a versão e usei a string purge listada acima para remover os kernels antigos. purga de kernel único funcionou, multi não (para mim).

Eu encontrei os arquivos na coisa das janelas; Eu não consegui deletá-los, tive que usar o terminal, mas ele me mostrou as versões antigas que eu tinha lá.

Eu não tenho idéia do porque / boot (sda2) é particionado e porque é tão pequeno. mas agora eu posso usar o updater Ubuntu novamente.

Eu tive um pequeno sucesso com sudo apt-get update , sudo apt-get upgrade , sudo apt-get clean , também tentei o software livre Bleachbit. Use a string de limpeza, mas não na sua versão atual. Espero que isso ajude alguém.

    
por Brian P 13.08.2014 / 04:36
0

Você tem algum pacote de imagem do kernel antigo instalado, que não está sendo usado? Aqueles podem ocupar espaço em / boot. Eu recomendaria revisar o conjunto de pacotes do kernel instalados com um comando como o seguinte:

dpkg -l "linux-image*" | grep "^i"

Isso deve fornecer uma visão geral do conjunto de pacotes de imagens do kernel instalados. Para os pacotes linux-image que não estão sendo usados e que não seriam necessários para fins de recuperação - por exemplo, por exemplo, Eu gosto de manter pelo menos uma versão do kernel por trás da versão ativa instalada, para recuperação - caso contrário, você poderia remover quaisquer pacotes não utilizados, usando sua ferramenta de empacotamento favorita, como o aptitude.

Também recomendo dar uma olhada nos cabeçalhos in > linux-image-extras (se aplicável), também linux-source , e pacotes linux-tools , que podem ser instalados junto com qualquer pacote linux-image não utilizado.

    
por Sean Champ 23.05.2013 / 09:27
0

Eu duvido que muitas pessoas, se houver alguma, irão se deparar com este problema, mas eu estou colocando aqui para documentação, caso alguém precise.

Meu problema é que eu estava compilando diferentes kernels personalizados até ficar sem espaço. A maneira que eu tive de limpar o espaço foi entrar em cada diretório do kernel em que eu estava trabalhando e executar um sudo make clean .

  • $ cd /usr/src Diretório onde a fonte do kernel é
  • $ cd linux-image-custom_kernel_name
  • $ sudo make clean
por Jacksonkr 10.11.2016 / 15:41
0

A resposta do marianoju realmente ajudou, exceto que recebi um erro usando apt purge . Não consegui encontrar uma opção de força.

Combinar o nível mais baixo do dpkg me permitiu continuar:

sudo dpkg -r $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' \
               | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
    
por PascalVKooten 21.10.2018 / 22:14