martes, 23 de noviembre de 2010

Restaurar el Sistema tras un desastre, a un punto anterior.

RESTAURAR EL SISTEMA (CON LA MISMA VERSIÓN DE LA DISTRO), TRAS UN DESASTRE , A UN PUNTO ANTERIOR EN EL TIEMPO.

Supongamos que se produce un desastre en nuestro sistema que no podemos arreglar, y queremos volver a tener el sistema lo mas parecido posible a como lo teníamos en un punto anterior en el tiempo: para poder recuperar el sistema (con la misma versión de la distro) a un punto en el que funcionaba correctamente, aplicando lo que se va a explicar,  se necesita tener la partición /home por separado de la partición / y no haber borrado los archivos de la caché de apt: /var/cache/apt/archives

Con lo que se indica a continuación podremos volver a tener nuestro sistema en un estado en el que volverá a funcionar correctamente, como tras una instalación del sistema desde cero, y con los mismos programas que tuviéramos instalados cuando el sistema funcionaba, sin tenerlos que buscar e instalar de uno en uno, e incluso pudiéndolos instalar sin tener conexión a internet.

( Se puede complementar con un programa de copia de seguridad Back in Time con el que se pueden crear "instantáneas" ( snapshots ) de los directorios del sistema que quieras: es buena idea hacer con este programa una copia de los directorios /home, /boot y /etc : copia-de-seguridad-de-nuestra-configuración.)

Los pasos que se indican a continuación se deben hacer en un momento en el que el sistema funciona correctamente para que se pueda recuperar posteriormente si es necesario.

I- Crear archivos de Recuperación:

Paso 1- crear un apt.tgz ( archivo comprimido ) con los repositorios que tienes en Synaptic y las claves de orígenes de Software: para ello se ejecuta en la terminal el comando:


sudo tar zcvf apt_`date +%d%b%y`.tgz /etc/apt/ /var/lib/apt/ /var/cache/apt/

Esto creará en la carpeta de usuario un archivo apt_fecha.tgz  ( por ejemplo apt_16Nov10.tgz )

Paso 2- Crear un archivo con una lista de los paquetes instalados: para ello se ejecuta en la terminal el comando:


sudo apt-get install dselect && dpkg --get-selections | grep -v deinstall | cut -f1> paquetes-totales_`date +%d%b%y`

Esto crea un archivo de nombre paquetes-totales_fecha (por ejemplo paquetes-totales_16nov10 ) en la carpeta de usuario.

Otra forma de guardar una lista de los programas instalados ( crear el archivo paquetes-totales_fecha)  es desde Synaptic -> seleccionas "Instalados" -> Archivo -> Save markings as -> en la ventana que se abre seleccionas "guardar el estado completo, no solo los cambios" y le pones un nombre a la lista - paquetes-totales_fecha - y le das a guardar en /home/usuario.





Con todo esto tenemos una copia de los paquetes instalados en el sistema, de los repositorios, y de las claves de orígenes de software que tienes en un momento dado en el que todo el sistema funciona correctamente.

Estos dos pasos se pueden hacer creando un script de Recuperación (en /home/usuario/Scripts/Recuperación ) , que puede ser ejecutado manualmente cuando queramos, o de forma automatizada como se indica mas abajo. El contenido de dicho script es:

#!/bin/bash
cd /home/usuario
echo Script para crear archivos de recuperación
echo crear el archivo apt_fecha.tgz
sudo tar zcvf apt_`date +%d%b%y`.tgz /etc/apt/ /var/lib/apt/ /var/cache/apt/
echo crear el archivo paquetes-totales_fecha
sudo apt-get install dselect && dpkg --get-selections | grep -v deinstall | cut -f1>paquetes-totales_`date +%d%b%y`
exit

paso 3- Guardas los archivos apt_fecha.tgz y paquetes-totales_fecha en lugar seguro...se supone que /home lo es ya que al recuperar el sistema no se va a formatear dicha partición, pero por si acaso se puede guardar otra copia en  por ejemplo en un pendrive o disco duro externo

-----------------------------------------

II- Recuperar el sistema a como estaba cuando se hizo lo anterior:

¿ Para que sirve esto ? pues para recuperar el sistema si tienes un desastre...

1-Instalas el sistema desde cero (desde el livecd, instalas la misma versión) , formateando la partición / , pero sin formatear la partición /home.

2-Reponemos los repositorios, las llaves y el caché de apt: para ello elegimos el archivo apt_fecha que queramos restaurar, y se ejecuta en la terminal el comando:


