miércoles, 28 de julio de 2010

Copia de seguridad de la configuración del Grub2

Resumiendo, para usar una copia de seguridad de la configuración del  grub2 hay que copiar/restaurar estos tres elementos:
- el archivo /etc/default/grub
- el directorio /etc/grub.d/ ( y todos los archivos - scripts - que contiene )
- y el archivo /boot/grub/grub.cfg .
Puedes copiarlos en donde consideres oportuno para tenerlos a mano por si te hacen falta en algún momento.

Pero esto no sirve para recuperar el grub2 que se haya perdido, ( eso es otro tema   http://hatteras-blog.blogspot.com.es/2010/08/recuperar-el-grub2.html ) sino que esto sirve para, una vez restaurado el grub2, volverlo a tener como lo teníamos antes del desastre.

Con el comando ejecutado en la terminal:
sudo tar zcvf grub2_`date +%d-%B-%Y-%H-hora-%M-minutos`.tar /etc/default/grub /etc/grub.d/  /boot/grub/grub.cfg
se crea un archivo comprimido grub2_fecha.tar ( por ejemplo: grub2_06-febrero-2011-02-hora-07-minutos.tar  ) con el contenido de los archivos y directorios  arriba indicados.

Con solo eso ya podríamos dar por terminado el tema, y si no te interesa saber mas, ni el porque de tener que copiar esos tres elementos no hace falta que sigas leyendo, pero si quieres saber algo mas, continua...

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

Así como la configuración del antiguo grub se guardaba en este único archivo ( /boot/grub/menu.lst) la configuración del grub2 se guarda en varios archivos que se encuentran en tres lugares principales:

1- archivo /boot/grub/grub.cfg - Este es el principal archivo de configuración que reemplaza a menu.lst.
A diferencia de menu.lst, este archivo no se debe editar a mano; si lo abres con gedit, él mismo te lo advierte:

# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub

es decir, traducido:

# NO editar este archivo
#
# Se genera automáticamente por /usr/ sbin/grub-mkconfig usando plantillas
# de /etc/grub.d y la configuración de /etc/default/grub



2- directorio /etc/grub.d/ - Este directorio contiene scripts del nuevo grub2. Estos scripts son bloques de construcción de los que nace el archivo de grub.cfg. Cuando se ejecuta el comando de grub2 (update-grub) , los guiones se leen en una cierta secuencia y se crea grub.cfg .

Los scripts que contiene, entre otros, son:
00_header es el script que carga la configuración de GRUB en / etc / default / grub, incluyendo tiempo de espera, la entrada de arranque por defecto, y otros
05_debian_theme define el fondo, los colores y temas. El nombre de este script  seguramente cambiara en otras distribuciones cuando adopten el grub2.
10_linux se encarga del kernel de linux en la partición principal.
20_memtest86+ carga la utilidad memtest86+
30_os-prober es el guión que analizará los discos duros para otros sistemas operativos y añadirlas al menú de arranque.
40_custom es una plantilla que puede utilizar para crear entradas adicionales que se añadirán al menú de arranque.

3- archivo /etc/default/grub - Este archivo contiene los ajustes de menú de grub2 que son leídos por las secuencias de comandos de grub2  y escrita en grub.cfg. El directorio /etc/default/ contiene muchos otros archivos no relacionados con el grub2, no se emplea únicamente para el grub2.

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

El archivo /etc/default/grub contiene la personalización del grub2; el directorio /etc/grub.d/ tiene scripts que contienen la información del menú grub2 y el sistema operativo scripts de arranque.
Cuando se ejecuta el comando update-grub, se lee el contenido del archivo de arranque y los scripts de /etc/grub.d/ , y se acaba el proceso creandose el archivo grub.cfg.

Una vez comprendido esto, ya sabemos que no basta con hacer una copia de seguridad del archivo /boot/grub/grub.cfg ya que si no tenemos también el /etc/default/grub y  el /etc/grub.d/ de forma adecuada, al ejecutar update-grub se creará un archivo /boot/grub/grub.cfg distinto al que habíamos recuperado desde la copia de seguridad.

———————–

viernes, 23 de julio de 2010

Iniciar una imagen .iso de Ubuntu guardada en el disco duro desde el grub2

Una de las grandes ventajas que trae el Grub2 es poder bootear una imagen .iso sin necesidad de grabarla a un CD/DVD, es decir utilizar una imagen .iso de un LiveCD sin grabarla en un CD . Con ello podemos tener instalado en nuestro disco duro una versión de Ubuntu o de Mint ( las dos distros con las que he probado que este sistema funciona ) e ir probando sucesivas versiones de ellas, sin tener que malgastar cd/dvd, por ejemplo podemos tener instalado en el disco duro la versión Gnome e ir probando la versión Kde, Lxde, etc o tener una versión de Gnome  e ir probando las siguientes versiones en Gnome antes de decidir si actualizar o no a una versión posterior.

Voy a explicar como añadir al Grub2 dos opciones para desde él poder iniciar el pc desde dos imágenes.iso guardadas en nuestro disco duro. Explico como añadir dos opciones, pero se pueden añadir de forma similar todas las líneas de entrada a imágenes.iso que se quieran, con tal de que haya espacio en la partición / para que quepan las imagenes.iso

Para este ejemplo las imágenes.iso que usaré las llamo: livecd.iso  ( que en mi caso es una iso de Mint9 en español ) y ubuntu.iso ( que en mi caso es una iso de Ubuntu 10.04 )

I- Las imágenes livecd.iso y ubuntu.iso deben estar guardadas en el directorio raiz /  (para copiarlas en ese directorio hay que hacerlo desde el administrador de archivos Nautilus ejecutado con permisos de root: alt+f2 y luego gksu nautilus )

II- Deberemos editar el archivo /etc/grub.d/40_custom, con sudo gedit /etc/grub.d/40_custom y agregar unas nuevas entradas al menú, para ello copiamos y pegamos este texto tal cual y sin modificarlo en la linea vacía inmediata al final del texto inicial de forma que quede:   ( los números puestos delante de cada linea no hay que copiarlos, solo los he puesto para ayudar a ver lo que es cada linea, ya que una de ellas aparece en el blog como si fueran dos; solo copiar el texto en verde)

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

1- menuentry “Livecd” {
2- set root=(hd0,7)
3- loopback loop /livecd.iso
4- linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/livecd.iso locale=es
_ES bootkbd=es console-setup/layoutcode=es --
5- initrd (loop)/casper/initrd.lz


6- }


1- menuentry “Ubuntu” {

2- set root=(hd0,7)
3- loopback loop /ubuntu.iso
4- linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso locale=es
_ES bootkbd=es console-setup/layoutcode=es --
5- initrd (loop)/casper/initrd.lz


6- }

Teniendo en cuenta que:
1– menuentry “Livecd” { -> pone el título en el menú de grub2 para poder escogerlo como opción de arranque. Esta linea podemos modificarla cambiando “Livecd” por otro nombre que nos parezca mejor.

Editado, tras un comentario: He estado probando, y a mi, me funciona con la línea:
menuentry “Ubuntu” {
(usando la combinación de teclas mayúscula+2 para que se escriban las comillas)
Pero también he visto que con los corchetes en vez de las comillas:
menuentry [Ubuntu] {
también me funciona.
2– la línea set root: nos indica en que partición esta el archivo.iso; esta linea es la única que tenemos que modificar según donde tengamos el directorio raiz, es decir en que partición tenemos instalado el sistema.

Ten en cuenta que (hd0,7) significa disco primero (sda) y partición 7 (sda7); antiguamente la partición 7 se indicaba restando 1, es decir, (hd0,6). Mucho cuidado con no equivocarte pues no encontraría la partición correcta.

3– la linea loopback loop: nos indica la ruta dentro de la partición donde esta el archivo.iso ( directorio raiz / ): livecd.iso y ubuntu.iso son  los nombres de las imágenes iso que he empleado para este ejemplo.

4– La línea linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso locale=es_ES bootkbd=es console-setup/layoutcode=es – debe ir en una sola linea en el archivo /etc/grub.d/40_custom aunque aquí parezca que son dos líneas) es para indicarle que arranque el kernel y que es una imagen iso que debe montar y usar como sistema raiz, y que la monte con todo ( los menús, los programas, y la distribución del teclado ) en español.

Cuidado: si en vez de
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso locale=es_ES bootkbd=es console-setup/layoutcode=es --
ponemos
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso --
el resultado será que en vez de en español el sistema aparecerá en ingles.
5– la línea initrd(loop): nos indica donde esta el initrd

III- Guardamos los cambios realizados en el archivo /etc/grub.d/40_custom

IV- Actualizamos el grub2 con el comando: sudo update-grub2

V- Reiniciamos el pc y veremos que en el menú Grub2 aparecen dos nuevas opciones ( Livecd y Ubuntu ) de forma que al elegir una de ellas arrancamos, en mi caso un Mint9 en español o un Ubuntu 10.04 también en español.

Una vez hechos estos cambios: En mi caso la imagen livecd.iso hace referencia a un archivo .iso de mint9, pero si quieres que arranque otra imagen.iso no hace falta que modifiques el archivo /etc/grub.d/40_custom, basta con que renombres la imagen .iso que quieres arrancar poniéndole el nombre livecd.iso ( o ubuntu.iso ), y que la copies al directorio raiz /

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

Este sistema tiene sus limitaciones: he probado este método, desde Mint9, con varias imágenes .iso de varias distros, pero de las que he probado solo funciona para las isos de Ubuntu y de su derivada Mint, para otras derivadas, como por ejemplo para Guadalinex, no funciona;  y tampoco para otras distros de linux como PcOnLinux.

No sé si desde un Guadalinex v7 instalado en el disco duro se puede hacer lo mismo de forma que se pueda iniciar una imagen.iso de Ubuntu o de Mint; si algún usuario de Guadalinex v7 prueba este método me gustaría que me indicara tanto si le funciona como si no, y también seria bueno que lo comunicara al servicio técnico de Guadalinex.

( Editado [15-Abril-2011 ]: Con el método que se indica, con Unetbootin, en  Probando una distro desde el menú del Grub2 con Unetbootin  ya he conseguido poder ejecutar la .iso de Guadalinex v7  que tengo en /  , sin necesidad de grabarla en un dvd.  Pero curiosamente en vez de en español me salen en inglés.

Unetbootin nos permite crear ISOs que puedan ejecutarse directo desde el disco duro. ¿Qué hay que hacer? Simplemente abre el programa, busca la imagen .iso que descargaste y selecciona Type > Hard Disk y haz clic en OK.
Reinicia la máquina y cuando aparece el menú del Grub2, selecciona la entrada “Unetbootin”.
Lamentablemente, cada vez que actualices la .iso (porque descargaste una versión nueva) vas a tener que ejecutar de nuevo Unetbootin para actualizar la entrada en el menú del Grub2. )
--------------------------------

Una vez configurado dicho archivo /etc/grub.d/40_custom de esta forma, y actualizado el grub2 con sudo update-grub2, una sola vez, para que se inicie cualquier livecd en vez de ir modificando dicho archivo con el nombre de la .iso, lo que hago es copiar la .iso en el directorio raiz /  y cambiarle el nombre: por ejemplo linuxmint-9-gnome-cd-i386.iso lo renombro a livecd.iso.

Por lo que dado que con esto lo único que habría que cambiar en /etc/grub.d/40_custom seria la partición en la que esta el directorio raiz /  ( en mi caso hd0,7 )  y copiar en / la imagen.iso que quisiéramos iniciar, pero cambiándole el nombre a livecd.iso ¿ no se podría hacer esto con un simple ( o complicado, no lo sé... )  script ?

Un script que nos hiciera dos simples preguntas:
--- ¿ en que partición se tiene instalado el sistema ( la partición / ) ?
al contestar a esto, el script escribiría la contestación adecuada en el archivo /etc/grub.d/40_custom
y luego el script actualizaría el grub2 con sudo update-grub2
--- ¿ dirección donde tenemos la imagen.iso que queremos iniciar con el grub2 ?
al contestar a esto nos la copiaría, desde esa dirección al directorio raiz / , cambiándole el nombre por livecd.iso

¿ Alguien sabe como hacer un script semejante ?
-------------------------------

lunes, 19 de julio de 2010

Edición básica del Grub2

En Ubuntu 9.10/10.04 ( y Mint 8/9 y Guadalinex v7 ) el Grub de versiones anteriores ha sido sustituido por el Grub2 como "gestor de arranque múltiple" para elegir que sistema operativo iniciar.

En este tema solo expongo lo que considero que es necesario conocer cuando el único sistema operativo que se tiene instalado en el pc es Linux. ( Lo siento si te interesa información sobre como añadir la entrada para el Windows, pero hace ya tiempo que no lo tengo en mi portátil - el xp fué el último que tuve - pero en Google hay información al respecto...ademas si ellos no dan información ni facilidades para que se use Linux, ¿ porque ibamos a dar los usuarios de Linux información para el uso de Windows ?)

Al contrario que con el Grub en el que solo hay que editar un archivo /boot/grub/menu.lst, para editar Grub2 hay que modificar varios archivos, según lo que queramos cambiar.

En todo caso, todos los archivos que hay que editar hay que hacerlo con permisos de root: sudo gedit nombre_del_archivo.

Siempre, después de la edición del archivo correspondiente: guardamos los cambios del fichero que hayamos modificado, lo cerramos y ejecutamos el siguiente comando para actualizar el Grub2: sudo update-grub2

Hacer que aparezca el menú del grub2: Si con el sistema recién instalado no te aparece el menú del Grub2, y se inicia automáticamente la sesión normal del sistema, es conveniente/altamente recomendable que cambies la situación para que te aparezca el menú del Grub2, para que puedas elegir por ejemplo iniciar en el "recovery mode".

Para ello edita el fichero /etc/default/grub ( con lo siguiente en la terminal: sudo gedit /etc/default/grub ) de forma que aparezca el símbolo # delante de las siguientes entradas:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=" splash"


Guarda los cambios realizados en el archivo, y luego recuerda ejecutar en la terminal el comando sudo update-grub2

Cambiar la resolución de la pantalla del Grub2:

Se ejecuta: sudo gedit  /etc/grub.d/00_header para editarlo: se busca la linea que empieza por set gfxmode=  y a continuación del signo = se pone la configuración que se quiera ( en este ejemplo 640x480) ; se guardan los cambios realizados a dicho archivo, y se ejecuta la orden sudo update-grub2 para que se actualice el grub2.

set gfxmode=640x400
insmod gfxterm
insmod vbe
terminal gfxterm

Cambiar la imagen de fondo del menú:

Obtienes de donde quieras una imagen que te guste, ( por ejemplo instalando el paquete grub2-splashimages - se instalaran varias imágenes.tga en el directorio /usr/share/images/grub/ ) o incluso la creas tú.
- la abres con Gimp y la editas para asegurarte que tiene esta dimensión 640 x 480 pixels ( Gimp-imagen-escalar imagen ), la guardas con el nombre linuxmint.png ( asegúrate que la extensión es .png )
- abres nautilus en modo root y vas a la carpeta /boot/grub y en ella veras que hay una imagen llamada linuxmint.png, bueno pues esta imagen que viene por defecto la sobreescribes con tu imagen linuxmint.png
- cierras el nautilus en modo root
- reinicias el sistema y veras que ya tienes como imagen de fondo del Grub2 la imagen que tu hayas puesto de la forma anterior.

A mi me ha funcionado perfectamente, y he cambiado varias veces la imagen del Grub2, sobreescribiendo la imagen linuxmint.png con una nueva con el mismo nombre.
Ademas este método tiene la ventaja de que no toca "archivos sensibles" del sistema.

En este caso he puesto como se hace en Mint9, que es donde lo he probado, donde la imagen del Grub2 se llama por defecto linuxmint.png , lógicamente en otras distros este nombre variará, pero el método de cambiar la imagen de fondo del Grub2 debe ser similar.

En varios foros he visto que hay otro método de cambiar la imagen de fondo del grub2, ( editando el archivo /etc/grub.d/05_debian_theme ) pero me parece mas complicado.

Cambiar el color del texto de las líneas del menú:
Antes de modificar los colores del texto debemos tener una imagen de fondo. Para modificar los colores del texto abrimos el archivo /etc/grub.d/05_debian_theme ejecutando en la terminal: sudo gedit /etc/grub.d/05_debian_theme. Y buscamos en la sección:



# set the background if possible

if background_image `make_system_path_relative_to_its_root ${bg}` ; then
set color_normal=yellow/blue
set color_highlight=green/black

Donde: --- en "set color_normal" yellow es el color del texto sin seleccionar y blue es el color del fondo la línea del texto sin seleccionar, del menú del grub2

--- en "set color_highlight", "green" es el color del texto seleccionado y "black" es el color del fondo en la línea de texto seleccionado. ( Hay que tener en cuenta que el color black colocado en este segundo lugar no hace que el fondo sea negro, sino transparente) .

Los colores que se pueden utilizar son: rojo = red ; verde = green; azul =blue;  amarillo = yellow ; cian = cyan ; magenta = magenta ;  blanco = white ; negro = black ( transparente = black , si se pone como color en el segundo lugar ).

Después de modificar el archivo, y guardar los cambios, debemos como siempre  actualizar el menú del Grub2 con el comando: sudo update-grub2


Eliminar la entrada de memtest:  
Basta con quitarle los permisos de ejecución, con la línea de comandos:
sudo chmod -x /etc/grub.d/20_memtest86+
Y si quieres volver a recuperarlo, solo tienes que cambiar la opción -x por +x en la orden anterior.
sudo chmod +x /etc/grub.d/20_memtest86+

Añadir y Quitar líneas correspondientes a un kernel

A) Añadir lineas correspondientes a un nuevo kernel: se añaden de forma automática al instalar un nuevo kernel, bien con synaptic o bien con el gestor de actualizaciones.

B) Añadir lineas que hacen referencia a un kernel antiguo:  Desinstalar un  kernel

Primero averiguar que kernels tenemos instalados, ejecutando en la terminal: sudo dpkg --get-selections | grep linux-image

Luego eliminamos los kernels antiguos, por ejemplo para eliminar el 2.6.20-14-generic,  sudo apt-get remove --purge linux-image-2.6.20-14-generic 

Con esto se habrá desinstalado completamente el kernel antiguo, y además se realizara un update del grub de forma automática, eliminando la entrada del kernel antiguo, pero aún podemos para asegurarnos que el grub2 esta actualizado, ejecutar : sudo update-grub2

Editar el tiempo que se mantiene activa la pantalla del grub2 hasta que se inicia el sistema (timeout ):

Se ejecuta en la terminal: sudo gedit /etc/default/grub , y se edita la entrada GRUB_TIMEOUT=5 se cambia 5 por el tiempo en segundos que se quiera. Guardamos los cambios hechos en el fichero y ejecutamos en la terminal para actualizar el Grub2: sudo update-grub2 .

Cambiar el sistema que se inicia por defecto:
En el archivo: /etc/default/grub se edita GRUB_DEFAULT=0
teniendo en cuenta que GRUB_DEFAULT= corresponde a la línea del menú por defecto: 0 es la primera, 1 la segunda, 2 la tercera, etc. etc.
Guardamos los cambios hechos en el  fichero, cerramos el archivo,  y ejecutamos el siguiente comando para actualizar el grub:
sudo update-grub2

Iniciar una iso de Ubuntu guardada en el disco duro desde el grub2: Esto es una nueva opción que tiene el Grub2, que no tenia el Grub. De esto trata el tema: iniciar-una-imagen-iso-de-Ubuntu-guardada-en-el-disco-duro-desde-el-Grub2

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

Algunas opciones se pueden cambiar con el programa Startupmanager: pero varias de las opciones que se podían cambiar con Grub+Startupmanager no están disponibles con Grub2+Startupmanager...quizás si sacan un Startupmanager2.

—————--------------——–

lunes, 12 de julio de 2010

Cambiar las imágenes de Inicio (Grub2, Plymouth, y de Acceso-Login)

Desde que iniciamos el pc hasta que llegamos a la imagen del escritorio vamos pasando por varias imágenes: - imagen de fondo del gestor de arranque múltiple ( Grub2 )  - imagen de inicio del sistema (Plymouth )  - pantalla de acceso GDM o "login".

I- Cambiar la imagen de fondo del Grub2:

Siempre que cambiamos algo del Grub2, después, para que se guarden los cambios y se actualice hay que ejecutar en la terminal: sudo update-grub2


Si queremos instalar unas cuantas imágenes mas podemos ejecutar: sudo apt-get install grub2-splashimages con lo que se instalara un paquete de imágenes.tga para el grub2 desde los repositorios oficiales, dichas imágenes se instalan en el directorio  /usr/share/images/grub/

Desde mi punto de vista la forma mas fácil de cambiar la imagen del grub2 es esta:

- Obtienes de donde quieras una imagen que te guste, por ejemplo del paquete de imágenes para el grub2 o incluso la creas tu.
- La abres con Gimp y la editas para asegurarte que tiene esta dimensión 640 x 480 pixels ( Gimp-imagen-escalar imagen ), la guardas con el nombre linuxmint.png ( asegúrate que la extensión es .png )
- Abres nautilus en modo root y vas a la carpeta /boot/grub y en ella veras que hay una imagen llamada linuxmint.png, bueno pues esta imagen que viene por defecto la sobreescribes con tu imagen linuxmint.png
- Cierras el nautilus en modo root
- Reinicias el sistema y veras que ya tienes como imagen de fondo del grub2 la imagen que tu hayas puesto de la forma anterior.

En este caso he puesto como se hace en Mint9, que es donde lo he probado, donde la imagen del grub2 se llama por defecto linuxmint.png , lógicamente en otras distros este nombre variará, pero el método de cambiar la imagen de fondo del grub2 debe ser similar.


( En varias webs hay otra forma de cambiar la imagen  de fondo del grub2, editando el fichero /etc/grub.d/05_debian_theme con: sudo gedit /etc/grub.d/05_debian_theme pero me parece mas difícil de hacer y de recordar como se hace ).

Antes de elegir la imagen que vayas a poner fíjate de que color son las letras, tanto las que se ven normalmente como las que se ven cuando las seleccionas, para que se vean bien, hagan contraste, sobre la nueva imagen que vas a poner. Por ejemplo yo tengo las letras en blanco y en negro cuando las selecciono, y por lo tanto mi imagen del grub2 no debe ser una imagen con fondo blando pues sino no se verían las letras.

También se puede cambiar el color de las letras de las líneas del menú del grub2:

Antes de modificar los colores del texto debemos tener una imagen de fondo. Para modificar los colores del texto abrimos el archivo /etc/grub.d/05_debian_theme con sudo gedit /etc/grub.d/05_debian_theme


En la sección siguiente:

set menu_color_normal=white/black
set menu_color_highlight=blue/white

cambiar los colores como se indica:

-- En "set menu_color_normal" el color "white" es el color del texto sin seleccionar y "black" es el color de fondo de la linea sin seleccionar. ( curiosamente si queremos que el color de fondo sea transparente y deje ver el color de la imagen de fondo del menú de grub2 hay que poner black, es decir el fondo no sera negro sino transparente )

-- En "set menu_color_highlight", "blue" es el color del texto seleccionado y "white" es el color del fondo en la línea de texto seleccionado.

Los colores que se pueden utilizar son:   rojo=red --verde=green--azul=blue--amarillo=yellow--cian=cyan--magenta=magenta--blanco=white--negro=black

Después de modificar el archivo /etc/grub.d/05_debian_theme, debemos, como siempre que se modifica el grub2,  actualizar grub.cfg con el comando: sudo update-grub2

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

A mi me ha funcionado perfectamente, y he cambiado varias veces la imagen del grub2, sobreescribiendo la imagen linuxmint.png con una nueva con el mismo nombre.
Ademas este método tiene la ventaja de que no toca "archivos sensibles" del sistema.

Esta es ahora la imagen de mi grub2:




Para que la imagen se vea con mas nitidez, asegúrate que en el programa Startupmanager está seleccionada una profundidad de color de 24 bits.

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

II- Cambiar la imagen de inicio del sistema ( Plymouth ) :

Esto solo sirve para Mint9/Ubuntu 10.04 ( y Guadalinex v7), ya que:
Mint 7 / Ubuntu 9.04 usaba usplash
Mint 8 / Ubuntu 9.10 ya no usaba usplash sino xplash
Mint 9/ Ubuntu 10.04 ya no usa xplash sino plymouth

He averiguado como cambiar la imagen del inicio/apagado del sistema ( tema Plymouth ), la que aparece después de la imagen de fondo del grub2, y que es también la imagen que aparece justo antes de apagarse el sistema.

Siempre que cambiamos algo del tema Plymouth, después, para que se guarden los cambios y se actualice hay que ejecutar en la terminal: sudo update-initramfs -u

El tema de plymouth por defecto en Mint9 ( ubuntu-logo ) esta en /lib/plymouth/themes/ubuntu-logo. Se puede modificar dicho tema, modificando sus tres componentes. ( Como todos ellos están en un directorio del sistema para su edición hay que ejecutar sudo nautilus para acceder a ellos con permisos de root, para luego poderlos modificar -por ejemplo poder abrir con permisos de root una imagen con el programa gimp - )

1- Modificar la imagen:
- Se modifica/cambia la imagen /lib/plymouth/themes/ubuntu-logo/ubuntu_logo.png por otra que nos guste mas: dicha imagen nueva debe conservar el nombre de la original (ubuntu_logo)  y puede tener el mismo tamaño -en pixeles- que la original, o puede ser algo mayor.

2- Modificar el color del fondo:
- Instalar con synaptic el programa gcolor2
- Ejecutar dicho programa y elige el/los color/es que quieras poner de fondo en el tema de Plymouth
- Anota el valor de red, green y blue para dicho color: por ejemplo: 125, 238, 162   ( color verde claro )
- Divide dichos valores entre 255 ( en este ejemplo: 0.49, 0.93, 0,63 )
- Abre con permisos de root: sudo gedit /lib/plymouth/themes/ubuntu-logo/ubuntu-logo.script
- busca en él los siguientes lineas:
Window.SetBackgroundTopColor (1.00, 1.00, 1.00);
Window.SetBackgroundBottomColor (1.00, 1.00, 1.00);
- Sustituye los valores entre paréntesis por los que has hallado: puedes poner los valores de dos colores, uno para la mitad superior (BackgroundTopColor) de la pantalla de plymouth, y otro para la mitad inferior (BackgroundBottomColor ) , de forma que la pantalla tendrá dos colores que pasan del uno al otro en degradación; o puedes poner en ambas lineas los mismos valores, de forma que el tema de plymouth tendrá un solo color.
De forma que queden, por ejemplo:
Window.SetBackgroundTopColor (0.49, 0.93, 0,63);
Window.SetBackgroundBottomColor (1.00, 1.00, 1.00);


( Los valores:
1.00, 1.00, 1.00 son del color blanco
0.50, 0.50, 0.50 son del color gris
0.00, 0.00, 0.00 son del color negro )

- Guarda los cambios realizados en el archivo, y ciérralo.

3- Modificar los puntos de colores parpadeantes:
-- selecciona el archivo /lib/plymouth/themes/ubuntu-logo/progress_dot_off.png y ábrelo con permisos de root con gimp:
- puedes aumentar el tamaño del punto de color: gimp ->imagen-> escalar imagen: cambiar el tamaño a por ejemplo 63x63 ( el triple de su tamaño original)
- puedes cambiar el color del punto
- guardas los cambios y cierra gimp.
-- selecciona el archivo /lib/plymouth/themes/ubuntu-logo/progress_dot_on.png y lo  abres con permisos de root con gimp, y lo modificas de forma similar; guardas los cambios y cierras gimp.

Una vez modificado a tu gusto el tema de Plymouth, para actualizarlo:
- ejecuta en la terminal : sudo update-initramfs -u
- en el próximo reinicio ya tendrás el nuevo tema de Plymouth tanto al inicio como al final.

Esta es la imagen de la pantalla de Plymouth por defecto en Mint9:



Y, luego de los cambios, esta es ahora mi imagen de Plymouth:



Para que se vea bien tanto la imagen del grub2 como la de Plymouth lo mejor es ponerlas, con el programa Startupmanager, con una profundidad de color de 24 bits.

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

Además del tema de plymouth que viene por defecto, se pueden con synaptic instalar otros temas (buscando "plymouth-theme") , y luego de instalar el/los que se quieran:

- para elegir el tema de plymoutn a usar: sudo update-alternatives --config default.plymouth

- para actualizar el tema: sudo update-initramfs -u

Los temas plymouth se instalan en /lib/plymouth/themes, de forma que por ejemplo el tema "plymoth-solar" se instala en /lib/plymouth/themes/solar y se puede modificar de forma similar a como se modifica el tema de /lib/plymouth/themes/ubuntu-logo.

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

Si lo que se desea es Saltar la animación del Plymouth y arrancar sin la animación Splash, viendo todos los procesos que se van cargando.
1) Editar el archivo /etc/default/grub: ejecutando en la terminal: sudo gedit /etc/default/grub

