“Não há espaço disponível no dispositivo” ao instalar os pacotes, mas ainda tenho espaço

4

Seja por meio do gerenciador de atualização ou pelo terminal, eu erro.

Quando eu tento sudo apt-get update && sudo apt-get upgrade :

Fetched 1,024 kB in 20s (51.0 kB/s) 
Reading package lists... Done 
Reading package lists... Done 
Building dependency tree Reading state information... Done 
You might want to run 'apt-get -f install' to correct these. 
The following packages have unmet dependencies: linux-headers-generic : 
Depends: linux-headers-3.13.0-29-generic but it is not installed 
E: Unmet dependencies. Try using -f.

E quando eu tento sudo apt-get -f install :

Unpacking linux-headers-3.13.0-29-generic (3.13.0-29.53) ... 
dpkg: error processing archive /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_amd64.deb 
(--unpack): unable to create /usr/src/linux-headers-3.13.0-29-generic/include/config/inotify/user.h.dpkg-new' (while processing./usr/src/linux-headers-3.13.0-29-generic/include/config/inotify/user.h'): No space left on device 
No apport report written because the error message indicates a disk full error dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) 
Errors were encountered while processing: /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_amd64.deb 
E: Sub-process /usr/bin/dpkg returned an error code (1)

Quando abro o centro de software do Ubuntu, recebo o seguinte texto:

  

O novo software não pode ser instalado porque há um problema com o   software atualmente instalado. Você quer reparar esse problema agora?

Eu tenho a opção de "reparar" ou "cancelar". Se eu clicar em "reparar", recebo o seguinte erro:

Package operation failed
the installation or removal of a software package failed.
(Reading database ... 417598 files and directories currently installed.) 
Preparing to unpack .../linux-headers-3.13.0-29-generic_3.13.0-29.53_amd64.deb ...   Unpacking linux-headers-3.13.0-29-generic (3.13.0-29.53) ... 
dpkg: error processing archive /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_amd64.deb 
(--unpack): unable to create /usr/src/linux-headers-3.13.0-29-generic/include/config/bug.h.dpkg-new' (while processing./usr/src/linux-headers-3.13.0-29-generic/include/config/bug.h'): No space left on device 
No apport report written because the error message indicates a disk full error dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) 
Errors were encountered while processing: /var/cache/apt/archives/linux-headers-3.13.0-29-generic_3.13.0-29.53_amd64.deb 
Error in function: dpkg: dependency problems prevent configuration of linux-headers-generic: linux-headers-generic depends on linux-headers-3.13.0-29-generic; however: Package linux-headers-3.13.0-29-generic is not installed.
dpkg: error processing package linux-headers-generic (--configure): dependency problems - leaving unconfigured 
dpkg: dependency problems prevent configuration of linux-generic: linux-generic depends on linux-headers-generic (= 3.13.0.29.35); however: Package linux-headers-generic is not configured yet.
dpkg: error processing package linux-generic (--configure): dependency problems - leaving unconfigured

O erro de disco cheio é estranho, porque nenhum dos meus discos está cheio. Eu sei disso porque quando eu executo df , recebo o seguinte:

Filesystem 1K-blocks      Used Available Use% Mounted on 
/dev/sda6   36178648  13162504  21155332  39% /
none               4         0         4   0% /sys/fs/cgroup
udev         3873544        12   3873532   1% /dev
tmpfs         776860      1384    775476   1% /run
none            5120         0      5120   0% /run/lock
none         3884300     25276   3859024   1% /run/shm
none          102400        68    102332   1% /run/user
/dev/sda2  124327968  42583252  81744716  35% /media/sudoer/48AEC994AEC97B48 
/dev/sda3  807468724 121812996 685655728  16% /media/sudoer/New Volume

O que eu faço neste momento? Desde já, obrigado.

    
por steve.hess 20.06.2014 / 05:18

5 respostas

15

No sistema de arquivos unix, o arquivo e o diretório têm duas partes: inode e dados.

Em inodes, são armazenadas informações sobre o arquivo, como permissão, proprietário, tempo de alteração, tempo de acesso e assim por diante.

O número total de inodes é limitado , então você pode obter No space left on device se atingir esse limite mesmo que o disco não esteja muito cheio.

Uso:

df -i

para ver os inodes, se você obtiver 100% para IUse e 0 IFree , isso significa que você tem muito pequeno arquivo.

Por exemplo, se você tiver 2 bilhões de arquivos cujo tamanho é 1 byte, poderá atingir o limite de inode, mas seu disco pode não estar totalmente cheio.

Se este for o seu caso, tente remover mais arquivos que puder e refazer apt-get update .

    
por Lety 22.06.2014 / 20:08
1

Eu também encontrei esse problema. De acordo com o prompt,

  

incapaz de criar   /usr/src/linux-headers-3.13.0-29-generic/include /...

Como explicado por Lety, "O número total de inodes é limitado". Então eu deletei alguns pacotes antigos de cabeçalhos de linux usando o gerenciador de pacotes, então /usr terá inodes suficientes, por exemplo sudo apt-get remove linux-headers-3.13.0-3* , então eu posso executar sudo apt-get install -f para continuar a instalação.

    
por Coiby 24.02.2017 / 00:47
0

Você pode limpar o espaço em / boot (remover cabeçalhos antigos do linux etc), com:

sudo apt-get autoremove
    
por dorien 16.04.2016 / 13:23
0

Como disse @Lety, o problema é como encontrar pastas com muitos arquivos minúsculos que desperdiçam todos os seus inodes (como df -i show).

Encontre kernels antigos ou pacotes pesados:

  1. dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", /(1024), }'|tail -n 10
  2. Mais fácil se wajig instalado: wajig sizes | tail

Use uname -r para encontrar o kernel atual.

Em seguida, tente:

  1. Reinicie ou tente ou se process (to be kill) abriu um arquivo grande que foi apagado desde então sudo lsof +L1
  2. Remover pacotes não utilizados sudo apt-get autoremove
  3. Limpar cache sudo apt-get clean ou manualmente em /var/cache/apt/archives
  4. Use apt-get remove ou sudo dpkg --purge para remover alguns kernels antigos ou pacotes pesados. Talvez você ainda receba unable to create /usr/src/linux-headers ...
  5. Se você chegar aqui, você usará essas técnicas lentas para encontrar a pasta culpada, mas primeiro vá para os suspeitos usuais usando algo como for i in /usr/src/*; do echo $i; find $i |wc -l; done :
    1. Pastas de cabeçalho do Linux: /usr/src/linux-headers-*
    2. Registros: /var/log
    3. Registros: /var/

Contadores de pastas específicas:

  • du --inodes -d 1 /usr/src/ | sort -n
  • sudo find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
  • sudo find . -maxdepth 1 -type d | grep -v '^\.$' | xargs -n 1 -i{} find {} -xdev -type f | cut -d "/" -f 2 | uniq -c | sort -n
por Pablo Bianchi 01.04.2017 / 00:47
0

Seu tmpfs pode estar cheio. /tmp mora na sua memória RAM ou troca. Você pode verificar quanto espaço está sendo usado executando:

$ df -h | grep tmpfs
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           3.9G   33M  3.9G   1% /dev/shm
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs           3.9G  3.9G     0 100% /tmp

Para aumentar temporariamente seu tamanho, tente o seguinte comando:

sudo mount -o remount,size=16G,noatime /tmp

Você também pode aumentar permanentemente o tamanho em /etc/fstab .

    
por Mateen Ulhaq 23.04.2018 / 08:15