sudo tar zxvf  apt_fecha.tgz -C /   ( en el comando se sustituye apt_fecha.tgz por el nombre del archivo correspondiente, por ejemplo por apt_16Nov10.tgz )

3-Reinstalamos todos los paquetes que había antes del desastre: para ello elegimos el archivo paquetes-totales_fecha que queramos restaurar, y luego se ejecuta en la terminal el comando:


sudo apt-get update && sudo apt-get install dselect && sudo apt-get dist-upgrade && sudo dpkg --set-selections < paquetes-totales_fecha  && sudo dselect install ( en el comando se sustituye paquetes-totales_fecha  por el nombre del archivo correspondiente, por ejemplo por  paquetes-totales_16Nov10 )

Y dejará todos los paquetes que había instalados... Quedaría retocar el escritorio solamente, pero si se hizo sobre un sistema con una partición /home separada ni eso. Quizás haya que restaurar el Menú de Aplicaciones, para eso ver: copia de seguridad & recuperar Menú de Aplicaciones

En principio este método si no has borrado la caché, y no has bloqueado ningún archivo... No tiene porqué dañarte nada. Es más, es que si no has borrado la caché lo puedes hasta hacer sin estar conectado a internet... ya que te instalarían los paquetes que están en la caché que previamente has salvado.

----------------------

III Programar/Automatizar la creación de los paquetes de recuperación (apt_fecha.tgz y paquetes-totales_fecha ) :

Lo ideal seria ir guardando versiones sucesivas del archivo apt_fecha.tgz y de paquetes-totales_fecha, y que además se hiciera como una tarea programada automáticamente cada por ejemplo 1 mes ó 1 semana, etc.     ¿ como se puede hacer ?:  Creando el  script  de Recuperación con los comandos arriba indicados - en el apartado I -  y :

1- Automatizando la tarea con el comando crontab , como se explica en http://hatteras-blog.blogspot.com.es/2010/12/crontab-programarautomatizar-tareas.html

2- Ejecutandolo con: el programa gnome-schedule: Ejecutar el programa con permisos de root: sudo gnome-schedule ya que el script que queremos ejecutar con este programa contiene unos comandos que se ejecutan con permisos de root. . Hay que editar la tarea como se indica en la imagen: - comando: la dirección donde se ha guardado el script de Recuperación ( /home/usuario/Scripts/Recuperación)  - modo: comportamiento predeterminado.  - fecha de ejecución: en este ejemplo: todos los miércoles, y sábados ( dias 1,3, 6: lunes, miércoles y sábado), de todos los meses, a las 10:25h



Aquí se explica como usar el programa Gnome-Schedule:  Programar/Automatizar tareas repetitivas con Gnome-Schedule/

----------------------------------------------------------------------

jueves, 18 de noviembre de 2010

Recuperar archivos borrados o de un dispositivo dañado.

Método sencillo y útil ante la pérdida de información importante por un fallo mecánico de un dispositivo: pendrive, cdrom o dvd, o por haber borrado accidentalmente un archivo sin haberlo llevado a la papelera. Se necesita que el sistema sea capaz de reconocer y  montar dicho dispositivo. Se puede usar con cualquier dispositivo que el sistema reconozca y monte como sistema de almacenamiento de datos, por ejemplo una cámara digital de fotos.

A)-Saber la ruta donde se monta el dispositivo: ( hay varias formas, indico las dos que me parecen mas sencillas )

1- Ejecutar en la terminal el comando mount filtrado (con grep) por el nombre que le ha dado el sistema al montarlo ( etiqueta del dispositivo ): por ejemplo: mount | grep /media/PENTARJETA
.

Según puede verse en el ejemplo, la ruta del dispositivo es /dev/sdb1 y ha sido montado en /media/PENTARJETA.

Si no se tienen conectados muchos dispositivos, puede servir simplemente ejecutar el comando  mount en la terminal y buscando hasta encontrar tu dispositivo:

2- Se puede añadir al panel el Monitor del Sistema, y en la pestaña Sistema de Archivos ver la información del dispositivo que buscamos:


B)-Crear la imagen .iso del dispositvo:

Para poder crear la imagen ejecuta desde la terminal el siguiente comando

sudo dd if=/dev/sdb1 of=/tmp/dispositivo.iso conv=noerror,sync

donde:

/dev/sdb1 es el dispositivo a recuperar (para saber cuál es el tuyo no tiene más que seguir las instrucciones arriba indicadas ).

/tmp/dispositivo.iso es el fichero que vamos a crear a partir del contenido del dispositivo, en el directorio /tmp. ( asegúrate de que en dicha dirección tienes suficiente espacio para la imagen.iso que se creará, o cambia la dirección hacia alguna otra en la que si que tengas espacio: por ejmplo una partición aparte del sistema, o un disco duro externo ) 

