Minha /boot
partição está quase cheia e recebo um aviso toda vez que reinicio o sistema. Eu já excluí pacotes antigos do kernel (linux-headers ...); na verdade, fiz isso para instalar uma versão mais recente do kernel que vinha com as atualizações automáticas.
Depois de instalar essa nova versão, a partição está quase cheia novamente. Então, o que mais posso excluir? Existem outros arquivos associados às imagens antigas do kernel?
Aqui está uma lista de arquivos que estão na minha /boot
partição:
:~$ ls /boot/
abi-2.6.31-21-generic lost+found
abi-2.6.32-25-generic memtest86+.bin
abi-2.6.38-10-generic memtest86+_multiboot.bin
abi-2.6.38-11-generic System.map-2.6.31-21-generic
abi-2.6.38-12-generic System.map-2.6.32-25-generic
abi-2.6.38-8-generic System.map-2.6.38-10-generic
abi-3.0.0-12-generic System.map-2.6.38-11-generic
abi-3.0.0-13-generic System.map-2.6.38-12-generic
abi-3.0.0-14-generic System.map-2.6.38-8-generic
boot System.map-3.0.0-12-generic
config-2.6.31-21-generic System.map-3.0.0-13-generic
config-2.6.32-25-generic System.map-3.0.0-14-generic
config-2.6.38-10-generic vmcoreinfo-2.6.31-21-generic
config-2.6.38-11-generic vmcoreinfo-2.6.32-25-generic
config-2.6.38-12-generic vmcoreinfo-2.6.38-10-generic
config-2.6.38-8-generic vmcoreinfo-2.6.38-11-generic
config-3.0.0-12-generic vmcoreinfo-2.6.38-12-generic
config-3.0.0-13-generic vmcoreinfo-2.6.38-8-generic
config-3.0.0-14-generic vmcoreinfo-3.0.0-12-generic
extlinux vmcoreinfo-3.0.0-13-generic
grub vmcoreinfo-3.0.0-14-generic
initrd.img-2.6.31-21-generic vmlinuz-2.6.31-21-generic
initrd.img-2.6.32-25-generic vmlinuz-2.6.32-25-generic
initrd.img-2.6.38-10-generic vmlinuz-2.6.38-10-generic
initrd.img-2.6.38-11-generic vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-12-generic vmlinuz-2.6.38-12-generic
initrd.img-2.6.38-8-generic vmlinuz-2.6.38-8-generic
initrd.img-3.0.0-12-generic vmlinuz-3.0.0-12-generic
initrd.img-3.0.0-13-generic vmlinuz-3.0.0-13-generic
initrd.img-3.0.0-14-generic vmlinuz-3.0.0-14-generic
Atualmente, estou usando o 3.0.0-14-generic
kernel.
boot
hard-drive
filesystem
disk-usage
init
user6722
fonte
fonte
Respostas:
Você tem muitos núcleos não utilizados. Remova todos, exceto os últimos kernels, com:
Este é um atalho para:
A remoção do
linux-image-x.x.x-x
pacote também removerálinux-image-x.x.x-x-generic
.Os cabeçalhos são instalados
/usr/src
e usados ao criar módulos de kernel externos (como o driver da nvidia proprietário e a caixa virtual). A maioria dos usuários deve remover esses pacotes de cabeçalho se o pacote correspondente do kernel (linux-image-*
) não estiver instalado.Para listar todos os kernels instalados, execute:
Um comando para mostrar todos os kernels e cabeçalhos que podem ser removidos, excluindo o kernel atual em execução:
Ele seleciona todos os pacotes nomeados começando com
linux-headers-<some number>
oulinux-image-<some number>
, imprime os nomes dos pacotes instalados e exclui o kernel atual carregado / em execução (não necessariamente o kernel mais recente !). Isso se encaixa na recomendação de testar um kernel mais recente antes de remover os kernels mais antigos conhecidos pelo trabalho.Portanto, depois de atualizar os kernels e reiniciar para testá-lo, você pode remover todos os outros kernels com:
fonte
uname -a
. Provavelmente, é melhor garantir que você não tenha um pendente de reiniciar para instalar o novo kernel pendente (como eu fiz; mas observei a incompatibilidade entreuname -a
o kernel "mais recente") e o último.Sua partição de inicialização está cheia. Como esta é uma atualização do kernel, esses arquivos serão copiados para a partição de inicialização, portanto, você precisa fazer a limpeza. Aqui está uma postagem no blog que mostrará como limpar as imagens antigas do kernel com um comando. Vou dar uma sinopse básica do método. Use este comando para imprimir a versão atual do seu kernel:
Em seguida, use este comando para imprimir todos os kernels que você instalou que não são seu kernel mais recente:
Verifique se o seu kernel atual não está nessa lista. Observe como essa é a maioria do comando final (abaixo). Para desinstalar e excluir esses kernels antigos, você deseja canalizar esses argumentos para:
Agora podemos fazer tudo o que queremos, combinando esses dois últimos comandos nessa bagunça profana:
E esse comando cuidará de tudo para você. Confirmo que isso funciona perfeitamente, mas nunca confie em ninguém na internet. :) Para obter mais informações, a postagem do blog fornece uma explicação muito boa sobre o que cada parte do comando faz para lê-lo, para que você fique satisfeito com o cumprimento do que deseja.
fonte
Este comando está executando o trabalho automaticamente.
fonte
O Synaptic Package Manager pode ser usado para selecionar e remover facilmente imagens antigas do kernel.
Se você ainda não possui o Synaptic instalado:
Inicie o aplicativo e selecione as opções mostradas.
Você deve conseguir destacar todos os pacotes "linux-" com a versão "2.6.x" em que x está entre 31 e 38, de acordo com os arquivos na sua pasta / boot.
Clique com o botão direito do mouse em cada um desses pacotes Linux e escolha a opção "Marcar para remoção completa". Por fim, clique no botão Aplicar. Isso removerá todos os arquivos e todos os arquivos associados. Sua
/boot
pasta agora deve estar um pouco mais organizada.fonte
/boot
!Obrigado por seu post detalhado do seu problema, isso me levou a seguir a direção certa. Embora seja útil manter os arquivos anteriores do kernel, você pode removê-los de uma só vez, verifique esta postagem:
Como remover todos os cabeçalhos, imagens e módulos do kernel do Linux não utilizados
Feito via linha de comando. Se você estiver fazendo isso via controle remoto, use algo como WINSCP para abrir uma sessão do terminal e apenas colá-la, funciona muito bem.
Aqui ele é copiado do link do artigo, sugiro que você leia o artigo completo:
fonte
Esta é uma nova resposta para uma pergunta antiga, mas uma maneira fácil de limpar essa coisa (e mais) é instalar o Ubuntu Tweak . Para instalá-lo :
então você pode executar o Ubuntu Tweak, indo para a aba "zelador", e daqui a questão são três cliques:
É melhor deixar o último kernel (você nunca sabe) ou um kernel de trabalho conhecido por segurança; mas isso é facilmente personalizável.
Você pode usar a mesma ferramenta para limpar muitas coisas - lembre-se de que, se você limpar o cache de miniaturas ou o cache de TB, o sistema precisará reconstruí-los, se necessário.
fonte
Consegui corrigir o problema usando
dpkg
para remover os pacotes diretamente. Embora os pacotes ainda estejam listadosdpkg -l
, os arquivos são removidos/boot
, liberando espaço.Depois disso,
apt-get -f install
corrigi meus problemas de dependência e tudo estava bem com o mundo.No entanto, não aceitarei esta minha resposta, pois ainda preciso saber se devo aumentar meu
/boot
tamanho ou fazer outra coisa.fonte
sudo dpkg --remove linux-headers-3.5.0-28*
sudo dpkg --remove linux-image-3.5.0-28*
para a imagem, verificada viadf -h
apt-get -f install
. Além disso, não se esqueça de fazer mais tardeapt-get autoremove
, para possivelmente remover outros desnecessários.Você pode parar de usar uma partição separada / de inicialização e não terá espaço tão limitado lá. Para fazer isso, desmonte a partição, monte-a em outro lugar e copie todos os arquivos para o diretório / boot na sua partição raiz, remova a entrada de / etc / fstab e reinstale o grub. Por exemplo (você precisará usar a partição correta):
Você pode usar o gparted para excluir a partição antiga / boot e, possivelmente, estender a partição raiz para usar esse espaço. Para estender a partição raiz, você precisará inicializar a partir do livecd, e o espaço livre precisará estar imediatamente à direita. Se a partição / boot estiver atualmente à esquerda da partição raiz, primeiro você precisará mover a partição raiz para a esquerda e depois estendê-la, mas isso pode levar um tempo muito, muito longo, por isso pode não valer a pena. problema.
fonte
lsblk
pode ser usado para determinar qual partição é o queTomando o melhor das respostas acima, minha abordagem testada e verdadeira é a seguinte:
uname -a
para encontrar o kernel em execução.dpkg -l linux-{headers,image}-\* | grep ^ii
para listar todos os pacotes relacionados ao kernel atualmente instalados. Isso incluirá o kernel em execução.sudo apt-get purge linux-{image,headers}-3.16.0-{xx,yy,zz}
para remover os kernels antigos. Substituaxx,yy,zz
por uma lista das compilações do kernel que você deseja remover - essas são todas as compilações listadas pelo comando anterior que são mais antigas que o kernel atualmente em execução. Certifique-se de não remover o kernel atualmente em execução - seu sistema se tornará não inicializável . Você também pode precisar alterar a versão do kernel3.16.0
para o que estiver instalado no seu sistema.sudo apt-get autoremove
- isso removerá as dependências restantes dos kernels antigos que não são mais necessárias pelo atual, liberando mais espaço.Você pode ter arquivos de cabeçalho sem as versões correspondentes do kernel instaladas ou vice-versa - basta incluir todas essas versões no comando. O APT reclamará que alguns pacotes não podem ser removidos porque não estão instalados, mas isso não fará mal.
Se algo falhar ...
sudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}
.linux-image
pacotes são requeridos peloslinux-headers
pacotes da mesma versão (que você também deseja desinstalar), o dpkg pode ter falhado em resolver isso. Examine novamente a saídadpkg -l
e especifique qualquer sufixo de nome de pacote na linha de comandos. Por exemplo, em um dos meus sistemas, o comando que finalmente funcionou foisudo dpkg --purge linux-{image,headers}-3.16.0-{xx,yy,zz}-generic-pae
.fonte
/boot
, mas não o suficiente para outro pacote do kernel. Nesses casos, o acima funcionou bem. Sinta-se livre, no entanto, para adicionar odpkg
comando correspondente . Quanto apurge
, não, não é um tipo de 'remoção de força'. Diferentemente do que faz,remove
ele exclui os arquivos de configuração. Desde / contanto que os pacotes do kernel não instalem arquivos de configuração,remove
epurge
fará o mesmo com os pacotes do kernel.Para mim, ambos
apt-get purge
edpkg --remove
ambos falharam. Então eu tive que excluir algumas imagens antigas do kernel do / boot comrm -f
.fonte
/boot
partição estava cheia. Este comandos tentar primeiro a actualização do kernel para recente e acidente comNo space left on device
gerandoinitrd.img
Listar todos os kernels:
Exibir o kernel atual:
Listar todos os kernels, EXCETO o atual:
Verifique se o seu kernel atual não está nessa lista.
Remova todos os kernels, EXCETO o atual:
Limpar outras coisas:
Se ainda houver erro de espaço em disco de inicialização para instalar / desinstalar arquivos, remova diretamente uma imagem OLD do diretório / boot,
NOTA: Revise a imagem atual do kernel novamente antes de excluir qualquer imagem.
fonte
linux-headers-*
não são grãos. Os pacotes do kernel são os únicos nomeadoslinux-image-*
. Os que são nomeadoslinux-headers-*
são pacotes de desenvolvimento para compilar módulos do kernel: eles não vivem no diretório / boot e não são necessários para o uso geral do dia a dia do seu sistema.Os arquivos que você listou em / boot fazer incluem várias imagens de kernel velhos (
vmlinuz*
) e imagens initrd compilados (initrd.img*
) para os kernels, o que é uma indicação de que você ainda tem um monte de pacotes do kernel antigos instalados.Você deve poder listar seus kernels instalados com
(Observe que isso provavelmente retornará pacotes que também não são kernels).
Geralmente, não há necessidade de instalar mais de dois kernels - o atualmente em uso e o anterior (como substituto). Então você pode começar a remover os mais antigos, um por um, assim:
Certifique-se de substituir "3.2.0-23-generic" pela versão atual do kernel que você deseja remover! Além disso, não remova pacotes como
linux-image-generic
. Você precisa ter muito cuidado para não remover o kernel atualmente em execução ou não poderá inicializar (o Ubuntu pode ou não avisá-lo sobre isso).Você pode encontrar seu kernel atualmente em execução com:
fonte
Eu tive esse problema e muito mais porque removi alguns
initrd-img-xxx
arquivos manualmente do / boot e tive um problema que essas versões antigas continuam gerando e preenchendo a/boot
pasta. Para corrigi-lo, segui o seguinte:Você estará editando um arquivo de configuração de texto como superusuário, então cole o seguinte em um terminal:
Localize a linha
update_initramfs=yes
e altere-a paraupdate_initramfs=no
. Salve e saia do arquivo e execute:Isso resolveu meu problema. Isso foi baseado neste blog
Felizmente, tudo deve ficar bem quando você reinicia, e mais tarde você pode tentar mudar a
no
parte de trás parayes
dentroupdate-initramfs.conf
.fonte
Eu mostro que ainda em 2017 esta pergunta tem novos comentários e respostas, mas falta uma resposta que eu acho que é muito útil aqui:
O Ubuntu como um sistema operacional de desktop de uso diário simples não tem motivos para ser instalado com uma partição \ boot separada e algo assim NÃO oferecerá algo a um "usuário comum" ... Portanto, uma solução é uma nova instalação sem a partição \ boot e isso maneira que você nunca terá esse problema
PS: Minha resposta pode ser excluída ou adicionada na resposta aceita ... (acho que ajudará algumas pessoas dessa maneira)
fonte
Utilitário super útil que limpará sua partição de inicialização
Use por sua conta e risco, mas funcionou para mim:
fonte
No aptitude ou synaptic, há uma seção "pacote antigo ou instalado manualmente". Deveria haver os pacotes Linux antigos lá.
fonte
Há um script bash que eu escrevi abaixo, que torna o processo um pouco mais amigável.
YMMV - foi feito para a Casa da Moeda 14. Ainda está aprendendo o BASH, então provavelmente é um pouco desajeitado. Use por sua conta e risco, mas funciona para mim!
fonte
[Como um noob no AskUbuntu, não posso comentar até a reputação = 50, portanto, não faça o voto negativo por causa disso.]
Meu servidor também estava fazendo isso. Literalmente, nenhuma das respostas esperadas aqui funcionou, pois elas exigem alguma sala de trabalho em / boot para serem concluídas. Se a partição de inicialização estiver cheia, ela terminará abruptamente sem excluir nenhuma das imagens.
A única coisa que funcionou para mim foi revisar a imagem atual e depois manualmente
sudo rm filename
os arquivos de imagem mais antigos (cada um tinha -3.16.0-30 em seus nomes). Feito isso,sudo apt-get autoremove
teve o espaço de manobra necessário para fazer seu trabalho. Ele destacou alguns erros associados a essa versão, por exemplo: "depmod: FATAL: não pôde carregar /boot/System.map-3.16.0-30-generic: Não existe esse arquivo ou diretório", mas isso é esperado.Quando concluído,
df
retornou 42% em uso para / boot para indicar que está saudável novamente.fonte
apt-get
tem espaço suficiente para continuar eb), ondeapt-get
falha porque o disco está cheio demais. Esse é o outro post.Eu escrevi esse script bash para limpar seletivamente antigos kernels de uma só vez:
Todo o código e instruções do bash estão incluídos no link.
fonte
Salve este script como
/usr/local/bin/remove_kernels.sh
(lembre-se de dar permissões de execuçãosudo chmod 755 /usr/local/bin/remove_kernels.sh
):Para remover todos os kernels antigos, digite:
sudo remove_kernels.sh
fonte
/ partição de inicialização pode ser um pouco estranha às vezes
não comece a excluir diretamente os arquivos kernal.
Passos a seguir
Verifique se o kernal atualmente instalado está sendo usado pelo sistema linux
uname -r
isso deve fornecer o nome da imagem kernal atualmente instalada no sistema
Agora comece a excluir arquivos extras, exceto um específico instalado no seu sistema
apt-get remove linux-image-XXXXX
Também remova o arquivo de cabeçalho também
apt-get remove linux-headers-XXXXX
Também pode haver uma condição em
apt
que parou de funcionar; nesse caso, alterne para / bootcd /boot
Comece a remover os arquivos manualmente, mas com muito cuidado, lembre-se de não excluir os
installed one's
arquivos kernal do seu sistema.rm linux-image-XXXXX
rm linux-image-extra-XXXXXX
Após remover os arquivos corretos, a limpeza parcial instala, se houver
apt-get -f install
Remova os arquivos extras que estão lá como arquivos de inicialização limpos manualmente
apt-get autoremove
Atualizar grub
update-grub
Por fim, atualize os pacotes do sistema
apt-get update
fonte
Se você não conseguir remover mais arquivos não utilizados e se tiver outra partição com / ou espaço livre no mesmo dispositivo, poderá redimensionar a partição / boot por parted / gparted . (Também está incluído na mídia de instalação.)
Aviso : O redimensionamento da partição é uma operação perigosa ; salve seus dados importantes em outras mídias antes de fazê-lo!
fonte