2) Buscar las líneas:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=" splash vga=795"

y cambiarlas por:
GRUB_CMDLINE_LINUX_DEFAULT=

GRUB_CMDLINE_LINUX=


3) Guardar los cambios, cerrar el archivo y teclear: sudo update-grub

Después de los cambios el siguiente arranque será como en la imagen:



Si nos arrepentimos y queremos Volver a ver la animación de Plymouth, lógicamente debemos deshacer los cambios hechos en el archivo /etc/default/grub, volver a actualizar el grub.

sudo gedit /etc/default/grub

volvemos a poner las lineas como estaban:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=" splash vga=795"

Guardamos los cambios, cerramos el archivo y tecleamos: sudo update-grub

Después de los cambios el siguiente arranque será de nuevo con la animación de Plymout.

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

Si lo que queremos es que entre la imagen del Grub2 y la Pantalla de Acceso al Sistema no aparezca nada mas que una pantalla en negro con un cursor parpadeante, es decir si queremos deshabilitar completamente el Plymouth podemos hacerlo de la siguiente forma:

Para desactivar Plymouth:
Renombramos el fichero /etc/init/plymouth-splash.conf a /etc/init/plymouth-splash.conf.disable

Para volver a activar el Plymouth:
Borrar el sufijo .disabled

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