conv=noerror,sync es el parámetro que indica al comando dd que ignore los errores y siga generando la imagen del dispositivo aunque se produzcan fallos.

C)-Recuperar ficheros de la imagen .iso creada:

Una vez creada la imagen del paso anterior (recomiendo hacer copia de seguridad de la iso por si fuese necesario) sólo nos queda instalar con Synaptic el paquete foremost y luego lanzar (una vez más desde la terminal) el comando:

foremost -v -t all -o /home/usuario/recuperados -i /tmp/dispositivo.iso

donde las opciones:

-v : modo detallado, para saber que está haciendo foremost de una manera más completa.

-o : Con la opción -o indicamos el lugar donde almacenar los archivos recuperados: en este ejemplo /home/usuario/recuperados

-t all : Con la opción -t indicamos el tipo de archivo a buscar: para recuperar todo lo recuperable ponemos -t all; puedes cambiar la opción all por una de las extensiones que foremost es capaz de recuperar, para que solo se recuperen los archivos con esa extensión: por ejemplo -t jpg ; o poner una lista de extensiones de archivo, separadas por comas: por ejemplo -t jpg,doc,png

-i : Con la opción -i indicamos el lugar donde esta la imagen .iso a escanear, en este ejemplo:  /tmp/dispositivo.iso

En el directorio /home/usuario/recuperados , aparecerán los  directorios para todos y cada uno de los tipos de archivos que foremost es capaz de recuperar (avi, bmp, dll, doc, docx, exe, gif, htm, jar, jpg, mdb, mov, mpg, mp4, ole, pdf, png , ppt, rar, wav, xls, zip , etc …  )  Lamentablemente la última versión de foremost aún no puede recuperar archivos con la extensión.mp3

————————---------

Otro programa similar se puede instalar desde Synaptic ( esta en casi todas las distros ) : testdisk ; una vez instalado también se habrá instalado otro comando: photorec . Éste último comando se ejecuta desde la terminal, y sirve para lo mismo que el comando foremost.

Como usar photorec: Recuperacion de fotos y archivos con PhotoRec o     PhotoRec paso a paso

Lista de archivos que photorec recupera: Formatos De_Archivos_Recuperados_Por_PhotoRec

------------------------------------------------------------------

lunes, 8 de noviembre de 2010

Copia de seguridad de Synaptic

En este blog hay varios temas sobre copia de seguridad de varias cosas: de particiones, de todo el sistema, de /home, de Firefox y de sus marcadores, de Thunderbird, del Grub/Grub2, del Master Boot Record y de la tabla de particiones, del menú de aplicaciones,   etc, y sobre programas para realizar copias de seguridad; me faltaba este tema , que considero bastante importante, y útil para restaurar el sistema y/o instalar un sistema semejante en varios pcs. Los archivos y directorios que tendríamos que copiar (y la forma de hacerlo ) para tener una copia de seguridad de Synaptic son:

1-- Lista de programas instalados: Para obtener una lista con todos los programas instalados (paquetes-ubuntu ) se puede hacer desde Synaptic -> seleccionas "Instalados" -> Archivo -> Save markings as -> en la ventana que se abre seleccionas "guardar el estado completo, no solo los cambios" y le pones un nombre a la lista - paquetes-ubuntu - y le das a guardar en /home/usuario.

Esto también se puede hacer con el comando: sudo apt-get install dselect && dpkg --get-selections | grep -v deinstall > paquetes-ubuntu , se crea un archivo paquetes-ubuntu en el directorio /home/usuario.

2-- Fuentes de Programas:  a) Para hacer una copia de seguridad de las "fuentes de programas" hay que copiar el archivo /etc/apt/sources.list . b) Para hacer una copia de seguridad de los repositorios que se añaden desde: Synaptic-> Configuración-> Repositorios ->pestaña "otro software" hay que copiar  el directorio /etc/apt/sources.list.d que es el directorio donde se guardan los repositorios de terceros (otro software).

( se puede hacer una copia por separado de este archivo y directorio, únicamente, o no hacerla ya que dicho archivo y directorio  se copiara también al hacer  la copia indicada en el punto 4 )

3-- Los paquetes .deb instalados en el sistema (los paquetes propiamente dichos, no solo una lista de ellos) se guardan en /var/cache/apt/archives Se puede crear una copia en un archivo comprimido, con el comando: sudo tar zcvf apt-deb.tgz /var/cache/apt/ con el que se creará en la carpeta de usuario un archivo apt-deb.tgz con los paquetes.deb que tengamos instalados.

