El gestor de arranque GNU GRUB |
SOFTWARE - General | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Écrit par Elvira Mifsud | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vendredi, 14 Décembre 2007 13:17 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There are no translations available. Aprende todo sobre este gestor de arranque, capaz de arrancar diferentes tipos de sistemas operativos...
1 IntroducciónCuando en un ordenador se dispone de uno o más sistemas operativos, instalados en el disco duro, el usuario debe tener opción a seleccionar, en el momento del arranque, con cuál de ellos quiere iniciar sesión. Y esa es una de las funciones del gestor de arranque, cuyo concepto, estructura y configuración se detallan en el artículo. En concreto se trabaja sobre el gestor de arranque utilizado por prácticamente todas las distribuciones GNU/Linux, que es GNU GRUB. Por ejemplo, la distribución Edubuntu Feisty Fawn 7.04, cuya instalación desde Live CD se describió en el monográfico sobre GNU/Linux. 2 Secuencia de arranque del sistemaLa secuencia de arranque del sistema, simplificada en una serie de pasos, es la siguiente: Paso 1. Cuando el usuario enciende el ordenador (Power on) la BIOS1 realiza un chequeo de los componentes hardware y utiliza la configuración establecida para comprobar determinados aspectos del equipo, como pueden ser la hora del sistema, secuencia de arranque (orden en que serán probados los periféricos disponibles y que permiten el arranque de la máquina, como discos duros, CD-ROM/DVD, memorias USB,...), etc. Paso 2. A continuación la BIOS carga en memoria el programa que se encuentra almacenado en el primer sector (sector 0, cuyo tamaño es de 512 bytes) del primer dispositivo en la secuencia de arranque. Se pasa el control de la máquina a dicho programa, llamado gestor de arranque, que contiene las instrucciones, en código máquina, que arrancan el ordenador. Este sector se llama MBR (Master Boot Record). Paso 3. Si el gestor de arranquees multiarranque (soporta el arranque de diferentes sistemas operativos) muestra un menú donde el usuario debe seleccionar el sistema operativo a arrancar. Una vez elegida la opción, el gestor transfiere el control al primer sector de la partición del disco duro, donde está el programa cargador de dicho sistema operativo. Paso 4. El programa cargador del sistema operativo carga el núcleo (kernel), que es ahora el que continua la secuencia hasta quedar listo para el inicio de sesión, por parte del usuario. Paso 5. El usuario entra en el sistema introduciendo un nombre de usuario válido para dicho sistema y su contraseña correspondiente. Si ambos son correctos se permite la entrada. Si alguno de ellos no es válido, se vuelve a repetir la identificación completa del usuario. 3 Gestor de arranqueSegún la secuencia de arranque descrita, nos centramos en el estudio de los pasos 2 y 3, ambos relativos al gestor de arranque. Suponemos, para los ejemplos y las órdenes, que el ordenador arranca desde una unidad de disco duro IDE o SATA. Todo disco duro tiene un sector 0 llamado Master Boot Record (MBR) que es el sector de arranque del disco duro. En él se aloja un programa encargado de pasar el control, en secuencia de arranque, al sector cero de la partición que contiene el sistema operativo seleccionado. Es decir, toda partición primaria o extendida tiene su sector 0, también llamado sector de arranque de la partición. En este sector se aloja, a su vez, un programa encargado de arrancar el sistema operativo instalado en dicha partición. En ocasiones este programa es una parte o etapa del gestor instalado en el MBR.
Cuando en el disco duro sólo hay instalado un sistema operativo como Windows, el gestor de arranque correspondiente suele ser transparente al usuario y el usuario puede que no se de cuenta de que existe. Pero si el usuario quiere alojar en su disco duro mas de un sistema operativo, por ejemplo Windows y GNU/Linux, necesitará disponer de un gestor de arranque que permita al usuario elegir, en cada arranque, el sistema operativo que desea. Existen varios gestores multiarranque, que instalados en el MBR, permiten al usuario seleccionar el sistema operativo saltando al sector cero de la partición (primaria o extendida) que lo aloja y, ejecutando a su vez, el gestor de arranque propio de dicho sistema. Ejemplos de gestores de multiarranque son los siguientes:
4 Gestor de arranque GNU GRUBGNU GRUB ( http://www.gnu.org/software/grub ) es un gestor de arranque, creado en 1995, capaz de arrancar diferentes tipos de sistemas operativos libres, así como sistemas operativos privativos, a través del arranque en cadena que luego se explica. Las principales características de GNU GRUB son las siguientes:
El manual oficial de GNU GRUB, para consultar y ampliar, está disponible en http://www.gnu.org/software/grub/manual/ . 5 Ejecución de GNU GRUBEn general, un gestor de arranque para la equipos con procesadores x86 o AMD, tiene al menos dos etapas. La primera consiste en un pequeño programa en el MBR, cuya única función es localizar el gestor de arranque de la segunda etapa y cargar la primera parte de éste en memoria. En concreto, la ejecución de GNU GRUB está dividida en dos etapas. Cada etapa es una fase de ejecución de GNU GRUB.
En ocasiones, cuando la partición que contiene el núcleo ( /boot ) está mas allá del cilindro 1024 del disco duro o se está utilizando discos en modo LBA4, debe existir una etapa intermedia (etapa 1.5) que sirve de puente entre ambas y que depende del sistema de archivos. Esta etapa 1.5 es un pequeño archivo (~10Kb) y suele estar en /boot . A partir del punto siguiente, y para todos los detalles concretos de instalación, configuración y utilización de GNU GRUB, se trabaja sobre la distribución Edubuntu.
6 Usuario de administraciónDurante el proceso de instalación del Live CD Edubuntu hay un paso en el que se pide al usuario que de su nombre de usuario o login de conexión y una contraseña. Este será el usuario del sistema con el que se podrá conectar y abrir sesiones gráficas. En nuestro caso el usuario se llama 'usuario'. Pero, además de este usuario, en el sistema siempre existe un usuario administrador o superusuario, llamado root, que tiene privilegios para realizar cualquier tarea en el sistema. Desde dar de alta nuevos usuarios a configurar todos los servicios que ofrece el sistema. En principio, cualquier usuario no se puede validar en el sistema como root a menos que conozca su contraseña. Pero, para facilitar la tarea al primer usuario creado por defecto, el sistema habilita un mecanismo por el que este usuario genérico puede realizar tareas de root sin serlo. En el argot informático se dice que es un usuario de tipo 'sudo'. El sistema, al dar de alta a un usuario 'sudo', le otorga privilegios de administrador al incluirlo en el grupo de usuarios 'admin'. Los usuarios de este grupo tienen una línea en el archivo de configuración /etc/sudoers donde se indica que pueden hacer TODO.
El usuario 'usuario' puede hacer uso de estos privilegios mediante el comando sudo . Por ejemplo, para conocer el estado de la red se utiliza, además de la interfaz gráfica, la orden ifconfig que sólo puede ser ejecutada por root. En este caso 'usuario' puede lanzarla anteponiendo la orden sudo :
Pero, si 'usuario' lo que necesita es convertirse de forma permanente en root, puede ejecutar la siguiente orden que le transforma en administrador5:
Lógicamente esto es peligroso si no se sabe muy bien lo que se está haciendo. Así que, es preferible dejar estas opciones para cuando sea estrictamente necesario, es decir, para cuando 'usuario' no pueda hacer lo que necesita desde el interfaz gráfico, porque no existe la posibilidad o porque no tenga suficientes privilegios. Por otra parte, hay que poner especial atención a los usuarios que pertenecen al grupo admin, ya que pueden adquirir todos los privilegios. Para recuperar la identidad de 'usuario' basta con ejecutar la orden:
El usuario 'usuario', como pertenece al grupo admin, al adquirir la identidad del administrador root puede cambiar la contraseña de root. Para ello:
Ahora ya conocemos la contraseña de root ya que la hemos introducido nosotros. 7 Interfaz gráfica de GRUBEdubuntu Feisty Fawn no dispone de un front-end gráfico para la gestión del arranque. Pero existen paquetes disponibles y que pueden ser instalados en Edubuntu. En concreto, un editor gráfico del GRUB es la herramienta GrubEd, que se puede obtener desde http://ubuntuforums.org/showthread.php?t=228104, y viene como archivo tar.gz que habrá que instalar en el ordenador. En http://www.guia-ubuntu.org/index.php?title=GrubEd existe una guía completa sobre GrubEd. Existe versión en castellano y se llama GrubEd_es.tar.gz . La descargamos y procedemos a su instalación. Para ello abrimos el navegador de archivos (Lugares -> Carpeta personal), localizamos el archivo descargado y hacer doble clic sobre él. Se descomprime y extraemos su contenido en la misma carpeta o en otro directorio. Ya extraído el contenido ir al directorio GrubEd y hacer doble clic sobre el archivo instalar . Seleccionar la opción Run y la herramienta se instala. Comprobar que existe un icono que funciona como Lanzador de GrubEd que se puede arrastrar y soltar sobre el escritorio para tenerlo siempre disponible desde allí. Si pulsamos dos veces vemos la interfaz gráfica de GRUB siguiente: Hay que tener en cuenta que la instalación se ha hecho desde el entorno gráfico por su sencillez, y por lo tanto, el dueño del nuevo directorio creado, así como de todos los archivos incluidos en él, es el usuario 'usuario'. Al pertenecer este usuario al grupo 'admin' no tiene ninguna restricción en la ejecución de GrubEd. Cualquier otro usuario no podría hacerlo ya que la herramienta actúa sobre la configuración del arranque del sistema. Para acceder a una opción basta con pulsar sobre la selección correspondiente y Aceptar. Estas opciones son:
Algunas de estas opciones se explican con detalle en los puntos siguientes utilizando como herramienta una terminal. 8 Nomenclatura de GNU GRUBGNU GRUB requiere que el nombre del dispositivo esté entre paréntesis y enumera los discos y las particiones comenzando de 0. Insistimos:
Por ejemplo, si el equipo dispone de un solo disco duro, no importa de qué tipo sea IDE, SATA, SCSI6 o RAID7, GRUB lo identifica como:
En general, todos los discos duros IDE, SCSI o RAID detectados por la BIOS se numeran para GRUB según el orden de arranque definido en la BIOS.
9 Instalación de GNU GRUBDurante el proceso de instalación del Live CD de Edubuntu se instala GNU GRUB en el MBR del disco duro. Si el usuario tiene instalado en el equipo otro sistema operativo, el arranque correspondiente desaparece del MBR. Pero ésto no quiere decir que ya no pueda acceder a ese sistema operativo. GNU GRUB detecta todos los núcleos arrancables en las diferentes particiones del disco duro, tanto primarias como extendidas, y en su archivo de configuración los deja disponibles para que el usuario los edite y haga las modificaciones que considere oportunas. Es posible que, en alguna circunstancia, el usuario necesite volver a instalarlo. Por ejemplo está corrupto o se ha realizado una instalación de Windows después, sobrescribiendo el MBR, etc. Para ello, desde una terminal (Aplicaciones -> Accesorios -> Terminal) escribimos la siguiente orden como administrador (usuario root):
donde /dev/hda hace referencia a la localización de la etapa 1 del GRUB. En este caso en el MBR del primer disco duro. En el próximo arranque del sistema aparecerá el menú de GRUB con los kerneles arrancables desde él. La figura siguiente muestra la interfaz de menú de GRUB con un sencillo fondo negro. 10 Interfaces de GNU GRUBLa herramienta GRUB permite al usuario administrador trabajar de formas diferentes:
a. Interfaz de menuLa interfaz de menú consiste en un menú de sistemas operativos (núcleos) arrancables que se muestra al inicio. Utilizando las flechas se selecciona la opción y pulsando -INTRO- comienza el arranque del sistema operativo. Además, desde esta interfaz se puede:
b. Interfaz del editor de menúSe accede desde la interfaz de menú pulsando -e-. Desde este editor el usuario puede teclear:
La entrada root (hd0,4) indica que el sistema operativo seleccionado para su arranque se encuentra en la 5ª partición del primer disco. La entrada kernel /boot/vmlinuz-2.6.20-15-generic root=UUID=0b6ca ... identifica la imágen de arranque y opciones incluidas. La imagen no permite visualizar la línea completa. La entrada initrd /boot/initrd.img-2.6.20-25-generic indica laubicación del disco RAM inicial que contiene archivos y directorios mínimos necesarios para el proceso de arranque. E n conjunto significa que GRUB mira en /dev/hda5 o /dev/sda5 (según el disco duro sea IDE o SATA/SCSI) para buscar el kernel y la imágen del disco RAM inicial. c. Interfaz de línea de comandosSe llega pulsando -c- desde la interfaz de menú. Aparece el prompt del GRUB: Desde aquí el usuario puede ejecutar una serie de comandos, disponibles mediante la tecla -TAB-. De ellos los más importantes son:
11 Archivo de configuración de GRUBEl archivo de configuración para GRUB es /boot/grub/menu.lst y en él se pueden incluir, además de los comandos de la interfaz de línea de comando que se han descrito, los siguientes:
Como ejemplo de archivo de configuración se incluye el generado en la instalación de Edubuntu Feisty Fawn 7.04 en un disco duro en el que había previamente instalado Windows Vista. Se dejan las líneas mas significativas. La edición de este archivo o de cualquier otro, desde Edubuntu, se puede hacer utilizando la aplicación gedit, disponible en Aplicaciones -> Accesorios -> Editor de textos.
Si el usuario edita manualmente este archivo y realiza algún cambio puede forzar la lectura de estos cambios ejecutando la orden, como root, update-grub .
12 Arranque de Windows desde GRUBCuando arranca el equipo y se carga el GRUB, desde la interfaz de menú, el usuario selecciona el sistema operativo Windows y al pulsar -INTRO- comienza la carga de dicho sistema. Para el usuario que quiera conocer mas a fondo los comandos que realmente GRUB está ejecutando y él mismo actuar sobre ellos, a continuación se detalla el proceso completo. Hay que tener en cuenta que, para arrancar sistemas operativos privativos, como Windows, GRUB utiliza la carga encadenada que ya se ha explicado. Por ejemplo, para arrancar, paso a paso, Windows XP o Vista, que suponemos que se encuentra en la primera partición del primer disco duro, desde GNU GRUB se ejecutan los siguientes comandos:
13 Acceso no autorizado: protecciónPor seguridad el usuario puede impedir o suprimir las operaciones interactivas desde la interfaz de menú e interfaz de línea de comandos de GNU GRUB. Para ello hay que añadir el comando password en el archivo de configuración /boot/grub/menu.lst siguiendo la sintaxis siguiente:
De esta forma GNU GRUB desactiva cualquier control interactivo hasta que se pulse p y se introduzca la contraseña correcta. El parámetro --md5 indica a GNU GRUB que almacene la contraseña encriptada ya que, por defecto, la almacena en texto plano. PASSWORD será la cadena dada como contraseña. Una vez introducida la línea hay que salir del editor y ejecutar como root:
pide la contraseña y la devuelve encriptada. El valor devuelto se copia en el archivo menu.lst sustituyendo PASSWORD. Una vez terminada la edición es conveniente ejecutar update-grub para activar los cambios realizados. Cualquier usuario que quiera editar las entradas de GRUB deberá conocer esta contraseña. Por otra parte, este método también es válido para bloquear el acceso de los usuarios a determinados sistemas operativos. Para ello habría que eliminar el comando password de la sección general del archivo de configuración (fuera de una sección title), que afecta a todas las entradas del GRUB, y colocarlo en la entrada correspondiente al sistema operativo cuyo acceso se quiere limitar. 14 Cambiar la imagen de fondo de GNU GRUBEl usuario comprueba que el menú del GRUB de Edubuntu, instalado en el MBR, es muy sencillo y carece de imagen que lo haga atractivo. Es posible añadir una imagen a dicho menú que quedará superpuesto a ella. Estas imágenes se llaman splash y tienen ciertas restricciones. Elegimos como imagen de fondo la de la distribución LliureX llamada lliurex-grub.xpm.gz. Se podría utilizar otra imagen pero habría siempre que ajustar los textos y tener en cuenta que no puede tener mas de 14 colores, 640x480 pixels de resolución, estar en formato .xpm y comprimida en .gz. La incluimos en el archivo /boot/grub/menu.lst utilizando el comando splashimage de la forma siguiente:
El resultado como se puede comprobar es bastante mas agradable y es el siguiente: 15 Recuperar el GRUBEn el caso de que el usuario tuviese instalado GNU/Linux y Windows y, por cualquier motivo tuviese que reinstalar Windows, lógicamente el arranque de Windows sobreescribiría el GRUB. El usuario puede volver a instalar GNU GRUB simplemente disponiendo de un Live CD de GNU/Linux, como puede ser el de Edubuntu que se ha instalado. Explicamos el proceso.
Pasar a la interfaz de comandos
16 Recuperar el arranque de Windows Vista y Windows XPSi, por cualquier motivo, el GRUB deja de funcionar y el usuario necesita recuperar el arranque de Windows VISTA puede hacerlo siguiendo las siguientes instrucciones:
En el caso de que se trate de Windows XP y se quiera restaurar su arranque, seguir las siguientes instrucciones:
17 ConclusionesA través del artículo se ha intentado dar una visión real acerca de la instalación, recuperación, configuración y funcionamiento del gestor multiarranque GNU GRUB. El usuario ha podido comprobar su potencia y versatilidad y ha comenzado a entrar en contacto con la línea de órdenes desde GNU/Linux. Nuestro objetivo es no derivar al usuario al trabajo desde terminal, a menos que sea estrictamente necesario o de interés, según el tema tratado. En el caso de GNU GRUB para llevar a cabo las tareas de recuperación del MBR se hace imprescindible. Confíamos en que esta situación no llegue a asustar al usuario novel en Linux y le animamos a que continue leyendo la sección para continuar su aproximación a GNU/Linux. NOTAS 1 BIOS(Basic Input-Output System, Sistema Básico de Entrada Salida). Programa incorporado en un chip de la placa base que se encarga de realizar las funciones básicas de manejo y configuración del ordenador. (www.conozcasuhardware.com/diccio/) 2 Journaling: sistema de registro diario de toda aquella información del sistema necesaria para recuperar la situación del sistema previa a una operación no realizada correctamente, por ejemplo. 3 TFTP: Trivial File Transfer Protocol (Protocolo de transferencia de archivos trivial). Protocolo de transferencia utilizado para transferir pequeños archivos entre ordenadores en una red. (http://es.wikipedia.org/wiki/TFTP) 4 Modo LBA: Logical Block Addressing (Direccionamiento Lógico de Bloques). Es un método de direccionamiento que abstrae los detalles 'físicos' del disco trabajando con direcciones lineales y permite que el GRUB arranque sistemas operativos desde particiones con un límite superior a 1024 cilindros, siempre que la BIOS lo admita. 5 Observar como el prompt del sistema ha cambiado. Para un usuario es '$' y para root es '#'. 6 SCSI: (Small Computer System Interface) Interfaz para la conexión de dispositivos a un ordenador, como discos o scanners. Un disco SCSI es más rápido que uno IDE pero mas caro. 7 RAID: (Redundant Array Of Independent/Inexpensive Disks) Método de combinación de varios discos duros para formar una única unidad lógica en la que se almacenan los datos de forma redundante. www.smdata.com/glosario.htm 8 Para crear un directorio pulsar el botón derecho del ratón sobre el directorio 'padre' y seleccionar la opción 'Crear una carpeta', asignarle un nombre y listo. |