Eu tento fazer, do-release-upgrade
mas então eu recebo:
Espaço livre em disco insuficiente
A atualização foi interrompida. A atualização precisa de um total de 25,7 M de espaço livre no disco '/ boot'. Libere pelo menos um espaço adicional em disco de 25,7 M em '/ boot'. Esvazie o lixo e remova pacotes temporários de instalações anteriores usando o 'sudo apt-get clean'.
Saída de df
:
237251272 214797108 10402504 96% /
udev 488120 4 488116 1% /dev
tmpfs 198676 668 198008 1% /run
none 5120 0 5120 0% /run/lock
none 496684 0 496684 0% /run/shm
/dev/sda1 233191 225867 0 100% /boot
Como é que não resta espaço no boot? Aqui está a saída de ls -as /boot
:
total 221839
4 .
4 ..
645 abi-2.6.32-34-generic-pae
698 abi-2.6.35-30-generic-pae
727 abi-2.6.38-12-generic-pae
727 abi-3.0.0-12-generic-pae
727 abi-3.0.0-13-generic-pae
727 abi-3.0.0-14-generic-pae
727 abi-3.0.0-15-generic-pae
727 abi-3.0.0-16-generic-pae
727 abi-3.0.0-17-generic-pae
727 abi-3.0.0-19-generic-pae
761 abi-3.0.0-20-generic-pae
115 config-2.6.32-34-generic-pae
128 config-2.6.35-30-generic-pae
136 config-2.6.38-12-generic-pae
140 config-3.0.0-12-generic-pae
140 config-3.0.0-13-generic-pae
140 config-3.0.0-14-generic-pae
140 config-3.0.0-15-generic-pae
140 config-3.0.0-16-generic-pae
140 config-3.0.0-17-generic-pae
140 config-3.0.0-19-generic-pae
140 config-3.0.0-20-generic-pae
5 grub
10773 initrd.img-2.6.32-34-generic-pae
13619 initrd.img-2.6.35-30-generic-pae
15365 initrd.img-2.6.38-12-generic-pae
16481 initrd.img-3.0.0-12-generic-pae
16487 initrd.img-3.0.0-13-generic-pae
16501 initrd.img-3.0.0-14-generic-pae
16476 initrd.img-3.0.0-15-generic-pae
16481 initrd.img-3.0.0-16-generic-pae
16478 initrd.img-3.0.0-17-generic-pae
12 lost+found
174 memtest86+.bin
176 memtest86+_multiboot.bin
1700 System.map-2.6.32-34-generic-pae
1841 System.map-2.6.35-30-generic-pae
2115 System.map-2.6.38-12-generic-pae
2141 System.map-3.0.0-12-generic-pae
2141 System.map-3.0.0-13-generic-pae
2143 System.map-3.0.0-14-generic-pae
2146 System.map-3.0.0-15-generic-pae
2147 System.map-3.0.0-16-generic-pae
2147 System.map-3.0.0-17-generic-pae
2148 System.map-3.0.0-19-generic-pae
2149 System.map-3.0.0-20-generic-pae
2 vmcoreinfo-2.6.32-34-generic-pae
2 vmcoreinfo-2.6.35-30-generic-pae
2 vmcoreinfo-2.6.38-12-generic-pae
2 vmcoreinfo-3.0.0-12-generic-pae
2 vmcoreinfo-3.0.0-13-generic-pae
2 vmcoreinfo-3.0.0-14-generic-pae
2 vmcoreinfo-3.0.0-15-generic-pae
2 vmcoreinfo-3.0.0-16-generic-pae
2 vmcoreinfo-3.0.0-17-generic-pae
2 vmcoreinfo-3.0.0-19-generic-pae
2 vmcoreinfo-3.0.0-20-generic-pae
4092 vmlinuz-2.6.32-34-generic-pae
4347 vmlinuz-2.6.35-30-generic-pae
4567 vmlinuz-2.6.38-12-generic-pae
4675 vmlinuz-3.0.0-12-generic-pae
4676 vmlinuz-3.0.0-13-generic-pae
4681 vmlinuz-3.0.0-14-generic-pae
4698 vmlinuz-3.0.0-15-generic-pae
4700 vmlinuz-3.0.0-16-generic-pae
4700 vmlinuz-3.0.0-17-generic-pae
4703 vmlinuz-3.0.0-19-generic-pae
4705 vmlinuz-3.0.0-20-generic-pae
Saída de uname -a
:
Linux kitsch 3.0.0-17-generic-pae #30-Ubuntu SMP Thu Mar 8 17:53:35 UTC 2012 i686 i686 i386 GNU/Linux
upgrade
kernel
disk-usage
braçadeira
fonte
fonte
ls -l /boot
euname -a
para sua pergunta.dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'
à sua pergunta.ls -as /boot
pode ser útil. Incluirá apenas os tamanhos dos arquivos.Respostas:
Sua partição / boot é preenchida com kernels antigos. Às vezes, faz isso, sem saber por que nunca é corrigido. Você pode remover facilmente os kernels antigos se souber em quais pacotes eles entraram.
Primeiro verifique
uname -a
para verificar sua versão atual.Em seguida, execute o seguinte comando:
Este comando listará todos os pacotes que você não precisa mais. Não gosto de removê-los automaticamente, gosto de estar no controle quando se trata de remover os kernels. Portanto, para cada pacote listado, faça o seguinte:
Intermezzo
Esse intervalo descreve mais detalhadamente como os comandos funcionam e tentam corrigir um problema
linux-libc-dev:amd64
. A maioria dos usuários pode pular este parágrafo.dpkg -l 'linux-*'
listar todos os pacotes que têm um nome começando com 'linux-'sed '/^ii/!d; remove all lines that do *not* start with
ii`uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/"
encontre a versão atual do kernel em execução/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d
Remova todas as linhas, exceto aquelas que contêm o número da versão atual do kernel em execuçãos/^[^ ]* [^ ]* \([^ ]*\).*/\1/
Para cada lista de linhas, apenas o nome do pacote/[0-9]/!d
Remova as linhas que não contêm números.Para corrigir o problema de Frederick Nord, acho que o comando pode ser alterado da seguinte maneira:
Basicamente, ele adiciona um filtro extra:
linux-headers
oulinux-image
/Intermezzo
Onde
some-kernel-package
pode ser substituído por um dos pacotes listados. Apenas tome cuidado para não remover os pacotes do kernel que estão em uso atual (conforme listado pelouname -a
) por exemplo.sudo apt-get purge -y linux-headers-3.0.0-12
etc.Ele pode ser automatizado ainda mais usando o comando xargs, mas eu não gosto disso. É uma coisa pessoal. No entanto, aqui está o comando para fazer isso:
É assim que se
/boot
parece, um kernel sobressalente (2.6.38-11), por precaução, e o 3.2.0-24 atual:E uso do sistema de arquivos:
fonte
It does that sometimes, not sure why it is never fixed
O Ubuntu tomou a decisão, para o bem ou para o mal, de fornecer novos kernels regulares como novos pacotes, e não como atualizações dos pacotes existentes, para dar a opção de ter vários kernels instalados e alternar entre eles à vontade. Eu concordo que essa suposição não se ajusta aos 95% das pessoas que querem apenas o kernel mais recente (e talvez um fallback em caso de novos problemas de inicialização) e que não desejam gerenciar os kernels instalados. Talvez no futuro o Ubuntu mude esse comportamento. Por enquanto, verifique se o seu / boot é enorme.sudo apt-get autoremove
fez o truque para mim, limpou com êxito todos os pacotes de kernel não utilizados.
fonte
man apt-get
autoremove é usado para remover pacotes que foram instalados automaticamente para satisfazer dependências de alguns pacotes e que não são mais necessários. um kernel não seria instalado para satisfazer dependências, eles são instalados durante as atualizações./dev/sda1, 240M total, 171M used, 57M free, 75% used /boot
depois:/dev/sda1, 240M total, 129M used, 98M free, 57% used /boot
Equivalente à resposta aceita - outra maneira (possivelmente) mais fácil é instalar a
ubuntu-tweak
ferramenta, ela pode ser baixada aqui . Vá para "Janitor" e selecione "Old Kernel" para limpar. Isso pode ser feito em alguns cliques. (testado na área de trabalho 14.04)fonte
/boot
acontecem o tempo todo, então essa é a minha solução favorita - aplicativo fácil de executar que faz o trabalho com um clique.Comparado a outras respostas da GUI aqui, a vantagem desta resposta é que o Ubuntu Bash nativo é usado sem a instalação de aplicativos de terceiros.
Solução baseada em Zenity e Bash
O Zenity fornece uma interface gráfica agradável ao terminal para processar uma lista e selecionar itens com botões de opção :
O kernel atual com o qual você inicializou não pode ser removido e não está incluído na lista. O tamanho relatado é quanto será salvo no
/boot
diretório. Mais é salvo no seu disco porque os binários do kernel também residem em outras áreas. 27 de julho de 2017 nota: Os diretórios/usr/src/*kernel_version*
e/lib/modules/*kernel_version*
agora também estão incluídos.A data de modificação é descoberta usando o
stat
comando No meu sistema, essa data é "tocada" toda vez que o kernel é inicializado usando este ( como descobrir quando uma versão específica do kernel foi inicializada pela última vez? ) Cron reboot script. No entanto, no seu sistema, a data será a data de lançamento do kernel, não a última vez que você o inicializou.apt-get purge
dá a você a chance de abortarVocê terá a oportunidade final de visualizar tudo o que será eliminado e ver o espaço total em disco (um tanto enganoso) que será recuperado:
O código
Copiar este código a um arquivo executável chamado
rm-kernels
em/usr/local/bin
:NOTA: Você precisa de permissão sudo para criar o arquivo, então use:
Para tornar o arquivo executável, use:
NOTA: Para uma versão em servidor (baseada em texto, e não GUI), consulte: Como removo versões antigas do kernel para limpar o menu de inicialização?
28 de julho de 2017 Atualizações
O tamanho calculado de cada kernel foi obtido, dos
/boot/*kernel_version*
quais 5 arquivos totalizando ~ 50 MB. A fórmula foi alterada para incluir os arquivos em/usr/src/*kernel_version*
e/lib/modules/*kernel_version*
. O tamanho calculado para cada kernel é agora ~ 400 MB. O código acima pararm-kernels
erm-kernels-server
foi atualizado. No entanto, as telas de amostra acima ainda não refletem essas alterações.O padrão é estimar o tamanho dos arquivos dos cabeçalhos do linux em 125 MB e da imagem do linux em 220 MB, pois
du
pode ser extremamente lento, a menos que os arquivos estejam no cache. Para obter o tamanho real, usedu
qualquer parâmetro no script.O total de todos os tamanhos de kernel (excluindo a versão atual em execução que não pode ser removida) agora é exibido na barra de título.
A caixa de diálogo usada para exibir a Data de Último Acesso de cada Kernel . Essa data pode ser sobrescrita em massa para todos os kernels durante operações de backup ou similares. A caixa de diálogo agora mostra a Data de modificação .
fonte
Você pode lidar facilmente com kernels através do gerenciador de pacotes sinápticos. Mas primeiro você deve saber um nome de versão do kernel usado atualmente, no prompt do terminal:
linux@linux-desktop:~$ uname -r 4.4.0-75-generic
Portanto, pelo menos nesta versão você deve manter-se intocado. Abra o sináptico e comece a preencher o espaço reservado para filtro rápido, como mostrado abaixo: Agora você pode selecionar todos os pacotes que deseja excluir e fazer o seguinte: Marque para remoção completa -> Aplicar . Eu sugeriria manter pelo menos um pacote de kernel atual mais recente e um kernel anterior. Por exemplo, neste caso, você pode se livrar com segurança de linux-image-4.4.0-66-generic e linux-image-extra-4.4.0-66-generic , mas é bom manter 4.4.0-72 e, é claro, 4.4.0-75 .fonte
Para facilitar a linha de comando:
https://github.com/erichs/bootnukem
Então
fonte
Funciona no Linux Mint 18.3 (baseado no Ubuntu 16.04).
sudo apt-get purge $(dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | head -n -1) --assume-yes
Fonte: https://ubuntuforums.org/showthread.php?t=2248846&p=13146650#post13146650
fonte