A inicialização está cheia não pode obter o apt-get para atualizar [duplicado]

1

Eu segui a maioria das instruções de uma inicialização de limpeza encontrada nas interwebs, eu sou um pouco n00bish no linux para dentro eu uso principalmente para testes web dev, mas sou muito bom em seguir instruções de comando;)

Infelizmente, minha caixa parece estar presa no / boot cheio e não consigo entender meus passos corretos para esclarecer isso.

Eu acredito que não posso limpar a inicialização porque o kernel 39 está pendente de instalação, mas posso removê-lo da instalação pendente porque a inicialização está cheia?

Esta é a sequência de etapas que eu tentei:

pedro@lamp01:~$ 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-generic-lts-quantal : Depends: linux-image-3.5.0-39-generic but it is not installed
E: Unmet dependencies. Try using -f.


pedro@lamp01:~$ sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print }' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
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-lts-quantal : Depends: linux-headers-3.5.0-39-generic but it is not going to be installed
 linux-image-generic-lts-quantal : Depends: linux-image-3.5.0-39-generic but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).


pedro@lamp01:~$ sudo apt-get -f install
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:
  linux-headers-3.5.0-32-generic linux-headers-3.5.0-27-generic
  linux-headers-3.5.0-30-generic linux-headers-3.5.0-28-generic
  linux-headers-3.5.0-30 linux-headers-3.5.0-31 linux-headers-3.5.0-26
  linux-headers-3.5.0-32 linux-headers-3.5.0-27 linux-headers-3.5.0-28
  linux-headers-3.5.0-31-generic linux-headers-3.5.0-26-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  linux-image-3.5.0-39-generic
Suggested packages:
  fdutils linux-lts-quantal-doc-3.5.0 linux-lts-quantal-source-3.5.0
  linux-lts-quantal-tools
The following NEW packages will be installed
  linux-image-3.5.0-39-generic
0 upgraded, 1 newly installed, 0 to remove and 27 not upgraded.
3 not fully installed or removed.
Need to get 0 B/40.7 MB of archives.
After this operation, 157 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
(Reading database ... 269199 files and directories currently installed.)
Unpacking linux-image-3.5.0-39-generic (from .../linux-image-3.5.0-39-generic_3.5.0-39.60~precise1_amd64.deb) ...
Done.
dpkg: error processing /var/cache/apt/archives/linux-image-3.5.0-39-generic_3.5.0-39.60~precise1_amd64.deb (--unpack):
 failed in write on buffer copy for backend dpkg-deb during './boot/vmlinuz-3.5.0-39-generic': 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)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.5.0-39-generic /boot/vmlinuz-3.5.0-39-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.5.0-39-generic /boot/vmlinuz-3.5.0-39-generic
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-3.5.0-39-generic_3.5.0-39.60~precise1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
pedro@lamp01:~$

É um pouco estranho o autoremove parecer estar forçando a instalação, o kernel atual é 37:

pedro@lamp01:~$ uname -a
Linux lamp01 3.5.0-37-generic #58~precise1-Ubuntu SMP Wed Jul 10 17:48:11 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Alguém pode ajudar?

Muito obrigado, P.

    
por Pedro Costa 02.09.2013 / 21:58

2 respostas

2

Como eu não tenho uma configuração semelhante à sua, não posso dizer o quão bem qualquer um deles funciona, então antes de tentar qualquer coisa faça um backup! Dito isso, você pode tentar o seguinte :

  1. Usando dpkg para remover kernels mais antigos e instalar o novo depois. Por exemplo:

    $ sudo dpkg -r linux-headers-3.5.0-28-generic
    
  2. Se ainda assim não funcionar, você pode tentar mover temporariamente alguns arquivos de kernel antigos para um local diferente (partição raiz, algum pen drive, etc ...), instalar o novo kernel e remover os kernels mais antigos , enquanto move os arquivos do kernel para sua localização padrão;

  3. Você pode tentar "mover" seu ponto de montagem /boot temporariamente (supondo que você tenha espaço suficiente em / ). Isso levará as seguintes etapas:

    • Desmonte seu / ponto de montagem de inicialização: sudo umount /boot ;
    • Monte em outro lugar: sudo mount /dev/**your boot partition** /mnt ;
    • Mova seus arquivos de / mnt para / boot: você pode usar gksu nautilus ou sudo mv para fazer isso
    • Execute as alterações desejadas (instalando o novo kernel, removendo as antigas);
    • Copie os arquivos de / mnt de volta para / boot;

Observe também que, se você estiver usando o LVM, redimensionar uma partição é muito mais fácil (você não precisa parar nada / reiniciar / usar CDs ao vivo). Portanto, se esse for o caso, use lvextend para aumentar o espaço na partição /boot .

    
por Salem 03.09.2013 / 12:25
1

Tenho certeza de que, se você fizer um df -h , você notará a partição /boot completa.

braiam@bt:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda7        14G  9.8G  3.3G  76% /
/dev/sda5       922M   40M  819M   5% /boot

Isso acontece porque você ficou muito pequeno, ou você quebrou vários kernels que você não precisa, ou você acabou de preenchê-lo com unicórnios para o Grub ... de qualquer forma, ele tem 2 soluções simples:

  1. Desinstalar os kernels obsoletos.

    sudo apt-get -y autoremove
    sudo apt-get -f install
    
  2. Torne sua partição /boot maior.

    Isso requer que você inicialize em um SO Live e redimensione a partição.

por Braiam 03.09.2013 / 00:36