Problema de disco completo no Ubuntu 16.04 (Xenial Xerus) [duplicado]

13

Eu quero fazer atualizações, mas parece que meu disco está cheio. Eu tentei:

sudo apt-get install -f

mas me deu a seguinte saída:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
checkbox-ng fonts-inconsolata gir1.2-gconf-2.0 ko.tex-extra-hlfont
latex-sanskrit libarchive-extract-perl libboost-date-time1.54.0
libboost-system1.54.0 libcmis-0.4-4 libcolamd2.8.0 libept1.4.12 libglamor0
libglew1.10 libglewmx1.10 libgnome-desktop-3-7 libgphoto2-port10 libilmbase6
libimobiledevice4 libintl-perl libisl10 libllvm3.4 liblog-message-perl
liblog-message-simple-perl libmagick++5 libmagickcore5 libmagickcore5-extra
libmagickwand5 libmbim-glib0 libmodule-pluggable-perl libmodule-runtime-perl
libntdb1 libopenexr6 liborcus-0.6-0 libparams-classify-perl libpocketsphinx1
libpod-latex-perl libpoppler44 libprocps3 libprotobuf8 libprotoc8
libqmi-glib0 libqpdf13 libqt5qml-graphicaleffects libqt5sensors5
libqt5webkit5-qmlwebkitplugin libraw9 librhythmbox-core8 libsphinxbase1
libspice-server1 libsystemd-journal0 libsystemd-login0 libterm-ui-perl
libtext-soundex-perl libthumbnailer0 libunityvoice1 libupstart1 libxdelta2
libxtables10 linux-headers-3.13.0-29 linux-headers-3.13.0-29-generic
linux-headers-3.13.0-62 linux-headers-3.13.0-62-generic
linux-headers-3.13.0-95 linux-headers-3.13.0-95-generic
linux-headers-4.4.0-36 linux-headers-4.4.0-36-generic linux-headers-4.4.0-37
linux-headers-4.4.0-37-generic linux-headers-4.4.0-38
linux-headers-4.4.0-38-generic linux-headers-4.4.0-39
linux-headers-4.4.0-39-generic linux-headers-4.4.0-40
linux-headers-4.4.0-40-generic linux-headers-4.4.0-41
linux-headers-4.4.0-41-generic linux-headers-4.4.0-44
linux-headers-4.4.0-44-generic linux-headers-4.4.0-46
linux-headers-4.4.0-46-generic linux-headers-4.4.0-49
linux-headers-4.4.0-49-generic linux-headers-4.4.0-51
linux-headers-4.4.0-51-generic linux-headers-4.4.0-52
linux-headers-4.4.0-52-generic linux-headers-4.4.0-53
linux-image-3.11.0-19-generic linux-image-4.4.0-36-generic
linux-image-4.4.0-37-generic linux-image-4.4.0-38-generic
linux-image-4.4.0-39-generic linux-image-4.4.0-40-generic
linux-image-4.4.0-41-generic linux-image-4.4.0-44-generic
linux-image-4.4.0-46-generic linux-image-4.4.0-49-generic
linux-image-4.4.0-51-generic linux-image-4.4.0-52-generic
linux-image-extra-3.11.0-19-generic linux-image-extra-4.4.0-36-generic
linux-image-extra-4.4.0-37-generic linux-image-extra-4.4.0-38-generic
linux-image-extra-4.4.0-39-generic linux-image-extra-4.4.0-40-generic
linux-image-extra-4.4.0-41-generic linux-image-extra-4.4.0-44-generic
linux-image-extra-4.4.0-46-generic linux-image-extra-4.4.0-49-generic
linux-image-extra-4.4.0-51-generic linux-image-extra-4.4.0-52-generic m-tx
musixtex perlmagick pmx python-commandnotfound python-gdbm python-imaging-tk
python-ntdb python3-checkbox qml-module-qtquick-dialogs
qml-module-qtquick-localstorage qml-module-qtquick-privatewidgets
qml-module-ubuntu-ui-extras-browser qtdeclarative5-dialogs-plugin
qtdeclarative5-localstorage-plugin qtdeclarative5-privatewidgets-plugin
qtdeclarative5-qtfeedback-plugin
qtdeclarative5-ubuntu-ui-extras-browser-plugin
qtdeclarative5-ubuntu-ui-extras-browser-plugin-assets
qtdeclarative5-window-plugin sphinx-voxforge-hmm-en sphinx-voxforge-lm-en
swath ubuntu-core-launcher unity-scope-audacious unity-scope-clementine
unity-scope-gmusicbrowser unity-scope-gourmet unity-scope-guayadeque
unity-scope-musique unity-voice-service xdelta
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
linux-headers-4.4.0-57 linux-headers-4.4.0-57-generic
The following NEW packages will be installed:
linux-headers-4.4.0-57 linux-headers-4.4.0-57-generic
0 upgraded, 2 newly installed, 0 to remove and 63 not upgraded.
2 not fully installed or removed.
Need to get 10,7 MB of archives.
After this operation, 77,8 MB of additional disk space will be used.
Do you want to continue? [O/n] o
Get:1 http://fr.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-4.4.0-57 all 4.4.0-57.78 [9 949 kB]
Get:2 http://fr.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-4.4.0-57-generic amd64 4.4.0-57.78 [779 kB]
Fetched 10,7 MB in 17s (610 kB/s)
(Reading database ... 1254217 files and directories currently installed.)
Preparing to unpack .../linux-headers-4.4.0-57_4.4.0-57.78_all.deb ...
Unpacking linux-headers-4.4.0-57 (4.4.0-57.78) ...
dpkg: error processing archive /var/cache/apt/archives/linux-headers 4.4.0-57_4.4.0-57.78_all.deb (--unpack):
unable to create '/usr/src/linux-headers-4.4.0-57/include/linux/capability.h.dpkg-new' (while processing './usr/src/linux-headers-4.4.0-57/include/linux/capability.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)
Preparing to unpack .../linux-headers-4.4.0-57-generic_4.4.0-57.78_amd64.deb ...
Unpacking linux-headers-4.4.0-57-generic (4.4.0-57.78) ...
dpkg: error processing archive /var/cache/apt/archives/linux-headers-4.4.0-57-generic_4.4.0-57.78_amd64.deb (--unpack):
error creating directory './usr/src/linux-headers-4.4.0-57-generic/include/config/cross/memory': 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-4.4.0-57_4.4.0-57.78_all.deb
 /var/cache/apt/archives/linux-headers-4.4.0-57-generic_4.4.0-57.78_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

df fornece esta saída:

 Filesystem     1K-blocks     Used Available Use% Mounted on
udev             1941224        0   1941224   0% /dev
tmpfs             392292     6416    385876   2% /run
/dev/sda5       20027728 17160304   1827020  91% /
tmpfs            1961444     2952   1958492   1% /dev/shm
tmpfs               5120        4      5116   1% /run/lock
tmpfs            1961444        0   1961444   0% /sys/fs/cgroup
/dev/sda6      139057128 45511572  86458812  35% /home
cgmfs                100        0       100   0% /run/cgmanager/fs
tmpfs             392292      108    392184   1% /run/user/1001

sudo fdisk -l dá isto:

Disk /dev/ram0: 64 MiB, 67108864 bytes, 131072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

 (edit: 15 more ram devices with the same size)

Disk /dev/sda: 232,9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xe0a42c14

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1              63     80324     80262  39,2M de Dell Utility
/dev/sda2  *        81920   1622015   1540096   752M  7 HPFS/NTFS/exFAT
/dev/sda3         1622016 160710655 159088640  75,9G  7 HPFS/NTFS/exFAT
/dev/sda4       160712702 488394751 327682050 156,3G  5 Extended
/dev/sda5       160712704 201673641  40960938  19,5G 83 Linux
/dev/sda6       201674752 484489205 282814454 134,9G 83 Linux
/dev/sda7       484489216 488394751   3905536   1,9G 82 Linux swap / Solaris

ls /usr/src output:

bcmwl-6.30.223.248+bdcom         linux-headers-3.13.0-66-generic  linux-headers-3.13.0-86-generic  linux-headers-3.8.0-35          linux-headers-4.4.0-44-generic
linux-headers-3.13.0-29          linux-headers-3.13.0-67          linux-headers-3.13.0-87          linux-headers-4.4.0-36          linux-headers-4.4.0-46
linux-headers-3.13.0-29-generic  linux-headers-3.13.0-67-generic  linux-headers-3.13.0-87-generic  linux-headers-4.4.0-36-generic  linux-headers-4.4.0-46-generic
linux-headers-3.13.0-46          linux-headers-3.13.0-74          linux-headers-3.13.0-88          linux-headers-4.4.0-37          linux-headers-4.4.0-49
linux-headers-3.13.0-46-generic  linux-headers-3.13.0-74-generic  linux-headers-3.13.0-88-generic  linux-headers-4.4.0-37-generic  linux-headers-4.4.0-49-generic
linux-headers-3.13.0-62          linux-headers-3.13.0-78          linux-headers-3.13.0-93          linux-headers-4.4.0-38          linux-headers-4.4.0-51
linux-headers-3.13.0-62-generic  linux-headers-3.13.0-78-generic  linux-headers-3.13.0-93-generic  linux-headers-4.4.0-38-generic  linux-headers-4.4.0-51-generic
linux-headers-3.13.0-63          linux-headers-3.13.0-80          linux-headers-3.13.0-94          linux-headers-4.4.0-39          linux-headers-4.4.0-52
linux-headers-3.13.0-63-generic  linux-headers-3.13.0-80-generic  linux-headers-3.13.0-94-generic  linux-headers-4.4.0-39-generic  linux-headers-4.4.0-52-generic
linux-headers-3.13.0-64          linux-headers-3.13.0-82          linux-headers-3.13.0-95          linux-headers-4.4.0-40          linux-headers-4.4.0-53
linux-headers-3.13.0-64-generic  linux-headers-3.13.0-82-generic  linux-headers-3.13.0-95-generic  linux-headers-4.4.0-40-generic
linux-headers-3.13.0-65          linux-headers-3.13.0-85          linux-headers-3.8.0-19           linux-headers-4.4.0-41
linux-headers-3.13.0-65-generic  linux-headers-3.13.0-85-generic  linux-headers-3.8.0-32           linux-headers-4.4.0-41-generic
linux-headers-3.13.0-66          linux-headers-3.13.0-86          linux-headers-3.8.0-34           linux-headers-4.4.0-44

Editar: Conforme sugerido nos comentários e nas perguntas abaixo, aqui está a df -i output:

Filesystem      Inodes   IUsed   IFree IUse% Mounted on
udev            485306     582  484724    1% /dev
tmpfs           490361     854  489507    1% /run
/dev/sda5      1281120 1278500    2620  100% /
tmpfs           490361      17  490344    1% /dev/shm
tmpfs           490361       6  490355    1% /run/lock
tmpfs           490361      18  490343    1% /sys/fs/cgroup
/dev/sda6      8839168   81878 8757290    1% /home
cgmfs           490361      14  490347    1% /run/cgmanager/fs
tmpfs           490361      45  490316    1% /run/user/1001
    
por gfat2016 21.12.2016 / 19:23

6 respostas

19

Você tem um lote de kernels instalados, eles ocupam muito espaço (300 MiB por kernel). Você também tem um bom número de outros pacotes que foram instalados como dependências e, por várias razões, não são mais necessários.

Você pode limpar com segurança tudo isso com o seguinte comando:

sudo apt autoremove

Então, como você explicou nos comentários, depois de fazer exatamente isso, você recebeu o seguinte erro:

The following packages have unmet dependencies:
 linux-headers-generic : Depends: linux-headers-4.4.0-57-generic but it is not installed
E: Unmet dependencies. Try using -f.

Você está em uma situação difícil! Antes de limpar os pacotes, o APT quer reparar os atuais, isto é, instalar os pacotes que faltam. Mas não há espaço para isso!

O que precisa ser feito nesse caso para liberar espaço em disco por outros meios. Talvez você tenha arquivos antigos e arquivos temporários que você pode remover. Mas como o seu comando acima listou muitos pacotes que não são mais necessários , podemos remover alguns deles manualmente, usando o comando dpkg .

Observe que usar dpkg sem pensar sobre isso pode ser perigoso.

Os linux-image e linux-image-extra ocupam muito espaço, então vamos pegar alguns da lista de não mais necessários e removê-los com dpkg :

sudo dpkg --remove linux-image-extra-4.4.0-36-generic
sudo dpkg --remove linux-image-4.4.0-36-generic
sudo dpkg --remove linux-image-extra-4.4.0-37-generic
sudo dpkg --remove linux-image-4.4.0-37-generic
sudo dpkg --remove linux-image-extra-4.4.0-38-generic
sudo dpkg --remove linux-image-4.4.0-38-generic

Edit: Acontece que isso não resolveu o problema. Depois de discutir no chat, e como sugerido por outros aqui, você correu df -i e descobriu que sua partição pode "apenas" armazenar 1,2 milhão de arquivos, e todos os slots foram usados.

Os pacotes linux-headers não são tão grandes quanto linux-image , mas eles contêm um lote de arquivos. Então vamos pegar alguns da lista de não mais necessários e removê-los com dpkg :

sudo dpkg --remove linux-headers-4.4.0-36 linux-headers-4.4.0-36-generic
sudo dpkg --remove linux-headers-4.4.0-37 linux-headers-4.4.0-37-generic
sudo dpkg --remove linux-headers-4.4.0-38 linux-headers-4.4.0-38-generic

Agora que o espaço em disco e os inodes foram liberados, os pacotes ausentes podem ser instalados:

sudo apt install linux-headers-4.4.0-57 linux-headers-4.4.0-57-generic

E agora que o APT está feliz que todas as dependências de pacotes estão instaladas e tudo está bem na máquina, podemos dizer para remover automaticamente todos os pacotes que não são mais necessários:

sudo apt autoremove
    
por Adrien Beau 21.12.2016 / 19:34
4

Você precisa liberar algum espaço de alguma forma.

Infelizmente, com o apt você tem uma pegadinha 22, você não pode usar a maioria dos recursos apt até que o "apt-get -f install" seja bem-sucedido e o "apt-get -f install" não seja bem-sucedido até que você libere algum espaço em disco. Portanto, apesar do que outras respostas aqui dizem tentar remover pacotes com o apt não é um bom começo.

Primeiro, tente "apt-get clean". Isso limpará os arquivos do pacote baixado e poderá liberar espaço suficiente para que o apt-get -f install seja bem-sucedido.

Se isso não for suficiente, sugiro remover alguns dos kernels antigos com dpkg, por exemplo

dpkg -r --force-depende do linux-image-3.11.0-19-genérico

Uma vez que o "apt-get -f install" seja executado com sucesso, você poderá executar o "apt-get autoremove", como outras pessoas sugeriram, antes de continuar com a atualização.

    
por Peter Green 21.12.2016 / 22:17
3

Eu sugiro que você instale o bleachbit. Isso ajudará você a recuperar muito espaço.

    
por Arijit Chatterjee 21.12.2016 / 19:27
2

Se ficar sem inodes não é o seu problema, para liberar espaço em disco eu também removerei primeiro todos os kernels e cabeçalhos antigos. É uma boa idéia manter seu kernel atual e um dos kernels mais antigos como um substituto.

Para ver uma lista de seus kernels atualmente instalados, dê uma olhada em /boot

ls -la /boot

Remova todos os kernels mais antigos

sudo apt-get purge linux-image-<kernel number>

sudo apt-get purge linux-headers-<kernel number>

Você também pode limpar seu cache do apt para liberar algum espaço.

sudo apt-get clean

Em seguida, tente novamente

sudo apt-get update

sudo apt-get upgrade

E se você quiser

sudo apt-get dist-upgrade

Se você quiser ver quanto espaço cada pasta está ocupando na unidade

du -sh *

Esteja ciente de que os resultados não são ordenados pelo maior / menor primeiro, então role para cima / baixo na saída para verificar o tamanho das pastas. Navegue pelo seu sistema de arquivos para procurar pastas grandes.

    
por hatterman 21.12.2016 / 20:15
1

Como outros já mencionaram, você deve limpar um pouco - especialmente remover os kernels antigos.

Mas em uma nota mais geral (além do meu pequeno comentário sobre usar muitos inodes), eu gostaria de adicionar o seguinte:

Nos sistemas de arquivos Linux / Unix - como ext3 e ext4 - uma porcentagem da capacidade total de uma partição é reservada para o root root precisar fazer uma limpeza de mola. Por padrão, 5% de cada sistema de arquivos são reservados. (Isto é um dos motivos pelos quais o df -command sempre parece mostrar menos espaço livre, do que você acho que você deve ter ...)

Com os grandes discos de hoje de 500 GB ou 1 TB ou mais, 5% é na verdade um pouco demais. E também depende do sistema de arquivos ... Se você tiver uma partição separada para / (root), / home , / usr , / var e / tmp ; não todos deles precisam de 5% para uso somente raiz. É recomendado / - e é provavelmente uma boa ideia para / var e talvez / tmp também - mas para / home e / usr , você provavelmente precisaria de muito menos (talvez apenas 1% ou nenhum).

Você pode usar o comando dumpe2fs /dev/sd.. | grep "Reserved block count" para ver como os "blocos" (kilobytes? - depende) estão reservados.

Ao criar um sistema de arquivos, você pode especificar a porcentagem de blocos reservados com a opção -m . Por apenas 1%, usa: mkfs.ext4 -v -m1 /dev/sd.. Não apenas "tente" este comando, ele é destrutivo e formatará sua partição!

Você pode usar a opção tune2fs com -m para alterar a porcentagem reservada de um sistema de arquivos existente: tune2fs -m1 /dev/sd.. .

Em vez de -m , a -r -option para especificar o número real de blocos reservados por count .

Você pode conseguir um pouco de espaço extra dessa maneira ...

    
por Baard Kopperud 21.12.2016 / 20:05
1

Esse é um problema conhecido e resolvido - como excluir todos os bits e peças de um kernel antigo instalado e nada mais? Como um acaba com mais espaço em disco e um sistema de trabalho? Use purge-old-kernels do pacote byobu . Leia man purge-old-kernels primeiro.

Se o disco estiver esgotado em 100%, escolha o arquivo grande mais antigo (número de versão mais baixo), rm apenas esse arquivo e tente purge-old-kernels novamente.

    
por waltinator 21.12.2016 / 22:51