III- Cambiar la Pantalla de Acceso o "Login": vale lo dicho en: http://hatteras-blog.blogspot.com.es/2010/03/modificar-la-de-acceso-login-en-ubuntu.html
-------------------------

En la actualidad he modificado a mi gusto todas las pantallas de inicio del sistema, y demás detalles gráficos:
- la imagen de fondo del grub2
- la imagen de plymouth
- la imagen de la pantalla de login
- la imagen del fondo del escritorio ( bueno en realidad uso escritorios con fondos dinámicos, que cada x tiempo cambia la imagen )
- la imagen del salvapantallas
- el tema de escritorio, con iconos nuevos, no me gustan las carpetas verdes, las prefiero en azul

Esto me da bastante rabia, el sistema lo puedes modificar bastante a tu gusto, pero las pantallas de inicio te las tienes que tragar al gusto "del fabricante", o tener que averiguar como hacerlo, y en cada versión nueva hay que empezar de nuevo a aprender como modificar las pantallas de inicio.
A ver si ya se están quietos, y en próximas versiones se dedican a mejorar la distro una vez que ya esta funcionando y dejan de tocarnos las... con modificaciones de pantallas de inicio distintas, o que hagan herramientas gráficas para modificarlas.
—————————-

miércoles, 7 de julio de 2010

