Recebi uma mensagem de erro explicando que meu / boot está cheio. a tentativa de limpar arquivos de imagem antigos sempre parece falhar devido a erros de disco cheio ou a erros de dependência. Alguém poderia explicar onde estou errado.
$ sudo apt-get autoremove
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-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not installed
E: Unmet dependencies. Try using -f.
$ ls /boot
abi-3.13.0-32-generic initrd.img-3.13.0-43-generic
abi-3.13.0-36-generic lost+found
abi-3.13.0-37-generic memtest86+.bin
abi-3.13.0-39-generic memtest86+.elf
abi-3.13.0-40-generic memtest86+_multiboot.bin
abi-3.13.0-43-generic System.map-3.13.0-32-generic
config-3.13.0-32-generic System.map-3.13.0-36-generic
config-3.13.0-36-generic System.map-3.13.0-37-generic
config-3.13.0-37-generic System.map-3.13.0-39-generic
config-3.13.0-39-generic System.map-3.13.0-40-generic
config-3.13.0-40-generic System.map-3.13.0-43-generic
config-3.13.0-43-generic vmlinuz-3.13.0-32-generic
grub vmlinuz-3.13.0-36-generic
initrd.img-3.13.0-32-generic vmlinuz-3.13.0-37-generic
initrd.img-3.13.0-36-generic vmlinuz-3.13.0-39-generic
initrd.img-3.13.0-37-generic vmlinuz-3.13.0-40-generic
initrd.img-3.13.0-39-generic vmlinuz-3.13.0-43-generic
initrd.img-3.13.0-40-generic
eu usei
kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver
para obter
linux-headers-3.13.0-32
linux-headers-3.13.0-32-generic
linux-headers-3.13.0-36
linux-headers-3.13.0-36-generic
linux-headers-3.13.0-37
linux-headers-3.13.0-37-generic
linux-headers-3.13.0-39
linux-headers-3.13.0-39-generic
linux-headers-3.13.0-40
linux-headers-3.13.0-40-generic
linux-headers-3.13.0-44
linux-headers-3.13.0-44-generic
linux-headers-3.13.0-45
linux-headers-3.13.0-45-generic
linux-image-3.13.0-32-generic
linux-image-3.13.0-36-generic
linux-image-3.13.0-37-generic
linux-image-3.13.0-39-generic
linux-image-3.13.0-40-generic
Em seguida, escolha a primeira imagem para remover
$ sudo apt-get purge linux-image-3.13.0-32-generic
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-image-extra-3.13.0-32-generic : Depends: linux-image-3.13.0-32-generic but it is not going to be installed
linux-image-extra-3.13.0-44-generic : Depends: linux-image-3.13.0-44-generic but it is not going to be installed
linux-image-extra-3.13.0-45-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
linux-image-generic : Depends: linux-image-3.13.0-45-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
boot
package-management
disk-usage
Philip Howard
fonte
fonte
sudo apt-get autoremove
els /boot
.uname -r
comando para descobrir sua versão atual do kernel e tente remover um kernel que não seja esse.Respostas:
Nesse caso, eu usaria a
dpkg
ferramenta para forçar a remoção de alguns pacotes do kernel. Isso não é sugerido para uso comum e é um pouco perigoso , mas nesse caso, com dependências não atendidas pode ajudar.Primeiro, localize o kernel no qual o sistema é inicializado. O que está carregado no momento. Abra um terminal (CTRL + ALT + T) e execute o seguinte comando
Ele mostrará o kernel carregado, você NÃO deve tentar remover este.
Em seguida, emita o comando
ele retornará todas as imagens instaladas. Escolha um ou dois e tente removê-los. Tente forçar a remoção / limpeza. Por exemplo
Você pode fazer o mesmo com outras imagens, a fim de liberar espaço.
Em seguida, você pode tentar instalar os pacotes ausentes ou
para tentar resolver as dependências.
Por fim, emita o comando "cleanup old kernels"
O comando acima removerá TODOS os kernels, exceto o que está carregado no momento.
Como você possui uma partição / inicialização separada, lembre-se de que precisará rastrear seu espaço e limpá-lo com frequência (a frequência depende do espaço de / boot)
fonte
dpkg
, eu tive que corrersudo apt-get -f autoremove
para conseguirapt-get
parar de reclamar sobre dependências não satisfeitas. Caso contrário,sudo apt-get -f install
aparentemente continuava tentando reinstalar todas as imagens do kernel com asdpkg
quais eu removi , as quais obviamente só foram preenchidas/boot
novamente.apt-get -f autoremove
comentário @mdunsmuir acima, ele ainda deseja instalar todos os kernels antigos durante qualquer uma das operações de limpeza acima. Existe uma maneira de dizer a ele para ignorar dependências não relacionadas e remover um único kernel antigo completo?sudo dpkg --force-all -P linux-image-extra-3.13.0-32-generic
. Caso contrário, esses extras ainda dependem da imagem real e o-f
sinalizador fará com que a imagem seja reinstalada e, em seguida, fique sem espaço em disco.Isto é o que funcionou para mim no Ubuntu 16.04.
fonte
Listar todos os kernels:
Exibir o kernel atual:
Liste todos os kernels EXCETO atual:
Verifique se o seu kernel atual não está nessa lista.
Remova todos os kernels, EXCETO o atual:
Limpar outras coisas:
fonte