
Llevo más de un año ejecutando Debian Wheezy sin problemas hasta hace una semana. Sin ninguna razón obvia, el sistema de repente decidió que el kernel de Linux está sólo a medias configurado y ninguna de las soluciones que encontré en línea funcionó. Como resultado, apt
intenta solucionarlo cada vez que se realizan actualizaciones y falla.
Detalles
Síntoma
Cada vez que se ejecutan actualizaciones, apt
en algún momento se intentará reparar el kernel, fallará y el proceso de actualización finalizará con un aviso de error y luego un mensaje de que el sistema está actualizado.
Cualquier actividad de actualización apt
finaliza con lo siguiente:
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)
El núcleo
Prácticamente el mismo problema fue descrito en unpregunta sobre Ask Ubuntu. La respuesta aceptada señaló un problema con el dpkg
archivo de estado. La entrada de estado paralinux-image-3.2.0-4-amd64
Dijo que estaba medio configurado.
Como primer paso, probé esto:
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
La reinstalación no ayudó, por lo que apunta a que está roto.
La solución Ask Ubuntu fue eliminar la entrada del dpkg
archivo de estado y luego reinstalar. En mi caso tampoco funcionó. Cuando finalizó el proceso, el dpkg
archivo de estado reemplazó la entrada con otra que todavía decía que estaba medio configurado y el comportamiento del sistema fue el mismo.
Salida apta
Centrándose en los mensajes de error en la apt
salida. Los errores siempre comienzan con:
/usr/sbin/update-initramfs.orig.initramfs-tools - command not found
Efectivamente, ese archivo no existe. El útil mensaje informa que se puede instalar instalandoinitramfs-tools
. Eso ya estaba instalado, pero lo reinstalé. Resulta que apt
ya lo estaba haciendo por sí solo. Todos los mensajes de error siguiendo las instrucciones de instalación.initramfs-tools
es generado por ese intento de instalación, que nunca resulta en/usr/sbin/update-initramfs.orig.initramfs-tools
siendo instalada.
Resumen
- Tengo el último kernel de Linux disponible en el repositorio de Wheezy. Es una buena copia, se cumplen todas las dependencias y no hay informes de que otros usuarios hayan tenido problemas con ella.
- El sistema informa que no está completamente configurado. No encontré ninguna manera de configurarlo o hacer que el sistema deje de pensar que no es así.
Respuesta1
Resolución
sudo apt-get remove live-tools
sudo apt-get install --reinstall initramfs-tools
sudo apt-get install -f
Explicación
Después de obtener una mejor imagen del sistema de fixer1234en el chat, determiné que el paquete instalado live-tools
estaba en conflicto con initramfs-tools
.
Cuando live-tools
se instala, lo anula /usr/sbin/update-initramfs
con su propio script y coloca el original en formato /usr/sbin/update-initramfs.orig.initramfs-tools
.
live-tools
tiene algunas comprobaciones de cordura que detectan si está en un sistema activo. Si no está en un sistema activo y está en un sistema instalado, intenta ejecutar /usr/sbin/update-initramfs.orig.initramfs-tools
, que es el script correcto para actualizar initramfs.
En el sistema de fixer1234, /usr/sbin/update-initramfs.orig.initramfs-tools
se había eliminado.
Dado que el sistema es un sistema instalado, live-tools
probablemente no sea necesario, por lo que recomendé su eliminación.
Así es como funciona cada paso propuesto en la sección "Resolución" anterior:
sudo apt-get remove live-tools
Al eliminarlo live-tools
se intentará restaurarlo /usr/sbin/update-initramfs.orig.initramfs-tools
a /usr/sbin/update-initramfs
, pero como /usr/sbin/update-initramfs.orig.initramfs-tools
no existe, habrá un error.
live-tools
todavía se eliminará, y esto es lo que importa.
Todavía estamos desaparecidos /usr/sbin/update-initramfs
.
sudo apt-get install --reinstall initramfs-tools
Para restaurarlo /usr/sbin/update-initramfs
, reinstalamos el paquete que proporciona ese archivo. Es decir initramfs-tools
,.
sudo apt-get install -f
La instalación de su kernel estuvo incompleta debido al percance con live-tools
y initramfs-tools
, por lo que para completar la instalación y resolver todos los problemas del paquete, es necesario este último paso.
Ahora debería tener un sistema Debian en pleno funcionamiento.
(Por cierto, estos pasos teóricamente funcionan en Debian 8, Ubuntu 12.04, Ubuntu 14.04, Ubuntu 15.10, Ubuntu 16.04 y Ubuntu 16.10).