Não é possível remover os kernels “run-parts: /etc/kernel/postrm.d/zz-update-grub encerrado com o código de retorno 1”

4

Ontem atualizei o Ubuntu de 12.04 para 12.10. No entanto, o kernel do Linux não atualizou de 3,2 para 3,5, como eu esperava.

$ uname -r 
3.2.0-32-generic

$ uname -a
Linux tony-b 3.2.0-32-generic #51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

$ cat /proc/version
Linux version 3.2.0-32-generic (buildd@batsu) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012

Não sei por que isso aconteceu lá.

Eu queria instalar o Audacity (v2.0.1-1_amd64) para editar um arquivo de áudio de aula. Ao tentar esta operação através do Ubuntu Software Center, diz que para instalar audácia, quatro itens precisarão ser removidos:

  • linux-image-3.2.0-27-generic
  • linux-image-3.2.0-29-generic
  • linux-image-3.2.0-30-generic
  • linux-image-3.2.0-31-generic

Então, clico em "Install Anyway", mas ele falha com a seguinte saída:

installArchives() failed: (Reading database ... 
(Reading database ... 259675 files and directories currently installed.)
Removing linux-image-3.2.0-27-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-27-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-27-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-27-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports is reached already
Removing linux-image-3.2.0-29-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-29-generic /boot/vmlinuz-3.2.0-29-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-29-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-29-generic /boot/vmlinuz-3.2.0-29-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-29-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-29-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports is reached already
Removing linux-image-3.2.0-30-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-30-generic /boot/vmlinuz-3.2.0-30-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-30-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-30-generic /boot/vmlinuz-3.2.0-30-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-30-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-30-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports is reached already
Removing linux-image-3.2.0-31-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-31-generic /boot/vmlinuz-3.2.0-31-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-31-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-31-generic /boot/vmlinuz-3.2.0-31-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-31-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-31-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports is reached already
Errors were encountered while processing:
 linux-image-3.2.0-27-generic
 linux-image-3.2.0-29-generic
 linux-image-3.2.0-30-generic
 linux-image-3.2.0-31-generic
Error in function: 
Setting up grub-pc (2.00-7ubuntu11) ...
/usr/sbin/grub-bios-setup: warning: Sector 32 is already in use by the program 'FlexNet'; avoiding it.  This software may cause boot or other problems in future.  Please ask its authors not to store data in the boot track.
Installation finished. No error reported.
Generating grub.cfg ...
dpkg: error processing grub-pc (--configure):
 subprocess installed post-installation script returned error exit status 1

Parece que preciso remover as imagens antigas do Linux de alguma forma. Eu tentei isso através de (1) Synaptic, (2) Ubuntu Tweak e (3) Computer Janitor.

Os dois primeiros falham, enquanto o zelador de computadores nem abre. A saída do Synaptic é:

E: linux-image-3.2.0-27-generic: subprocess installed post-removal script returned error exit status 1
E: linux-image-3.2.0-29-generic: subprocess installed post-removal script returned error exit status 1
E: linux-image-3.2.0-30-generic: subprocess installed post-removal script returned error exit status 1
E: linux-image-3.2.0-31-generic: subprocess installed post-removal script returned error exit status 1

$ dpkg --list | grep linux-image
rH  linux-image-3.2.0-27-generic                3.2.0-27.43                               amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rH  linux-image-3.2.0-29-generic                3.2.0-29.46                               amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rH  linux-image-3.2.0-30-generic                3.2.0-30.48                               amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rH  linux-image-3.2.0-31-generic                3.2.0-31.50                               amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-32-generic                3.2.0-32.51                               amd64        Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.5.0-17-generic                3.5.0-17.28                               amd64        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
ii  linux-image-extra-3.5.0-17-generic          3.5.0-17.28                               amd64        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
ii  linux-image-generic                         3.5.0.17.19                               amd64        Generic Linux kernel image

Mas tentar remover usando a linha de comando também falha, por exemplo:

$ sudo apt-get purge linux-image-3.2.0-27-generic
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED
  linux-image-3.2.0-27-generic linux-image-3.2.0-29-generic linux-image-3.2.0-30-generic linux-image-3.2.0-31-generic
0 upgraded, 0 newly installed, 4 to remove and 1 not upgraded.
5 not fully installed or removed.
After this operation, 597 MB disk space will be freed.
Do you want to continue [Y/n]? Y

(Reading database ... 259675 files and directories currently installed.)
Removing linux-image-3.2.0-27-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-27-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-27-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-27-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports has already been reached
                                                                    Removing linux-image-3.2.0-29-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-29-generic /boot/vmlinuz-3.2.0-29-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-29-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-29-generic /boot/vmlinuz-3.2.0-29-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-29-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-29-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports has already been reached
                                                                    Removing linux-image-3.2.0-30-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-30-generic /boot/vmlinuz-3.2.0-30-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-30-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-30-generic /boot/vmlinuz-3.2.0-30-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-30-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-30-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports has already been reached
                                                                    Removing linux-image-3.2.0-31-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-31-generic /boot/vmlinuz-3.2.0-31-generic
update-initramfs: Deleting /boot/initrd.img-3.2.0-31-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-31-generic /boot/vmlinuz-3.2.0-31-generic
Generating grub.cfg ...
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.2.0-31-generic.postrm line 328.
dpkg: error processing linux-image-3.2.0-31-generic (--remove):
 subprocess installed post-removal script returned error exit status 1
No apport report written because MaxReports has already been reached
                                                                    Errors were encountered while processing:
 linux-image-3.2.0-27-generic
 linux-image-3.2.0-29-generic
 linux-image-3.2.0-30-generic
 linux-image-3.2.0-31-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

Como faço para remover imagens antigas do kernel que se recusam a serem removidas?

    
por Tony Breyal 20.10.2012 / 14:54

3 respostas

3

Solução encontrada aqui: link

Eu só precisava fazer a opção 1 para fazê-lo funcionar, mas vou citar a coisa toda aqui para referência:

De drs305:

O problema parece estar no script de pós-instalação do grub: /etc/kernel/postrm.d/zz-update-grub

Eu não tenho o problema, mas fiz o seguinte. A única diferença é que o meu sistema não está pendurado na falha do script.

Opção 1: Se você é inicializado em seu sistema operacional e pode executar "apt-get install"

Você pode testar se isso é possível com "sudo apt-get install 2vard". É um pacote muito pequeno. Se instala ok:

  • a. Purga-comum. O comando irá desinstalar o grub-common e grub-pc

Código:

sudo apt-get purge grub-common

Isso removerá o script zz-update-grub.

Você será avisado de que está removendo seu bootloader. Tab para OK e ENTER.

  • b. Instale o grub-pc. Ele irá instalar o grub-common e o grub-pc.

Código:

sudo apt-get install grub-pc

Tabulação para OK, e use a barra de espaço para selecionar APENAS a unidade do Ubuntu, não a partição. Isso irá restaurar o arquivo zz-update-grub. Se o problema foi com o arquivo grub, isso deve consertá-lo.

  • c. Tente atualizar seu sistema novamente.

Opção 2: se o acima não funcionar:

Tente renomear o script grub para que seja ignorado. Não é uma solução de longo prazo, mas você pode executar suas atualizações.

sudo mv /etc/kernel/postrm.d/zz-update-grub /etc/kernel/postrm.d/zz-update-grub.bad
    
por Tony Breyal 20.10.2012 / 23:55
0

Eu usei o seguinte método para ignorar o cheque.

sudo mv /etc/kernel/postrm.d /etc/kernel/postrm.d.old

[real action go here]

sudo mv /etc/kernel/postrm.d.old /etc/kernel/postrm.d
    
por xiaoyifang 30.09.2014 / 08:29
0

Eu tive o mesmo problema ao atualizar o Ubuntu de 12.04 para 14.04.1: O kernel ficou em 3.2.

Apenas à segunda vista notei que a atualização não criou nenhuma entrada no menu de inicialização para 14.04 - a última entrada foi para 12.04 com um kernel 3.2 (a tela inicial durante a inicialização mostrou "14.04" algum tempo para se deparar com isso).

A primeira coisa que notei após a atualização foi que eu não conseguia mais entrar no meu desktop. Então eu pensei que havia algo errado com os drivers para a minha placa nvidia. (Recebi uma mensagem de erro dizendo que não havia modos apropriados encontrados no meu arquivo de configuração ou algo assim).

Só quando eu finalmente descobri que não estava rodando o kernel 3.13.0-43 como esperado, isso finalmente começou a fazer perfeito sentido: os drivers foram compilados contra o kernel 3.13 enquanto eu ainda estava rodando 3.2, então não pergunto-me que os condutores não funcionaram.

Remover o grub-common e instalar o grub-pc como descrito acima resolveu isso para mim.

Obrigado a todos que contribuíram para essa solução!

    
por Anonymous 03.01.2015 / 10:25