Archivo de septiembre, 2008

Grub – Iniciar multiples Sistemas Operativos

Eh decidido actualizar este documento gracias “Javier” quien me solicito la instalación de un Unix que detecte su Atheros, obviamente FreeBSD lo hace y nativo por lo que en proceso me encontré con nuevas problemáticas al momento de escribir en el disco.

La instalación y su configuración, en forma detallada.

Instalación:

# cd /usr/ports/sysutils/grub/
# make build install clean

Esto dejara los binarios listos para su configuración y puesta en marcha, por lo que desde ahora en adelante todo lo que se debe hacer es con mayor cuidado ya que no hay que olvidar que se está trabajando con el particionado del disco y la información completa de este.

Luego de haber instalado GRUB:

# cd /boot
# mkdir grub

Crear el directorio donde se almacenaran los archivos capaces de leer los posibles Archivos de Sistemas (File Systems) que se instalaran en la estación de trabajo, dejando en claro que maneja mucho mas que 2 booteos de sistema:

# cd /boot/grub
# cp -v /usr/local/share/grub/i386-freebsd/* /boot/grub/

Quedando el directorio algo similar a esto:

# ls -l
-r–r–r–  1 root  wheel    9236 Dec 12 23:34 e2fs_stage1_5
-r–r–r–  1 root  wheel    9028 Dec 12 23:34 fat_stage1_5
-r–r–r–  1 root  wheel    8180 Dec 12 23:34 ffs_stage1_5
-r–r–r–  1 root  wheel    8276 Dec 12 23:34 iso9660_stage1_5
-r–r–r–  1 root  wheel    9888 Dec 12 23:34 jfs_stage1_5
-r–r–r–  1 root  wheel    8372 Dec 12 23:34 minix_stage1_5
-r–r–r–  1 root  wheel   11060 Dec 12 23:34 reiserfs_stage1_5
-r–r–r–  1 root  wheel     512 Dec 12 23:34 stage1
-r–r–r–  1 root  wheel  121768 Dec 12 23:34 stage2
-r–r–r–  1 root  wheel  121768 Dec 12 23:34 stage2_eltorito
-r–r–r–  1 root  wheel    8520 Dec 12 23:34 ufs2_stage1_5
-r–r–r–  1 root  wheel    7860 Dec 12 23:34 vstafs_stage1_5
-r–r–r–  1 root  wheel   10652 Dec 12 23:34 xfs_stage1_5

Pudiendo así con estos archivos leer varios sistemas en tiempo de booteo, bueno ahora con solo esto no basta es necesario para esto su archivo de configuración el cual sale un poco de los esquemas de lo normalmente acostumbrado, ya que este archivo no es “grub.conf” como por defecto alguien pensaría que se pudiese llamar si no que “menu.lst”.

Este archivo contiene toda la configuración de particionamiento, de cómo y en donde debe ir a obtener el o los Sistemas Operativos con los que va a presentar una lista de selección de booteo, en este caso en particular les comento que solo veremos FreeBSD y Microsoft por lo que voy a presentarles la configuración y posteriormente la explicaremos:

# cat menu.lst
default 1
timeout 10
title Microsoft Windows
       root (hd0,0)
       savedefault
       makeactive
       chainloader +1
title FreeBSD
       root (hd0,a)
       kernel /boot/loader
       boot

Así se ve la configuración más básica de el archivo menu.lst.

Hasta aquí todo aun es en cierto modo es simple. Lo que a partir de ahora se les enseñara es a tomar toda esta recopilación de archivos y de configuraciones y activarlos al sistema en su MBR (Lease Master Boot Record) para que de esta forma GRUB tome el control de la selección de MultiBooteo de el o los Sistemas Operativos residentes en la maquina.

NOTA: Es muy importante recalcar que para poder ejecutar lo que a continuación se les va a explicar, y que es el instalar GRUB en el MBR que este proceso en FreeBSD no se va a llevar a cabo mientras no se le diga al sistema que esto se esta haciendo y la forma de hacerlo es:

# sysctl kern.geom.debugflags=16

Permitiendo con esto a GRUB poder almacenar su información de ejecución en el MBR.

Luego a partir de consola se debe ejecutar su instalación de la siguiente forma:

# grub

NOTA: Debo recalcar que este paso es distinto a los pasos que van a encontrar en la red o googleando, ya que lo que se está ejecutando es la escritura del MBR en forma directa y no como los demás tutórales dicen que se debe hacer; y que es creando un diskette de booteo previo a la instalación que aquí se está haciendo.

Continuando, esto nos mostrara una ventana como la siguiente en la cual se mostraran los pasos a seguir que después se explicaran con detalle:

GNU GRUB  version 0.97  (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported.  For the first word, TAB
lists possible command completions.  Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> root (hd0,a)
Filesystem type is ufs2, partition type 0xa5

grub> setup (hd0)
Checking if “/boot/grub/stage1″ exists… yes
Checking if “/boot/grub/stage2″ exists… yes
Checking if “/boot/grub/ufs2_stage1_5″ exists… yes
Running “embed /boot/grub/ufs2_stage1_5 (hd0)”…  17 sectors are embedded.
succeeded
Running “install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,1,a)/boot/grub/stage2 /boot/grub/menu.lst”… succeeded
Done.
grub> quit

Ahora explicaremos paso a paso lo realizado en este proceso.
En el prompt de GRUB se escribieron 3 comandos para su instalación, de los cuales 2 son extremadamente importantes, el primero de ellos root (hd0,1,a) le dice a GRUB que el su configuración y binarios de Sistemas de Archivos se encuentra en esa partición. El segundo comando es setup (hd0) le esta ordenando a GRUB que en base a su configuración de el archivo menu.lst se instale en el HD0 que es el disco en donde se encuentran el o los Sistemas Operativos yendo a buscar a su ruta por defecto y que es /boot/grub/, encontrando así todo lo necesario para que esta condición de instalación se cumpla.
Solo nos queda aprender como personalizar aun mas nuestro grub para mejor presentación del mismo por lo que voy a darles una muestra de los que se puede lograr con él, ya que la interface que todos conocemos de Grub en las versiones de Linux es grafica, aquí explicaremos el cómo se logra que esto sea así

Esta es la línea que se debe agregar al archivo de configuración de Grub para que puedan ver la imagen que aquí se muestra pero como fondo de nuestro menú de selección de sistema:

splashimage=(hd0,a)/boot/grub/zion.xpm.gz

Recuperación de clave root en MySQL

Por lo general un procedimiento de administración para un DBA es tomar control completo de un motor de bases de datos en este caso en particular, es MySQL:

  1. Detener el motor de base de datos
  2. Iniciar nuevamente agregando la opción “–skip-grant-tables
  3. Ingresar al motor “mysql –u root
  4. Ejecutar “UPDATE mysql.user SET Password=PASSWORD(‘password’) WHERE User=’root’;
  5. Y por ultimo “FLUSH PRIVILEGES;

Reiniciar el motor de base de datos y con eso finaliza. Una muy buena práctica de seguridad es cambiar el usuario root que viene asignado por defecto, por cualquier usuario ejemplo “dba”.