Proteger archivos/directorios


Existe un comando en linux para crear ciertos atributos de inmunidad sobre algunos archivos/directorios que uno quiera proteger. Si se desea proteger un archivo/directorio contra borrarlo o ante ataques se utilizará el comando chattr. Utilizar el comando chattr , incluido en el paquete e2fsprogs, que se instala de forma predeterminada en todas las distribuciones de GNU/Linux por tratarse de un componente esencial, hace más difícil borrar o alterar bitácoras, ficheros de configuración y componentes del sistema.

Proteger un Archivo:

1-Para proteger un archivo: sudo chattr +i nombrearchivo  ( por ejemplo para proteger el archivo /home/usuario/viaje.doc : sudo chattr +i /home/usuario/viaje.doc )

Así solamente el superusuario puede evitar que se borren archivos ( para ello tendrá que volver a desprotegerlos) , lo cual puede ser importantísimo para archivos de configuración . Ningún usuario, ni si quiera el administrador (root), podrá modificarlos, borrarlos, renombrarlos o crear enlaces hacia ellos.

2-Para desproteger un archivo, y volverlo a su situación inicial, normal: sudo chattr -i nombrearchivo ( por ejemplo para desproteger el archivo /home/usuario/viaje.doc :  sudo chattr -i /home/usuario/viaje.doc )

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

