Reinstalar Ubuntu sin necesidad de formatear

En este hilo voy a explicar como reinstalar Ubuntu poniendo como ejemplo un caso real que me ha pasado a mí esta misma mañana. Resulta que en las oficinas de un cliente nuestro, algún usuario con muy pocas luces apagó a lo bruto el ordenador mientras se estaba actualizando. Como resultado, el sistema no arrancaba y el disco estaba con muchos errores. Me daba bastante pereza tener que instalar y actualizar todo de nuevo, a pesar de que /home se encuentra en una partición separada y se conservan muchos datos y configuraciones, pero aun así hay que hacer bastantes cosas.

Pero gracias al magnífico sistema de paquetes Debian he conseguido reinstalar únicamente los componentes dañados, sin perder ningún dato ni ninguna configuración, cosa que es imposible con otro sistema de cuyo nombre no quiero acordarme. Las explicaciones que voy a dar son válidas para todas las distribuciones basadas en Debian (Ubuntu, por ejemplo), aunque posiblemente para las distribuciones Red Hat habrá comandos equivalentes. Lo malo de todo esto que explico es que está pensado para usuarios muy avanzados, ya que hay que teclear comandos todo el rato sin tener entorno gráfico. Pero para quien se maneje bien con el entorno de comandos es un alivio poder reinstalar el sistema de forma rápida dejándolo como si no hubiera pasado nada.

Bueno, el primer paso ha sido reparar el disco. Para ello he iniciado con un Live CD, he abierto «gparted» y he reparado el disco. Al reiniciar, el sistema ya arrancaba más o menos bien, pero como a causa de tantos errores habían quedado bastantes ficheros dañados, el entorno gráfico no se iniciaba y además fallaban otras cosas.

Así que ahora había que averiguar que paquetes estaban dañados, para ello se hace uso del comando «debsums». Si no está instalado, simplemente ejecutando «sudo aptitude install debsums» estará disponible.
sudo debsums -s
(la opción -s es para que sólo muestre los ficheros dañados, ya que por defecto los que están bien los muestra con un OK)
Este comando muestra líneas de este estilo:
debsums: no md5sums for netbase
debsums: changed file /usr/bin/fichero-dañado (from paquete-dañado package)
debsums: missing file /var/lib/fichero-perdido (from otro-paquete-dañado package)

La primera línea indica que el paquete llamado «netbase» no dispone de información para verificar ficheros dañados, así que no hay manera de comprobar si el paquete está dañado o no. Más adelante veremos que hacer con estos paquetes.

Las otras líneas indican: changed (hay un fichero modificado o, en nuestro caso, dañado), missing (hay un fichero que debería estar presente pero que no se encuentra).

Entre paréntesis nos indica el paquete que está dañado. Por ejemplo, si estuviera dañado el paquete «parted» pondría una línea así:
debsums: changed file /sbin/parted (from parted package)
Para repararlo ejecutamos:
sudo aptitude reinstall parted

Para aligerar, se pueden reinstalar todos los paquetes dañados al mismo tiempo:
sudo aptitude reinstall paquete-dañado1 paquete-dañado2 paquete-dañado3 …

Nota: es normal que aparezcan ficheros modificados en la carpeta /var, ya que como su nombre indica, sirve para almacenar datos «variables», ficheros que serán modificados. También pueden aparecer ficheros modificados en /usr/share/doc o en /usr/share/gnome/help ya que son ficheros de documentación a los que se les aplica un post-procesado después de instalar para que se carguen más rápido. El resto de carpetas son estáticas y deben contener siempre los ficheros originales. Por ejemplo, si hay un fichero modificado en la carpeta /sbin con toda seguridad estará dañado.

Finalmente, vamos a ocuparnos de las paquetes que no disponen de información de verificación, los que aparecen como «no md5sums». Como he dicho antes, estos paquetes no se pueden comprobar si están dañados, así que lo mejor es reinstalarlos por si acaso alguno estuviera dañado. Normalmente hay muy pocos paquetes así, por eso no es nada tedioso reinstalarlos todos.

manuReinstalar Ubuntu sin necesidad de formatear

Comments 1

Deja un comentario