
Estou executando o Debian Wheezy há mais de um ano sem problemas até uma semana atrás. Sem nenhuma razão óbvia, o sistema decidiu repentinamente que o kernel do Linux está apenas parcialmente configurado e nenhuma das correções que encontrei on-line funcionou. Como resultado, apt
tenta remediar sempre que as atualizações são realizadas e falha.
Detalhes
Sintoma
Sempre que as atualizações são executadas, apt
em algum momento, tentará consertar o kernel, falhará e o processo de atualização terminará com um aviso de erro e, em seguida, uma mensagem de que o sistema está atualizado.
Qualquer atividade de atualização apt
termina com o seguinte:
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-4-amd64 /boot/vmlinuz-3.2.0-4-amd64
E: /usr/sbin/update-initramfs.orig.initramfs-tools - command not found
E: On Debian based systems, update-initramfs from initramfs-tools
E: can be installed with:
E: apt-get install initramfs-tools
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.2.0-4-amd64.postinst line 696.
dpkg: error processing linux-image-3.2.0-4-amd64 (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
linux-image-3.2.0-4-amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)
O Núcleo
Praticamente o mesmo problema foi descrito em umpergunta no Ask Ubuntu. A resposta aceita apontou para um problema com o dpkg
arquivo de status. A entrada de status paralinux-image-3.2.0-4-amd64
disse que estava meio configurado.
Como primeiro passo, tentei isto:
administrator@Kwheezy:~$ sudo dpkg-reconfigure linux-image-3.2.0-4-amd64
/usr/sbin/dpkg-reconfigure: linux-image-3.2.0-4-amd64 is broken or not fully installed
A reinstalação não ajudou, então isso indica que está quebrado.
A solução Ask Ubuntu foi excluir a entrada do dpkg
arquivo de status e reinstalar. No meu caso, isso também não funcionou. Quando o processo foi concluído, o dpkg
arquivo de status substituiu a entrada por outra que ainda dizia estar meio configurada e o comportamento do sistema era o mesmo.
Saída adequada
Focando nas mensagens de erro na apt
saída. Os erros sempre começam com:
/usr/sbin/update-initramfs.orig.initramfs-tools - command not found
Com certeza, esse arquivo não existe. A mensagem útil informa que ele pode ser instalado instalandoinitramfs-tools
. Isso já estava instalado, mas eu reinstalei. Acontece que isso apt
já estava fazendo isso sozinho. Todas as mensagens de erro seguindo as orientações para instalaçãoinitramfs-tools
é gerado por essa tentativa de instalação, que nunca resulta em/usr/sbin/update-initramfs.orig.initramfs-tools
sendo instalado.
Resumo
- Eu tenho o kernel Linux mais recente disponível no repositório Wheezy. É uma boa cópia, todas as dependências foram atendidas e não há relatos de outros usuários tendo problemas com ela.
- O sistema informa que não está totalmente configurado. Não encontrei nenhuma maneira de configurá-lo ou fazer com que o sistema pare de pensar que não é.
Responder1
Resolução
sudo apt-get remove live-tools
sudo apt-get install --reinstall initramfs-tools
sudo apt-get install -f
Explicação
Depois de obter uma imagem melhor do sistema do fixer1234no bate-papo, determinei que o pacote instalado live-tools
estava em conflito com o initramfs-tools
.
Quando live-tools
instalado, ele substitui /usr/sbin/update-initramfs
seu próprio script e coloca o original no formato /usr/sbin/update-initramfs.orig.initramfs-tools
.
live-tools
tem algumas verificações de integridade que detectam se está em um sistema ativo. Se não estiver em um sistema ativo e estiver em um sistema instalado, ele tenta executar o /usr/sbin/update-initramfs.orig.initramfs-tools
, que é o script correto para atualizar o initramfs.
No sistema do fixer1234, /usr/sbin/update-initramfs.orig.initramfs-tools
foi deletado.
Como o sistema é um sistema instalado, live-tools
provavelmente é desnecessário, por isso recomendei sua remoção.
Veja como funciona cada etapa proposta na seção "Resolução" acima:
sudo apt-get remove live-tools
A remoção live-tools
tentará restaurar /usr/sbin/update-initramfs.orig.initramfs-tools
para /usr/sbin/update-initramfs
, mas como /usr/sbin/update-initramfs.orig.initramfs-tools
não existe, ocorrerá um erro.
live-tools
ainda será removido, e é isso que importa.
Ainda estamos desaparecidos /usr/sbin/update-initramfs
.
sudo apt-get install --reinstall initramfs-tools
Para restaurar /usr/sbin/update-initramfs
, reinstalamos o pacote que fornece esse arquivo. Ou seja, initramfs-tools
.
sudo apt-get install -f
A instalação do seu kernel ficou incompleta devido ao acidente com live-tools
e initramfs-tools
, portanto, para concluir a instalação e resolver todos os problemas do pacote, esta última etapa é necessária.
Agora você deve ter um sistema Debian totalmente funcional.
(A propósito, essas etapas funcionam teoricamente no Debian 8, Ubuntu 12.04, Ubuntu 14.04, Ubuntu 15.10, Ubuntu 16.04 e Ubuntu 16.10.)