Proteger un Directorio:

Si no solo queremos proteger un archivo, sino todo un directorio y los archivos que contiene:

1-Para proteger un directorio, y todos los archivos y directorios que contenga: sudo chattr -V -R +i nombre-de-directorio . ( por ejemplo para proteger el directorio /home/usuario/Música:  sudo chattr -V -R +i /home/usuario/Música )

Con esto tenemos un directorio en el que al elegir uno/s de sus archivos no aparece la opción de borrado, ni siquiera usando el administrador de archivos en modo root.

Si elegimos borrar el directorio protegido nos indica que no tenemos permisos para hacerlo, ni siquiera usando el administrador de archivos en modo root.



2-Para desproteger un directorio ( volverlo a su situación inicial, normal) , y todos los archivos y directorios que contenga: sudo chattr -V -R -i nombre-de-directorio ( por ejemplo para desproteger el directorio /home/usuario/Música:  sudo chattr -V -R -i /home/usuario/Música )

Un archivo/directorio  protegido no puede ser eliminado, modificado, renombrado ni se puede crear enlaces hacia él  ni siquiera como root, para hacerlo antes hay que volverlo a desproteger.

Para que nos puede servir esto: pues por ejemplo para proteger archivos de configuración del sistema, y  sus copias de seguridad, o nuestros documentos, fotos, videos, música, etc favoritos. No usarlo con archivos que tengan que ser modificados para su correcto uso.

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

