Inicio > Uncategorized > Reinstalando el sistema

Reinstalando el sistema

Lunes, 22 de febrero de 2010 Rafa García Dejar un comentario Ir a comentarios

Este fin de semana iba a hacer una copia de seguridad, instalé lucky backup, lo configuré, lo dejé trabajando y cuando volví mi sistema había cascado. Resulta que alguna opción de configuración le dijo que cambiara los permisos y usuarios de todos los directorios de mi sistema. Después de perder un rato con la consola de recuperación restaurando permisos opté por reinstalar.

La ventaja de tener la home en una partición separada en estos casos tiene un gran valor.

Por otra parte los datos que quería conservar eran:

  • Algunos ficheros de configuración (/etc)
  • Mis bases de datos (/var/lib/mysql)
  • Gemas, paquetes autogenerados, librerías ruby,… (/usr/local)

Antes de reinstalar saqué un listado de todos los paquetes que tenía instalados con el siguiente comando:

  $ sudo dpkg --get-selections > MY_PACKAGES


Ahora ya estaba preparado para reinstalar. Al reinstalar le dije que quería usar como home mi antigua partición, sin formatearla por supuesto ;-)

Una vez reinstalado el sistema, restauré los repositorios de paquetes y de pasó aproveché a hacer limpieza (quité ppas que no usaba), con copiar el directorio etc/apt de la copia valía.

Como solo tenía añadidos PPAs los añadí a mano con el siguiente comando:

  $ sudo add-apt-repository ppa:


Dejé que el sistema actualizara todos los paquetes y mientras copié el directorio /usr/local dentro del nuevo sistema. Aquí tengo todas las gemas y librerías de Ruby, además en /usr/local/src guardo los fuentes y paquetes generados por mi, así que solo tuve que instalarlos de nuevo.


Ahora ya podía reinstalar todos los paquetes, para ello usé el siguiente script:

  #!/bin/bash
# Get MY_PACKAGES then reinstall every package
# To generate MY_PACKAGES: sudo dpkg --get-selections > MY_PACKAGES
for pkg in `cat MY_PACKAGES | egrep -v deinstall | awk '{print $1}' | egrep -v '(dpkg|apt|ruby|sphinx)'`;do
aptitude -y install $pkg
done

Notas:

  • Le pongo el parámetro “-y” para que responda yes a todas las preguntas
  • Hago install en vez de reinstall para instalar solo lo nuevo.
  • El último “egrep” excluye los paquetes que me creé yo para que no me los pise con los de la distribución.

Al terminar la instalación de todos los paquetes solo me faltaba recuperar mis bases de datos. Para ello paré MySQL:

  $ sudo /etc/init.d/mysql stop

Copié todo directorio /var/lib/mysql al nuevo sistema y arranqué de nuevo mysql:

  $ sudo /etc/init.d/mysql start

Arrancó, pero me salía el error:

'Access denied for user 'debian-sys-maint'@'localhost'

Esto lo solucioné conectando con el cliente de MySQL y cambiándole el password a ese usuario:

$ mysql -u root

> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY PASSWORD '
' WITH GRANT OPTION
Nota: El password lo tienes en /etc/mysql/debian.cnf


Con esto ya está todo tal cual lo tenía antes de cargármelo.


Al mediodía probaré a hacer otra copia de seguridad, esta vez con grsync, deseadme suerte!
Categories: Uncategorized Tags: , , ,
  1. Sin comentarios aún.
  1. Sin trackbacks aún.