Simplificando las reinstalaciones

Eloy Mier 02Es muy habitual para mi hacer una reinstalación del sistema operativo cada 6 meses mas o menos (ahora estoy un poco zángano pero bueno). Los principales motivos son dos, la reinstalación limpia todo el sistema y requiere de mi únicamente 10 minutos delante del PC . Notad que he dicho “delante del PC”, la máquina hace todo el trabajo por mi mediante unos scripts “artesanales” especiales de bash.

Si alguna vez necesitases reinstalar tu sistema Linux, lo mejor que puedes hacer ahora mismo son unos cuantos deberes. Escribete tranquilamente unos scripts de bash que te automaticen la mayor parte del trabajo. Esta es la unica manera de que no tengas que perder demasiado tiempo delante del PC durante las reinstalaciones. A menudo comienzo el proceso de instalación, me voy a ver una película, después corro algunos guiones bash cuando el instalador ha acabado y me piro a comer mientras el script hace el trabajo por mi. Nunca hago loggin en xorg hasta que todos los scripts han terminado. Simplemente inicio sesión en el terminal1(tty1), ejecuto el script de sistema y me largo con la película.

Yo mantengo la mayor parte de los paquetes, documentos, etc., en un segundo disco duro pero estos elementos podrían almacenarse en una unidad de cd/dvd, simplemente debiéramos montar el volumen en el script de sistema y permitir que el propio script guarde los elementos seleccionados en ese punto de montaje.

Script de sistema

El script de sistema debe contener únicamente comandos que modifiquen las preferencias del mismo y los contenidos. Notaras que estos scripts no contienen ningún comando apt-get . La razón es que creo que el superusuario debe estar presente y echar un ojo en cualquier instalación/eliminación de software que se realiza en la máquina para poder solventar cualquier problema que pueda surgir. Por supuesto, que el lector puede hacer lo que le de la gana en sus máquinas.

unix
Ten presente que este script es solo un ejemplo para mostrar que parte del trabajo necesario puede ser automatizado y asi evitar estar sentados delante de la máquina demasiado tiempo. Mi script de sistema es algo mas detallado que el que a continuación se muestra, edítalo y aplialo a tu antojo.

#!/bin/bash

# verificación de los premisos necesarios para ejecución del script
if [ $UID != 0 ]
then
exit
fi

# hace copia de seguridad de los ficheros de sistema por si las moscas
mkdir /etc/master_copies
cp /boot/grub/menu.lst /etc/fstab /etc/apt/sources.list /etc/sudoers /etc/X11/xorg.conf /etc/master_copies

# creacion de directorios necesarios
mkdir /mnt/sdb1 /mnt/iso

# Montar los sistemas de ficheros necesarios
mount /dev/sdb1 /mnt/sdb1

# Hacer modificaciones en los ficheros necesarias
cat /mnt/sdb1/system-files/fstab-entries >> /etc/fstab

# comentar el agente ssh agent en Xsession.options
sed 's/use-ssh-agent/# use-ssh-agent/g' /etc/X11/Xsession.options

# añadir lista de repositorios adicionales
cat /mnt/sdb1/system-files/sources.list >> /etc/apt/sources.list