4-- Para tener una copia de seguridad de las "claves" de orígenes de software: hay que copiar los directorios: /etc/apt/ /var/lib/apt/ la copia de todos ellos la podemos realizar con el comando: sudo tar zcvf apt-key.tgz /etc/apt/ /var/lib/apt/
con el que se creará en la carpeta de usuario un archivoapt-key.tgz con los repositorios y sus claves.

5- Para copiar todo lo anterior, el comando seria: sudo tar zcvf apt-synaptic.tgz /etc/apt/ /var/lib/apt/ /var/cache/apt/ con el que se creará en la carpeta de usuario un archivo apt-synaptic.tgz con todo lo anterior.

En mi portátil, con el sistema actualizado y todos los programas que quiero tener también en un pc de sobremesa,  ejecute en la terminal: sudo tar zcvf apt-synaptic.tgz /etc/apt/ /var/lib/apt/ /var/cache/apt/ y me lleve dicho archivo apt-synaptic.tgz a un  pc de sobremesa,con la misma distro que en el pc portátil,  y en él descomprimí el contenido ( lo hice en el Nautilus con permisos de root -sudo nautilus -  y descomprimiendo el contenido del archivo apt-synaptic.tgz en el directorio raiz / ) , et voila...tengo los mismos archivos .deb, el mismo /etc/apt/sources.list , la misma lista de paquetes instalados, y las mismas claves de orígenes de software, en el pc portátil que en el de sobremesa, con lo que fácilmente puedo instalar en éste último los mismos programas que tengo en el portátil sin tener que ir a buscarlos uno por uno.

——————------------------------------------------———

miércoles, 3 de noviembre de 2010

Pequeños Trucos (3 )

Deshabilitar la "lista de documentos recientemente abiertos", en: Lugares -> Documentos recientes: Abrimos Nautilus->Ver->mostrar archivos ocultos: buscamos el archivo .recently-used.xbel, lo borramos y creamos una carpeta con el mismo nombre ( carpeta .recently-used.xbel )  ( el motivo de crear la carpeta, es que si no lo hacemos, al abrir un nuevo archivo automáticamente se crea de nuevo el archivo .recently-used.xbel, pero ésto no sucede si hay una carpeta con el mismo nombre.)



Si queremos volver a habilitar dicha lista lo que tenemos que hacer es borrar la carpeta .recently-used.xbel , y al abrir un nuevo archivo automáticamente se crea de nuevo el archivo .recently-used.xbel, quedando de nuevo activa la lista de documentos recientemente abiertos.

————————

Borrar las palabras buscadas en: Lugares->Buscar archivos->el nombre contiene: Abre una terminal (o en su caso Alt+F2), y abre el siguiente comando: gconf-editor . Te abrirá el Editor de Configuración de Gnome y nos vamos a la ruta siguiente: /apps/gnome-settings/gnome-search-tool . Allí te aparecerá una entrada: history-gsearchtool-file-entry, doble clic y simplemente borrar lo que desees.





-----------------------

Borrar lista de últimas aplicaciones ejecutadas en “ejecutar una aplicación” ( con alt+f2):
Ejecutar gconf-editor , e ir a apps -> gnome-settings -> gnome-panel -> history-gnome-run: haz clic y veras que el “valor” que tiene son las diez últimas aplicaciones que se han ejecutado con alt+f2: puedes ir borrando de la lista esas diez aplicaciones.

------------------------

Escribir algunos comandos en un blog de Wordpress:

A) en algunos comandos aparecen dos guiones, y aunque al escribir el texto en la pantalla de edición del blog aparezcan como dos guiones, luego al publicar el tema aparecen como un solo guión largo. La solución para que aparezcan como dos guiones es escribir uno de ellos con tipografía normal, y el otro con tipografía cursiva ( o también con negrita ).
Por ejemplo al escribir el comando:
1- sudo apt-get remove --purge los dos guiones están escritos con tipografía normal
2- sudo apt-get remove --purge el primer guión está escrito con tipografía normal, y el segundo con cursiva
3- sudo apt-get remove --purge el primer guión está escrito con tipografía normal, y el segundo con negrita

La forma que mas me gusta como queda es la 2ª ( ya que en la 1ª es la forma en que lo hacia antes, y tenia que poner una nota explicando que debería escribirse con dos guiones ).

B) Para escribir el comando: sudo dpkg --get-selections | grep linux-image , el símbolo | hay que escribirlo tecleando la combinación: alt gr + 1

----------------------------------------------------------