apt-get: Não há espaço no dispositivo (12.04)

32

Li todos os tópicos que consegui encontrar - até mesmo os que dizem que a pergunta foi respondida em outro lugar, mas nenhum deles aborda o problema específico que estou tendo. O Update Manager executou e produziu erros relacionados à dependência não atendida e sugeriu o uso de apt-get install -f que falha com esta mensagem:

Unpacking linux-headers-3.5.0-36 (from .../linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb) ...
dpkg: error processing /var/cache/apt/archives/linux-headers-3.5.0-36_3.5.0-36.57~precise1_all.deb (--unpack):
 unable to create '/usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h.dpkg-new' (while processing './usr/src/linux-headers-3.5.0-36/arch/arm/mach-iop32x/include/mach/glantank.h'): No space left on device

Eu suspeito que as últimas 5 palavras Nenhum espaço deixado no dispositivo são significantes, mas df e du ambos mostram espaço adequado. Então, eu estou querendo saber qual dispositivo precisa de mais espaço?

Ouput de df -h

Filesystem 
Size Used Avail Use% 
Mounted on /dev/sda1 5.5G 4.4G 786M 86% 
/ udev 996M 4.0K 996M 1% 
/dev tmpfs 402M 880K 401M 1% 
/run none 5.0M 0 5.0M 0% /run/lock none 1004M 156K 1004M 1% 
/run/shm /dev/sdb1 30G 1.4G 27G 5% 
/home /dev/sdc1 299G 31G 268G 11% /media/HD-PCTU2 
    
por user172974 08.07.2013 / 15:20

4 respostas

44

Acabei de encontrar esse mesmo problema. Eu em outro lugar me deparei com uma menção de inodes, e corri no meu terminal para verificar o uso do inode:

  df -i 

Isso mostrou o uso do inodo em 99%. Então, enquanto meu disco tinha muito espaço sobrando, não consegui criar mais arquivos por causa do limite no número de inodes. Alguma limpeza de disco foi a solução para o meu problema.

    
por Kevin 24.02.2014 / 18:35
25

Estou pensando que sua partição de inicialização está cheia de imagens antigas do kernel, não deixando espaço para a nova apt-get está tentando instalar. Você pode digitar

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

em uma janela de terminal. Quando faço isso, recebo

ii  linux-headers-3.8.0-18                    3.8.0-18.28                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-18-generic            3.8.0-18.28                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-19                    3.8.0-19.30                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-19-generic            3.8.0-19.30                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-21                    3.8.0-21.32                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-21-generic            3.8.0-21.32                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-22                    3.8.0-22.33                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-22-generic            3.8.0-22.33                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-23                    3.8.0-23.34                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-23-generic            3.8.0-23.34                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-3.8.0-25                    3.8.0-25.37                            all          Header files related to Linux kernel version 3.8.0
ii  linux-headers-3.8.0-25-generic            3.8.0-25.37                            amd64        Linux kernel headers for version 3.8.0 on 64 bit x86 SMP
ii  linux-headers-generic                     3.8.0.25.43                            amd64        Generic Linux kernel headers

Desde que eu tenho alguns, eu poderia excluir alguns dos mais antigos com

sudo apt-get remove linux-headers-3.8.0-18

Se apt-get falhar porque falta algumas dependências de pacotes (que você não pode instalar devido à falta de inodes gratuitos), é possível recorrer a dpkg diretamente:

sudo dpkg --remove linux-headers-3.8.0-18

Faça isso algumas vezes para o seu mais antigo linux-headers-* e você deve ter espaço.

    
por Marc 08.07.2013 / 16:28
13

Eu usei sudo apt-get autoremove e ele removeu vários pacotes antigos de cabeçalhos de kernel. É bom ir depois disso.

    
por Frank Sfalanga Jr. 08.05.2015 / 23:31
0

Até onde sei, o limite dos inodes nos sistemas de arquivos ext * do Linux é de cerca de 4 bilhões, mas não menos, o que é uma enorme quantidade de arquivos. Então, seu problema é que algo está gerando muitos arquivos. Eu posso propor que você verifique primeiro isto: link Então você encontrará o que está preenchendo os inodes do seu FS. Eu posso propor também limpar o cache do apt:

sudo apt-get clean

e

sudo apt-get autoclean
    
por Stefan 30.04.2018 / 15:23