# Instalacion de los temas para su uso global en el sistema
dpkg -i /mnt/sdb1/packages/my-theme.deb /mnt/sdb1/packages/my-icons.deb
cp /mnt/sdb1/graphics/wallpapers/* /usr/share/backgrounds

# Limpiar el sistema
apt-get clean
updatedb

#hecho
exit

Y esto es todo para el script de sistema. Cuando vuelvo de comer, el sistema debe estar listo para ejecutar los comandos apt-get necesarios. En este momento puedo verificar la lista de software a ser instalado, comenzando la instalación y dejando al sistema hacer su trabajo.

Hacer el backup de los ficheros importante es un paso FUNDAMENTAL. Seria incapaz de contar las veces que este paso me ha salvado el “trasero” después de editar incorrectamente el fichero xorg.conf. Todavía no entiendo como las instalaciones de Linux en sus distintas distribuciones no incluyen un paso tan importante como este en sus instalaciones, este tipo de procesos podrían ahorrar muchísimo tiempo y frustración al nuevo usuario de Linux. Recuperar el fichero perdido sources.list es tan sencillo como montar el sistema de ficheros con un LiveCD y copiar el fichero desde master_copies a su ubicación original.

Script de usuario

Este script solo debe contener comandos que modifican preferencias y contenidos en $HOME. De nuevo, este script es solo un ejemplo para mostrarte que parte del trabajo puede automatizarse para evitar que estes sentado delante del PC como un tonto durante horas. Mi script de usuario es mas detallado que el que aqui se muestra, edítalo y amplíalo como te interese a tu caso.

#!/bin/bash

# Asegurarnos de que estamos en $HOME
cd $HOME

# hacer copias de seguridad de los ficheros importantes. Tantas lineas como sean necesarias
mkdir .master_copies
cp algunos-ficheros .master_copies

# Copiar los ficheros necesarios a $HOME
mkdir -p Documents
cp -r /mnt/sdb1/office-files/* Documents
cp -r /mnt/sdb1/settings/GNUstep .

# Crear los enlaces simbolicos necesarios
ln -s /dev/null .adobe
ln -s /dev/null .macromedia

# instalar los temas
tar -xzf /mnt/sdb1/packages/infinity-theme.tar.gz .themes
tar -xzf /mnt/sdb1/packages/infinity-icons.tar.gz .icons
tar -xzf /mnt/sdb1/packages/myfonts.tar.gz .fonts

# hacer los ajustes de sistema que nos de la gana
gconftool-2 --type string --set /apps/metacity/general/theme "Infinity"
gconftool-2 --type string --set /desktop/gnome/interface/gtk_theme "Infinity"
gconftool-2 --type string --set /desktop/gnome/interface/font_name "MyFont 12"
gconftool-2 --type bool --set /apps/nautilus/desktop/home_icon_visible true
gconftool-2 --type bool --set /apps/nautilus/preferences/always_use_location_entry true
gconftool-2 --type integer --set /apps/panel/toplevels/bottom_panel_screen0/size 24
gconftool-2 --type integer --set /apps/panel/toplevels/top_panel_screen0/size 24

# hecho
exit

Y esto es todo para el script de usuario. La reinstalación del sistema esta completada y ajustada a mis gustos y puedo hacer un reinicio del mismo. Una vez realizado el reinicio, el sistema esta listo para usar por mi y he gastado un total de 10 minutos enfrente del PC gracias a los scripts.

El comando gconftool-2 es muy útil aquí y puede ayudar mucho a establecer las preferencias del sistema para ajustarlas a tus necesidades.

Saludos a tod@s y hasta la próxima.

Pregunta a los lectores sobre cuestión relacionada con grabación cdrw o dvdr sin unidad

Hola a todos y buenas noches,Eloy Mier

esta vez, en lugar de escribir uno de los artículos a los que estáis acostumbrados, voy a hacerlo al contrario. Tengo un pequeño problema al que todavía no he encontrado solución y me gustaría saber si a alguno de los lectores del blog se le ocurre alguna cosa de interés.

Paso a comentar cual es el problema:

  1. Máquina recien comprada.
  2. La máquina en cuestión no dispone de unidad de CD, ni de lectura ni de escritura, solo dispone de conectores externos USB 2.0.
  3. Por supuesto yo tampoco dispongo de ninguna de estas unidades externas y la solución no pasa por la compra de una de ellas.
  4. La máquina tiene el SO preinstalado, pero no incluye los CDS de recuperación en formato físico.
  5. La máquina tiene instalado software que permite la creación de dichos discos, o bien usando CD o bien DVD. Cuando arranco este software de creación de los discos de recuperación me informa de que no existen unidades sobre las que poder hacer la copia (lógico pues realmente no existen).

Ahora paso a comentar el objetivo:

  1. Creacion de las imágenes de los discos de recuperacion.

Ideas propias:

  1. Al igual que existe software para crear unidades virtuales de CD, pues supuse que tambien existiria algo para simular una grabadora. Hasta el momento he probado varias posibilidades, pero de momento no he dado con la grabadora virtual
  2. Usad Linux Live, con el comando dd para crear imagenes completas del disco existente en la máquina para poder recuperarlo en un futuro. El tema es que este enfoque tiene varios problemas y me gustaria conseguir de forma directa los discos de recuperacion, pues ademas pienso que en una situacion de recupoeracion el uso de los mismos es mas sencillo y rápido.

Pues poco mas, este es el problema y espero algun comentario a ver….

Saludos a todos.

Recuperación de archivos con dd y foremost

fedoraBien, echando un vistazo por la web, he encontrado un vídeo explicativo en el que de forma sencilla se explica como recuperar ficheros borrados de un disco e incluso de dispositivos dañados. He traducido la información que aparece en el vídeo a modo de documentación propia, pues me ha parecido una herramienta de mucho interés.

La recuperación se realiza en base a la estructura interna de los ficheros por lo tanto los elementos son recuperados sin la intervención del nombre de los mismos.

Este sistema de recuperación funciona en dispositivos USB, DVD, CDROM, etc incluso si han sido previamente eliminados o se encuentran dañados.

Los pasos que se muestran en el vídeo son los básicos, y es posible que cada uno de nosotros tenga que especializar alguno de los comandos que se muestran para lograr el objetivo planteado.

El primero de los pasos es instalar foremost en el sistema:

en el vídeo se esta usando Fedora y los comandos necesarios para la instalación del software son:

  • logados como root, yum -y install foremost

Como paso 2 debemos usar dd para  crear una copia del medio del que queremos recuperar los ficheros. Los parámetros del comando son:

  • if – fichero de entrada
  • of – fichero de salida
  • noerror – si se esta recuperando de un medio dañado sera interesante usar este parámetro
  • Con respecto a los ficheros de entrada, el parámetro que debemos pasar es el dispositivo del que queremos leer, recordemos que /dev/sdx para dispositivos USB, /dev/hdx para discos duros y /dev/cdrom para dvd’s y cd’s.
  • el fichero de salida se puede especificar por ejemplo como of=$HOME/Desktop/image.img

Como paso 3, para poder realizar la recuperación es importante crear un directorio vacío. Digo importante por que en otro caso la aplicación foremost no funcionará.

Como paso 4 debemos correr foremost contra el fichero de imagen. Los parámetros de foremost son:

  • -i fichero de imagen
  • -o directorio de salida (VACIO)
  • -t tipos de fichero a recuperar, se puede usar el valor “all” para recuperar todos los ficheros

Como paso 5, ahora podremos ver que es lo que ha recuperado foremost

  • el software crea varios directorios para cada tipo de fichero y ademas un fichero audit.txt con un registro del proceso

Bueno, pues ya se ha quedado todo escrito. Espero que a alguno os sea de utilidad.

El vídeo del que he extraído la información lo podéis ver a continuación, muy bueno por cierto:


Watch How to recover files from deleted or damaged media in How to Videos |  View More Free Videos Online at Veoh.com

Cómo recuperar grub después de instalar un nuevo XP

Después de realizar una nueva instalación de Win XP, en el caso de tener instalado el grup, se pierde el multi arranque. Voy a comentar mi configuración a ver si a alguno le puede valer como informaciónón para recuperar el suyo.

Hoy he realizado una nueva instalación del XP. Actualmente este SO solo lo uso para los juegos. Como todos sabemos este sistema se degrada con facilidad, así que cada cierto tiempo me veo un poco obligado a plataformar (como diria mi amigo juarez) ese SO.

Voy a comentar la configuración que tengo actualmente a nivel de HD y cómo he recuperado el arranque múltiple.

Mi configuración es simple, 2 discos sata de 250Gb/u.

El primero de los discos “/dev/sda” lo tengo con Win XP y el segundo “/dev/sdb” con OpenSuse 10.2. Hoy al instalar de nuevo Windows he perdido el grup del primero de los discos. Los pasos que he seguido para recuperarlo son:

1º Arranque con el primero de los discos de OpenSuse 10.2
2º Arranco el sistema de rescate
3º El / del sistema de rescate es read only, pero por debajo de / hay directorios de lectura/escritura, así que he montado la partición del sistema OpenSuse donde me ha podido, en este caso /lib/firmware/os. Antes del montaje tenemos que crear el directorio, parece obvio

La partición que he montado en ese directorio ha sido /dev/sdb2 que es la que se corresponde con mi sistema OpenSuse.

4º Directamente he instalado el cargador de arranque existente en OpenSuse en el primero de los discos “/dev/sda”, para ello he ejecutado la orden grup-install, aprovechando la existencia de la informacion de arranque en el directorio de arranque de mi particion de OpenSuse. La orden usada ha sido
grub-install –root-directory=/lib/firmware/os –no-floppy /dev/sda

Despues de la ejecucion de la orden, el sistema me ha informado de que todo habia sido ok.

5º A continuación he realizado un reboot de la máquina, viendo sin problema el grub anterior

Bueno, pues espero que a alguien le sirva para algo, saludos a todos.