viernes, 2 de julio de 2010

Crear un directorio cifrado: el directorio Private

Podemos crear un directorio cifrado en /home/usuario/Private, en donde podremos guardar información importante que no será visible de manera externa sin conocer la clave que le hayamos asignado.

* El directorio cifrado se puede utilizar como otro directorio cualquiera desde nuestro usuario. Pero desde fuera de nuestra sesión de usuario no se puede hacer.
* Los datos no son accesibles para el root u otros usuarios con privilegios, tampoco en modo de rescate o a través de un LiveCD o herramienta de rescate.
* A pesar que los datos se mantienen cifrados, pueden ser borrados, contando con los privilegios adecuados.
* Es importante no olvidar la clave de cifrado para en caso de tener que recuperar manualmente los datos, podamos hacerlo.
* Podemos utilizar este directorio en portátiles para mantener seguros nuestros datos, ya que no sera posible acceder a ellos usando por ejemplo un cd live, ya que  la única forma de verlos es entrar con la contraseña en nuestra cuenta de usuario.



1-Instalación:
1. Instalar la herramienta de cifrado (si no está instalada aún).
$ sudo apt‐get install ecryptfs‐utils

2. Configurar el directorio asignándole una contraseña o clave de cifrado a través del siguiente comando: $ ecryptfs-setup-private
En este paso preguntará la clave de login de la cuenta de usuario, para después asignar una clave de cifrado. Se puede dejar en blanco para que automáticamente genere esta clave, aunque me parece mas recomendable asignarle una nosotros.

Se habrán creado las siguientes carpetas ocultas: /home/usuario/.ecryptfs , home/usuario/.Private y la carpeta visible /home/usario/Private. En ésta última es donde debemos guardar nuestros archivos privados.

2-Uso:
1-A continuación, cerramos sesión , y al entrar de nuevo en nuestra sesión, en la carpeta personal veremos el directorio Private, el cual podemos manejar, desde nuestra cuenta de usuario,  como otro directorio cualquiera sin introducir una contraseña. En el directorio podemos añadir todos los datos/archivos que queramos mantener en privado, utilizándolo como un directorio normal.

2- Por ejemplo, si usamos Thunderbird, y queremos mantener privados nuestros correos, debemos primero cerrar el programa, y luego podemos mover la carpeta .mozilla-thunderbird a este directorio y crear un enlace simbólico para que el programa siga funcionando normalmente.

Primero movemos el directorio de Thunderbird al directorio Private:
$ mv ~/.mozilla-thunderbird ~/Private

Después hacemos un enlace simbólico que apunte a donde lo movimos:
$ ln -s ~/Private/.mozilla-thunderbird ~/.mozilla-thunderbird

3- Los directorios comunes de Nautilus (Documentos, Música, Imágenes, etc) podemos moverlos también al directorio Private, creando luego un enlace simbólico de cada uno de ellos,  y copiando cada enlace con su nombre original ( no "enlace hacia directorio-xxxx" sino "directorio-xxxx" ) al directorio /home/usario,

ln -s ~/Private/Documentos ~/Documentos
ln -s ~/Private/Música ~/Música


para mantenerlos siempre en primer plano y funcionando sin problemas en relación con aplicaciones que los usen.

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

Si nos arrepentimos y queremos deshacernos del directorio Private, debemos primero deshacer los cambios que hayamos hecho en relación a lo indicado en el apartado 2-Uso.

Luego, para eliminar el directorio /home/usuario/Private tenemos que actuar sobre la carpeta oculta /home/usuario/.Private, para ello:
Primero hay que desmontarla: sudo umount ./Private
y luego : sudo rm -r ./Private/ . ( Si en vez de esto intentamos borrar, del modo gráfico habitual, la carpeta /home/usuario/Private, no nos dejara).



A continuación si queremos no dejar ni rastro de la creación de este directorio cifrado, nos quedará borrar también las carpetas ocultas que se crearon, con los comandos : sudo rm -r .ecryptfs y sudo rm -r .Private
-----------------------------------