Aprenda Linux, 101: Gestores de arranque

Introducción a GRUB y LILO

Aprenda a elegir y configurar un gestor de arranque para su sistema Linux® . Usted puede utilizar el contenido de este artículo para estudiar para el examen LPI 101 para la certificación en administración de sistemas Linux, o simplemente por diversión.

Ian Shields, Senior Programmer, EMC

author photo - Ian ShieldsIan Shields trabaja en múltiples proyectos Linux para la zona Linux de developerWorks. Es Senior Programmer de IBM en el Research Triangle Park (RTP), Carolina del Norte. Ingresó a IBM en Canberra, Australia, como Systems Engineer en 1973, y desde entonces se dedica a sistemas de comunicaciones y computación ubicua en Montreal, Canadá, y en el RTP de Carolina del Norte. Es propietario de numerosas patentes y publicó diversos trabajos. Tiene una diplomatura en Matemática Pura y Filosofía de la Universidad Nacional de Australia. Es Máster y Doctor en Ciencias de la Computación de la Universidad Estatal de Carolina del Norte. Para contactar a Ian, escríbale a: ishields@us.ibm.com.


Nivel de autor contribuyente en developerWorks

08-07-2010

Acerca de esta serie

Esta serie de artículos lo ayudará a aprender las tareas de administración del sistema Linux. Usted puede utilizar el contenido de estos artículos para prepararse para Linux Professional Institute Certification level 1 (LPIC-1) exams.

Consulte nuestra developerWorks roadmap for LPIC-1 para obtener una descripción de cada uno de los artículos de esta serie y su correspondiente link . La guía básica se encuentra en progreso y refleja los últimos objetivos (abril de 2009) para los exámenes LPIC-1: a medida que se completan los artículos, éstos son agregados a la guía básica. Mientras tanto, sin embargo, usted puede encontrar las versiones anteriores con contenido similar que responden a los contenidos LPIC-1 anteriores a abril de 2009, en nuestros LPI certification exam prep tutorials .

Visión general

En este artículo, aprenda a elegir, instalar, y configurar un gestor de arranque para un sistema Linux. Aprenda a:

  • Configurar múltiples opciones de ubicaciones de arranque y arranques de backup
  • Instalar y configurar un cargador de arranque como GRUB o LILO
  • Agregar parámetros de arranque o ejecutar cargadores de arranque al momento del arranque
  • Solucionar problemas comunes de arranque
  • Arrancar un sistema GRUB 2 utilizando GRUB Legacy

Este artículo analiza los procesos de arranque de la PC y los dos tipos de cargadores de arranque principales utilizados en Linux,—LILO y GRUB—,y lo ayuda a preparar el objetivo 102.2 del Tema 102 el examen 101 del nivel junior en administración (LPIC-1) del Linux Professional Institute. También le brindamos una introducción a GRUB 2,aunque éste no forme parte de los requisitos para los objetivos del examen actual. Estos objetivos tienen un valor de ponderación de 2.

Requisitos previos

Para aprovechar al máximo los artículos de esta serie usted debería poseer conocimientos básicos sobre Linux y tener un sistema de trabajo Linux para poder practicar los comandos explicados en este artículo. Además debería estar familiarizado con la configuración del disco rígido que se analiza en el artículo "Learn Linux 101: Hard disk layout." A veces, el formato de los datos de salida de diferentes versiones de un mismo programa poseen diferente formato, por lo cual los resultados que obtenga pueden no siempre ser los mismos que los presentados en los listados y figuras que aparecen en este artículo.

Nota: Las imágenes que aparecen en este artículo son capturas de pantalla tomadas previamente durante el proceso de arranque. Si usted está leyendo este artículo en un lector de pantalla, puede encontrar ventajoso tener los archivos de configuración correspondientes como referencia; descárguelos de la sección Download que se encuentra más adelante en este artículo.


Generalidades sobre el proceso de arranque

Conéctese con Ian

Ian es uno de nuestros autores más populares y exitosos. Consulte all of Ian's articles en developerWorks. Vea Ian's profile y conéctese con él, con otros autores, y con otros lectores en My developerWorks.

Antes de comenzar a ver LILO y GRUB, revisemos cómo se produce la puesta en marcha o arranquede una PC. El código denominado BIOS (Basic Input Output Service) se almacena en una memoria no volátil como por ejemplo ROM, EEPROM, o la memoria flash. Cuando se enciende o reinicia una PC, se ejecuta este código. Por lo general, se ejecuta POST (autodiagnóstico de encendido) para verificar la máquina. Por último, se carga el primer sector desde el registro de arranque maestro (MBR) de la unidad de arranque.

Según lo analizado en el artículo "Learn Linux 101: Hard disk layout," el MBR también contiene la tabla de particiones, por lo tanto el tamaño del código ejecutable en el MBR es menor a 512 bytes, lo cual no es demasiado. Obsérvese que cada disco, aún los discos flexibles, contiene el código ejecutable en su MBR, aún si el código sólo es suficiente para colocar un mensaje como "Non-bootable disk in drive A:" (Unidad A: sin disco de arranque). Este código cargado por BIOS desde este primer sector se denomina cargador de arranque de primera etapa o cargador de arranque de etapa 1 .

El MBR estándar de un disco duro utilizado por los sistemas operativos MS DOS, PC DOS, y Windows verifica la tabla de particiones para encontrar una partición primaria en el disco de arranque marcada como activa, carga el primer sector de dicha partición, y pasa el control a la primera parte del código cargado. Esta nueva parte del código se conoce también como registro de arranque de partición. El registro de arranque de partición es en realidad otra etapa del cargador de arranque de etapa 1, que sólo tiene inteligencia suficiente para cargar un conjunto de bloques desde una partición. Este nuevo código se denomina cargador de arranque de etapa 2.. Según la manera en que MS-DOS y PC-DOS lo utilizan, el cargador de etapa 2 procede a cargar directamente el resto del sistema operativo. Así es cómo su sistema operativo se pone en marcha por sí mismo hasta funcionar correctamente.

Esto funciona en un sistema que tiene un único sistema operativo. ¿Qué sucede si usted cuenta con múltiples sistemas operativos, digamos OS/2, Windows XP, y tres distribuciones distintas de Linux? Usted podría usar algún programa (como DOS FDISK) para modificar la partición activa y reiniciar. Esto resulta engorroso. Además, un disco puede tener sólo cuatro particiones primarias, y el MBR estándar puede arrancar sólo una partición primaria; éste no puede arrancar desde una partición lógica. Pero en nuestro ejemplo hipotético hay cinco sistemas operativos, cada uno de los cuales necesita una partición. ¡Qué problema!

La solución consiste en el uso de algún código especial que permita al usuario elegir qué sistema operativo arrancar. Por ejemplo:

Loadlin
Programa ejecutable de DOS que es invocado desde un sistema DOS en funcionamiento para arrancar la partición Linux. Esto se hacía con frecuencia cuando la configuración de un sistema multiarranque era un proceso complejo y riesgoso.
OS/2 Boot Manager
Programa que está instalado en una pequeña partición dedicada. La partición estaba marcada como activa, y el MBR estándar iniciaba el Gestor de Arranque OS/2, que ofrecía un menú que permitía elegir qué sistema operativo arrancar.
Un cargador de arranque inteligente
Programa que puede residir en una partición del sistema operativo y es invocado ya sea por el registro de arranque de partición de una partición activa o por el registro de arranque maestro. Por ejemplo:
  • BootMagic, parte de Norton PartitionMagic
  • LILO, LInux LOader (el cargador de Linux)
  • GRUB, cargador de arranque unificado de GRand (ahora conocido como GRUB Legacy)
  • GRUB 2, nuevo cargador de arranque que está comenzando a aparecer en distribuciones comunes

Evidentemente, si usted puede controlar el sistema en un programa que tiene más de 512 bytes de código para realizar esta tarea, no será difícil permitir el arranque desde particiones lógicas, o desde particiones que no se encuentran en la unidad de arranque. Todas estas soluciones permiten estas posibilidades, debido a que sólo pueden cargar un registro de arranque desde una partición arbitraria, o porque poseen cierto entendimiento de qué archivo o archivos cargar para iniciar el proceso de arranque.

Carga encadenada

Cuando un cargador de arranque toma el control, éste podría cargar posiblemente otro gestor de arranque. Esto se denomina carga encadenada, y por lo general sucede cuando el gestor de arranque que se ubica en el registro de arranque maestro (MBR) carga el cargador de arranque que se encuentra en el registro de arranque de una partición. Esto casi siempre ocurre cuando a un cargador de arranque de Linux se le pide que arranque una partición de Windows o de DOS, pero también puede suceder cuando al cargador de arranque de Linux de un sistema se le pide que cargue el cargador de arranque de otro sistema. Por ejemplo, usted podría utilizar LILO en el registro de arranque de una partición para iniciar el sistema Linux en esa partición.

Gestores de arranque de Linux

De aquí en adelante, nos concentraremos en LILO y GRUB, dado que estos son los cargadores de arranque incluidos en la mayoría de las distribuciones de Linux. LILO hace rato se utiliza, y GRUB es más nuevo. El GRUB original es ahora lo que se conoce como GRUB Legacy, y GRUB 2 continúa en proceso bajo el auspicio de la Fundación de Software Libre (vea Resources por más detalles). Analizaremos brevemente a GRUB 2, para darle una idea de las diferencias principales y del modo en que GRUB y GRUB 2 pueden coexistir. En el resto del artículo nos referiremos a GRUB Legacy como GRUB, salvo que el contexto específicamente de a entender GRUB 2. Una nueva versión de LILO denominada ELILO (la cual es una diseñada para los sistemas de arranque que utilizan Intel's Extensible Firmware interface, o EFI, en vez de BIOS) se encuentra disponible. Vea Resources para obtener información adicional sobre GRUB 2 y ELILO.

El proceso de instalación de su distribución probablemente le de la opción de elegir qué cargador de arranque instalar. Tanto GRUB como LILO trabajarán con los discos más modernos, aunque algunas distribuciones, principalmente Fedora, ya no vienen con LILO. Recuerde que la tecnología del disco ha avanzado rápidamente, por lo cual siempre debería asegurarse de elegir un cargador de arranque, una distribución de Linux (u otro sistema operativo), y un sistema BIOS, que funcione con su nuevo disco. De otro modo, podría perder datos. Asimismo, si agrega nueva distribución a un sistema existente, quizá necesite asegurarse de que posee el último LILO o GRUB en su MBR. También necesitará una versión bastante reciente ya sea de GRUB como de LILO si desea arrancar desde un disco LVM o RAID.

Los cargadores de etapa 2 usados en LILO y GRUB le permiten elegir cuál de los diversos sistemas operativos y de las distintas versiones cargar. Sin embargo, LILO y GRUB difieren significativamente en que un cambio en el sistema exigirá que usted use un comando para recrear la configuración de arranque de LILO cada vez que actualice un kernel o efectúe otros cambios en el sistema, mientras que GRUB puede lograrlo mediante un archivo de texto de configuración que usted puede editar. GRUB 2 también requiere una modificación en el archivo de configuración que por lo general se guarda en /etc.


LILO

LILO, el LInux LOader, es uno de los dos cargadores de arranque más comunes de Linux. LILO puede instalarse en el MBR de su unidad de arranque, o en el registro de arranque de partición de una partición. También puede instalarse en dispositivos extraíbles como discos flexibles, CDs o memorias USB. Si usted no está totalmente familiarizado con LILO, será conveniente que practique primero lo que haremos en nuestros ejemplos en un disco flexible o en una memoria USB.

Durante la instalación de Linux, usted por lo general especificará LILO o GRUB como gestor de arranque. Si elige GRUB, es posible que no tenga LILO instalado. En ese caso, deberá instalar el paquete correspondiente. Usted quizá desee también instalar el paquete lilo-doc para acceder a más documentación y más ejemplos. A partir de este momento, asumiremos que usted ya cuenta con el paquete de LILO instalado en su sistema. Visite series roadmap para acceder a los artículos sobre administración de paquetes si necesita ayuda.

Configure LILO utilizando un archivo de configuración, que por lo general es /etc/lilo.conf. Usted puede utilizar el comando liloconfig (generalmente encontrado en /usr/sbin) para generar el archivo de configuración inicial y luego editarlo según sea necesario. El archivo de configuración que aparece en el Listado 1 fue generado de esta forma. El archivo fue explicado bastante bien, pero las páginas del manual referidas a lilo y a lilo.conf le brindarán más detalles. Este es un archivo de configuración de LILO que podría utilizarse en un sistema de doble arranque con Windows y con uno o más sistemas Linux.

Listado 1. Ejemplos de /etc/lilo.conf
# Originally generated by liloconfig - modified by Ian Shields

# This allows booting from any partition on disks with more than 1024
# cylinders.
lba32

# Specifies the boot device (floppy)
boot=/dev/fd0

# Specifies the device that should be mounted as root.
# If the special name CURRENT is used, the root device is set to the
# device on which the root file system is currently mounted. If the root
# has been changed with  -r , the respective device is used. If the
# variable ROOT is omitted, the root device setting contained in the
# kernel image is used. It can be changed with the rdev program.
root=/dev/sda7

# Bitmap configuration for /boot/coffee.bmp
bitmap=/boot/coffee.bmp
bmp-colors=12,,11,15,,8
bmp-table=385p,100p,1,10
bmp-timer=38,2,13,1

# Enables map compaction:
# Tries to merge read requests for adjacent sectors into a single
# read request. This drastically reduces load time and keeps the map
# smaller. Using COMPACT is especially recommended when booting from a
# floppy disk.
compact

# Install the specified file as the new boot sector.
# LILO supports built in boot sectors, you only need
# to specify the type, choose one from 'text', 'menu' or 'bitmap'.
# new: install=bmp      old: install=/boot/boot-bmp.b
# new: install=text     old: install=/boot/boot-text.b
# new: install=menu     old: install=/boot/boot-menu.b or boot.b
# default: 'menu' is default, unless you have a bitmap= line
# Note: install=bmp must be used to see the bitmap menu.
# install=menu
install=bmp

# Specifies the number of _tenths_ of a second LILO should
# wait before booting the first image.  LILO
# doesn't wait if DELAY is omitted or if DELAY is set to zero.
# delay=20

# Prompt to use certain image. If prompt is specified without timeout,
# boot will not take place unless you hit RETURN. Timeout is in tenths of
# a second.
prompt
timeout=200

# Enable large memory mode.
large-memory

# Specifies the location of the map file. If MAP is
# omitted, a file /boot/map is used.
map=/boot/map

# Specifies the VGA text mode that should be selected when
# booting. The following values are recognized (case is ignored):
#   NORMAL  select normal 80x25 text mode.
#   EXTENDED  select 80x50 text mode. The word EXTENDED can be
#     abbreviated to EXT.
#   ASK  stop and ask for user input (at boot time).
#   <number>  use the corresponding text mode. A list of available modes
#     can be obtained by booting with  vga=ask  and pressing [Enter].
vga=normal

# Defines non-standard parameters for the specified disk.
#disk=/dev/sda
#	bios=0x80

# If you are using removable USB drivers (with mass-storage)
# you will need to tell LILO to not use these devices even
# if defined in /etc/fstab and referenced in /proc/partitions.
# Adjust these lines to your devices:
#
# disk=/dev/sda inaccessible
# disk=/dev/sdb inaccessible

# These images were automagically added. You may need to edit something.

image=/boot/vmlinuz-2.6.31-14-generic
	label="Lin 2.6.31-14"
	initrd=/boot/initrd.img-2.6.31-14-generic
	read-only

image=/boot/vmlinuz-2.6.31-20-generic
	label="Lin 2.6.31-20"
	initrd=/boot/initrd.img-2.6.31-20-generic
	read-only

image=/boot/memtest86+.bin
	label="Memory Test+"
	read-only

# If you have another OS on this machine (say DOS),
# you can boot if by uncommenting the following lines
# (Of course, change /dev/sda1 to wherever your DOS partition is.)
other=/dev/sda6
        label="Fedora 8"

 other=/dev/sda1
   label="Windows XP"

Verificamos nuestra configuración creando un disco flexible, para lo cual especificamos boot=/dev/fd0, cerca del archivo. También aumentamos el tiempo del prompt a 20 segundos (200 aumentos de una décima de segundo), y agregamos una segunda entrada "other" a la cadena de carga al cargador de arranque en la partición Fedora 8 (/dev/sda6). LILO solo permite un comando root en un archivo de configuración, por lo cual puede arrancar múltiples imágeners de la partición raíz, pero necesita encadenar el arranque a otro cargador de arranque para arrancar una imagen de una instalación diferente, como Fedora 8 (/dev/sda6) o Windows XP (/dev/sda1) en nuestro ejemplo.

Usted utiliza el comando lilo, ubicado en /sbin/lilo, para ingresar un registro de arranque de la etapa 1 y crear un archivo de asignaciones xml (/boot/map) utilizando la información de la configuración, como en el ejemplo anterior, normalmente ubicado en /etc/lilo.conf. Hay algunos usos más de este comando que mencionaremos luego.

Ahora bien, si formateamos un disco flexible con un sistema de archivos Linux como ext2, podemos ejecutar el comando lilo (/sbin/lilo) para crear un disco de arranque flexible. Los datos de salida obtenidos pueden observarse en el Listado 2. Obsérvese que el comando lilo posee cinco niveles de escritura. Especifique una -v adicional para cada nivel. Este ejemplo se creó utilizando lilo -v -v.

Listado 2. Creación de un disco de arranque flexible con lilo
LILO version 22.8, Copyright (C) 1992-1998 Werner Almesberger
Development beyond version 21 Copyright (C) 1999-2006 John Coffman
Released 19-Feb-2007, and compiled at 10:52:38 on Aug 25 2009
Running Linux kernel 2.6.31-14-generic on i686
Ubuntu

raid_setup returns offset = 00000000  ndisk = 0
 BIOS   VolumeID   Device
Reading boot sector from /dev/fd0
pf_hard_disk_scan: ndevs=1
  0800  54085408  /dev/sda
device codes (user assigned pf) = 0
device codes (user assigned) = 0
device codes (BIOS assigned) = 1
device codes (canonical) = 1
mode = 0x03,  columns = 80,  rows = 25,  page = 0
Using BITMAP secondary loader
Calling map_insert_data
Secondary loader: 19 sectors (0x3800 dataend).
Warning: The boot sector and map file are on different disks.
bios_boot = 0x00  bios_map = 0x80  map==boot = 0  map S/N: 54085408
Mapping bitmap file /boot/coffee.bmp
Calling map_insert_file
Compaction removed 592 BIOS calls.
Bitmap: 603 sectors.
BIOS data check was okay on the last boot

Boot image: /boot/vmlinuz-2.6.31-14-generic
Setup length is 26 sectors.
Compaction removed 7452 BIOS calls.
Mapped 7601 sectors.
Mapping RAM disk /boot/initrd.img-2.6.31-14-generic
Compaction removed 14696 BIOS calls.
RAM disk: 14930 sectors.
Added Lin_2.6.31-14 *

Boot image: /boot/vmlinuz-2.6.31-20-generic
Setup length is 26 sectors.
Compaction removed 7468 BIOS calls.
Mapped 7617 sectors.
Mapping RAM disk /boot/initrd.img-2.6.31-20-generic
Compaction removed 14704 BIOS calls.
RAM disk: 14938 sectors.
Added Lin_2.6.31-20

Boot image: /boot/memtest86+.bin
Setup length is 4 sectors.
Compaction removed 243 BIOS calls.
Mapped 254 sectors.
Added Memory_Test+

Boot other: /dev/sda6, loader CHAIN
Pseudo partition start: 43198848
Compaction removed 0 BIOS calls.
Mapped 6 (4+1+1) sectors.
Added Fedora_8

Boot other: /dev/sda1, on /dev/sda, loader CHAIN
Compaction removed 0 BIOS calls.
Mapped 6 (4+1+1) sectors.
Added Windows_XP

 BIOS   VolumeID   Device
  80    54085408    0800
Writing boot sector.
/boot/boot.0200 exists - no boot sector backup copy made.
Map file size: 336896 bytes.
RAID device mask 0x0000
One warning was issued.

Ahora tenemos nuestro disco flexible de arranque LILO. Si LILO encuentra un error, usted podrá ver un mensaje de error, y el sector de arranque no será especificado. El mensaje le dará una idea de lo que necesita corregir.

Si utilizamos el disco flexible que hemos creado recién y reiniciamos la máquina, veremos un mensaje similar al que aparece en la Figura 1. Observe que el contador regresivo que se encuentra en la parte superior de la pantalla, el cual estará contando a partir de los veinte segundos (200 décimas de un segundo). Si usted no hace la elección dentro de los 20 segundos, la opción resaltada (la primera, o Lin_2.6.31-14 en este caso) será cargada automáticamente.

Figura 1. Pantalla de arranque de LILO
Pantalla de arranque de LILO

Usted puede utilizar las flechas de posición para moverse arriba y abajo en la lista de opciones. La Figura 2 muestra cómo seleccionar el último kernel Lin_2.6.31-20, el cual se encuentra en segundo lugar. Obsérvese que el valor del reloj ya no se muestra. Presione Enter para cargar este kernel.

Figura 2. Elección de otro objetivo de arranque con LILO
Elección de otro objetivo de arranque con LILO

Cuando haya verificado el disco flexible de arranque, cargue la entrada boot=/dev/fd0 en su archivo de configuración lilo.conf para instalar LILO en el MBR o en el registro de arranque de una partición. Por ejemplo, boot=/dev/sda instalará LILO en el registro de arranque maestro de su disco duro principal.

Ahora posee una idea de LILO y de su archivo de configuración. Usted puede anular algunas de las opciones de configuración desde la línea de comando lilo. Encontrará más información sobre este tema en las páginas del manual de lilo utilizando el comando man lilo, o man lilo.conf. Encontrará información más detallada en la guía de usuario PostScript que se encuentra instalada junto con su paquete lilo o lilo-doc. Éste debería encontrarse instalado en el directorio de su documentación, pero su ublicación exacta puede variar según el sistema. Una forma de ubicar este archivo es filtrar la lista de paquetes a través de grep. El Listado 3 muestra cómo hacer esto en los sistemas Ubuntu 9.10 basados en Debian que han sido utilizados en este ejemplo.

Listado 3. Búsqueda de la guía del usuario de LILO con dpkg
ian@pinguino:~$ dpkg -L lilo-doc | grep "ps"
/usr/share/doc/lilo-doc/user.ps.gz
/usr/share/doc/lilo-doc/tech.ps.gz

El comando correspondiente en un sistema basado en RPM como Fedora debería ser: rpm -ql lilo-doc | grep "ps"

Los comandos auxiliares de LILO

LILO posee varios comandos auxiliares:

lilo -q
Despliega información desde el archivo de configuraciones xml.
lilo -R
Configura lilo para que éste automáticamente arranque el sistema especificado sólo en el próximo rearranque. Esto resulta conveniente en el caso de sistemas de rearranque automático remoto.
lilo -I
Despliega información sobre la ruta de un kernel.
lilo -u
Desinstala lilo y reinstala el registro de arranque anterior.

Cuando LILO arranca un sistema Linux, usted quizá desee proporcionar parámetros adicionales al momento del arranque. Por ejemplo, si su arranque gráfico no está funcionando, usted quizá desee arrancar en el modo 3 o en el modo de usuario único para solucionarlo. Si usted elige una entrada y presiona la tecla TAB debería ver una ventana terminal que ha sido completada previamente con el nombre de la etiqueta seleccionada, tal como se puede observar en la Figura 3.Cualquier caracter ingresado en el nombre de la etiqueta será trasladado al kernel. Por ejemplo, en nuestro ejemplo, usted elegiría el último sistema Ubuntu simplemente moviéndose una línea hacia abajo y presionando TAB. Si usted no elige ningún nombre, luego tendrá que tipear el que especificó en la etiqueta. Usted puede ver porqué utilizar etiquetas más breves que las que aparecen en nuestros ejemplos podría resultar una buena idea: typing Lin_2.6.31.20 isn't easy.

Figura 3. Ingreso de los parámetros del kernel con LILO
Ingreso de los parámetros del kernel con LILO

En la Figura 3, hemos ingresado "single" a los parámetros de arranque para establecer que queríamos arrancar en el modo de usuario único para solucionar algunas cuestiones del sistema. Vea la sección Recovery por más información sobre el uso de los parámetros de arranque.

Recuerde también que con LILO usted debe ejecutar el comando lilo siempre que actualice el archivo de configuración (/etc/lilo.conf). También debería ejecutar el comando lilo si agrega, mueve, o borra particiones o hace otras modificaciones que pudieran invalidar el cargador de arranque generado.


GRUB

GRUB, o cargador GRand Unifood Boot, es el otro de cargador de arranque más común de Linux. Al igual que LILO, GRUB puede instalarse en el MBR de su unidad de arranque, o en el registro de arranque de partición de una partición. También puede instalarse en los dispositivos extraíbles como por ejemplo los discos flexibles, los CDs o las memorias USB. Si usted no está familiarizado todavía con GRUB, será conveniente que practique en un disco flexible o una memoria USB lo que haremos en nuestros ejemplos.

GRUB, o GNU GRUB, ha sido desarrollado bajo el auspicio de la Fundación de Software Libre. Existe una nueva versión, GRUB 2, en desarrollo, de manera que las versiones originales GRUB 0.9x son conocidas ahora como Legado Grub.

Durante la instalación de Linux usted especificará por lo general LILO o GRUB como gestor de arranque. Si elige LILO, es posible que no tenga GRUB instalado. En ese caso, deberá instalar el paquete del mismo. Supongamos que tiene el paquete GRUB instalado. Consulte nuestra series roadmap para acceder a los artículos sobre administración de paquetes si desea obtener ayuda con esto.

GRUB (Legacy) tiene un archivo de configuración que se guarda generalmente en /boot/grub/grub.conf. Si su sistema de archivos soporta vínculos simbólicos, como la mayoría de los sistemas de archivos de Linux, probablemente tendrá /boot/grub/menu.lst como vínculo simbólico a /boot/grub/grub.conf.

El comando grub (/sbin/grub, o, en algunos sistemas, /usr/sbin/grub) es un shell pequeño pero considerablemente poderoso que soporta a numerosos comandos para instalar GRUB, iniciar sistemas, localizar y mostrar archivos de configuración y realizar tareas similares. Este shell comparte gran parte del código con el cargador de arranque GRUB de la segunda etapa, de manera que resultará útil aprender sobre GRUB sin tener que realizar el arranque en un entorno GRUB de segunda etapa. La etapa 2 de GRUB se ejecuta en modo menú, para permitirle elegir un sistema operativo desde un menú, o en modo comando, donde se especifican comandos individuales para cargar un sistema. Hay también muchos otros comandos, como grub-install, que utilizan el shell grub y ayudan a automatizar tareas como la instalación de GRUB.

El Listado 7 muestra parte de un archivo de configuración de GRUB. Cuando lo analice, recuerde algo importante: GRUB, al menos GRUB Legacy, los dispositivos de conteo, las particiones, y los items que requieren conteo, comienzan en 0 en lugar de 1. También tenga en cuenta que la primera línea del kernel es muy larga. Nosotros la mostramos con una barra invertida (\) que indica donde la rompemos para la publicación.

Listado 4. /boot/grub/menu.lst Ejemplo de configuración de GRUB
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,5)
#          kernel /boot/vmlinuz-version ro root=/dev/sda6
#          initrd /boot/initrd-version.img
#boot=/dev/sda6
default=1
timeout=10
splashimage=(hd0,5)/boot/grub/splash.xpm.gz
#hiddenmenu
password --md5 $1$RW1VW/$4XGAklxB7/GJk0uO47Srx1
title Upgrade to Fedora 11 (Leonidas)
	kernel /boot/upgrade/vmlinuz preupgrade \ 
      repo=hd::/var/cache/yum/preupgrade stage2=\
      hd:UUID=8b4c62e7-2022-4288-8995-5eda92cd149b:/boot/upgrade/install.img \
      ks=hd:UUID=8b4c62e7-2022-4288-8995-5eda92cd149b:/boot/upgrade/ks.cfg
	initrd /boot/upgrade/initrd.img
title Fedora (2.6.26.8-57.fc8)
	root (hd0,5)
	kernel /boot/vmlinuz-2.6.26.8-57.fc8 ro root=LABEL=FEDORA8 rhgb quiet
	initrd /boot/initrd-2.6.26.8-57.fc8.img
title Fedora (2.6.26.6-49.fc8)
	root (hd0,5)
	kernel /boot/vmlinuz-2.6.26.6-49.fc8 ro root=LABEL=FEDORA8 rhgb quiet
	initrd /boot/initrd-2.6.26.6-49.fc8.img
title GRUB Menu
	rootnoverify (hd0,1)
	chainloader +1
title Windows
	rootnoverify (hd0,0)
	chainloader +1

Al igual que la configuración de LILO, el primer grupo de opciones nombrado más arriba controla el modo de operar de GRUB. En GRUB, estas opciones se denominan comandos de menú, y deben aparecer antes de otros comandos. Las secciones restantes proporcionan opciones por imágenes para los sistemas operativos que deseamos permitir que arranquen el GRUB. Tenga en cuenta que "title" es considerado un comando de menú. Cada instancia de title es seguida de uno o más comandos generales o entradas de menú. Nuestro ejemplo de LILO fue un ejemplo básico típico de un sistema de arranque dual con sistema Windows y con dos sistemas Linux. Este ejemplo viene del mismo sistema que utilizamos antes. De hecho, se trata del menú de arranque que es cargado en cadena desde la entrada "Fedora 8" del menú de LILO. Usted reconocerá muchos elementos iguales en los archivos de configuración de LILO y de GRUB. Quizá se le ocurra pensar que es lo que necesita cambiar para agregar los sistemas operativos extra aquí presentados al ejemplo de LILO presentado anteriormente.

Los comandos del menú que aplican a todas las otras secciones en nuestro ejemplo son:

#
Cualquier línea que comience con un # es un comentario y es ignorado por GRUB. Este archivo de configuración particular fue generado en principio por anaconda, el instalador de Red Hat. Probablemente encontrará comentarios agregados a su archivo de configuración de GRUB si usted instala GRUB cuando instala Linux. Los comentarios a menudo servirán de ayuda para el programa de actualización del sistema de manera que la configuración de GRUB puede mantenerse al día con kernels actualizados. Preste atención a cualquier marcador colocado para este fin si usted edita por si mismo la configuración.
default
Especifica qué sistema cargar si el usuario no realiza una elección dentro del tiempo de espera correspondiente. En nuestro ejemplo, default=2 significa cargar el tercer ítem. Recuerde que GRUB cuenta a partir de 0 y no de 1. Si esto no está especificado, lo que hará de manera predeterminada es arrancar el primer ítem, el número de ítem 0.
timeout
Especifica un tiempo de espera en segundos antes de arrancar el ítem predeterminado. Observe que LILO utiliza décimas de segundo para sus tiempos de espera mientras que GRUB utiliza segundos completos.
splashimage
Especifica el entorno, o splash, imagen a visualizarse con el menú de arranque. GRUB Legacy denomina al primer disco duro como (hd0) y a la primera partición del disco como (hd0,0), de manera que la especificación splashimage=(hd0,6)/boot/grub/splash.xpm.gz significa que hay que usar el archivo /boot/grub/splash.xpm.gz ubicado en la partición 7 del primer disco duro. Recuerde que el conteo se inicia desde 0. Observe además, que la imagen es un archivo XPM comprimido con gzip. El soporte para splashimage es un parche que puede o no estar incluido en la distribución.
password
Especifica una contraseña que se debe ingresar antes de que el usuario pueda desbloquear el menú para editar una línea de configuración o ingresar comandos GRUB. Al igual que con LILO, la contraseña puede aparecer en texto claro. GRUB también permite que las contraseñas se almacenen como un fichero MD5, como sucede en nuestro ejemplo. Esto es de alguna manera más seguro y la mayoría de los administradores fijan una contraseña. Sin una contraseña, el usuario tendría acceso completo a la línea de comandos GRUB.

Nuestro ejemplo muestra dos kernels Fedora 8 y una actualización a la opción Fedora 11, junto con Windows XP y una opción de cadena "GRUB Menu". Los comandos utilizados en estas secciones son:

title
Es un título descriptivo que se muestra como el ítem del menú cuando Grub realiza el arranque. Usted usará las teclas de flecha para moverse hacia arriba o hacia abajo en la lista de títulos, y luego deberá presionar la tecla Enter para seleccionar un ítem determinado.
root
Especifica la partición que se debe arrancar. Al igual que con splashimage, recuerde que el conteo comienza en 0, de manera que el primer sistema Red Hat que se especifica como raíz (hd0,6) está en realidad en la partición 7 del primer disco duro (en este caso, /dev/hda7), mientras que el primer sistema Ubuntu que se especifica como raíz (hd1,10) está en el segundo disco duro (/dev/hdb11). En algunos casos, GRUB intentará montar esta partición para verificarla y proporcionar valores al sistema operativo iniciado.
kernel
Especifica la imagen de kernel que se cargará así como cualquier otro parámetro de kernel requerido. Esto es similar a la combinación de la imagen LILO y los comandos append. Tenemos dos kernels Fedora 8 diferentes, además de la actualización del kernel en este ejemplo.
initrd
Es el nombre del disco inicial RAM, que contiene los módulos necesarios para el kernel antes de montar sus sistemas de archivos.
savedefault
No se utiliza en este ejemplo. Si el comando default=saved se especifica, y el comando savedefault se especifica para un sistema operativo, entonces el arranque del sistema operativo provocará que se convierta en la opción predeterminada hasta que otro sistema operativo con savedefault especificado sea cargado. En este ejemplo, la especificación de default=2 anulará toda opción predeterminada que haya sido guardada.
boot
Es un parámetro opcional que ordena a GRUB que arranque el sistema operativo seleccionado. Esta es la acción predeterminada cuando todos los comandos de una selección han sido procesados.
lock
No se utiliza en este ejemplo. Éste no arrancará el ítem especificado hasta que se ingrese una clave. Si usted utiliza esta opción, entonces debería también especificar una clave en las opciones iniciales; de otro modo, un usuario puede modificar la opción lock y arrancar el sistema, o agregar "single" a una de las otras entradas. Es posible especificar una clave diferente para items particulares si así se lo desea.
rootnoverify
Es similar a root, a excepción de que GRUB no intenta montar el sistema de archivos o verificar sus parámetros. Suele usarse en sistemas de archivos como NTFS que no son soportados por GRUB. También podría usarse si se desea que GRUB cargue el registro maestro de arranque en un disco duro, por ejemplo, para acceder a un archivo de configuración diferente o para volver a cargar el cargador de arranque anterior.
chainloader
Es similar a root, a excepción de que GRUB no intenta montar el sistema de archivos o verificar sus parámetros. Suele usarse en sistemas de archivos como NTFS que no son soportados por GRUB. También podría usarse si se desea que GRUB cargue el registro maestro de arranque en un disco duro, por ejemplo, para acceder a un archivo de configuración diferente o para volver a cargar el cargador de arranque anterior.

Ahora ya tiene una idea de lo que puede encontrar en un archivo /boot/grub/grub.conf (o /boot/grub/menu.lst) típico. Existen muchísimos más comandos GRUB que proporcionan un gran control sobre el proceso de arranque y, además, ayudan en la instalación de grub y en otras tareas. Conozca más acerca de estos comandos en el manual de GRUB que se encuentra disponible en su sistema a través de info grub.

Ahora que ya tenemos un archivo de configuración GRUB, debemos crear un disco flexible de arranque para probarlo. La forma más fácil de hacerlo es usar el comando grub-install tal como se muestra en el Listado 5. Si usted está instalando GRUB en su disco flexible o en una partición, entonces debería desmontar el primer dispositivo. Esto no aplica cuando usted esté instalando GRUB en el MBR de un disco duro, dado que en ese caso usted sólo montaría particiones(/dev/sda1, /dev/sda2, etc.) y no el disco completo (/dev/sda).

Listado 5. Instalación de GRUB en un disco flexible
[root@pinguino ~]# grub-install /dev/fd0
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(fd0)	/dev/fd0
(hd0)	/dev/sda

Nota: Usted debería también utilizar un nombre del dispostitivo GRUB (fd0) en lugar de /dev/fd0, pero si lo usa, debería colocarlo entre comillas para evitar que el shell interprete los paréntesis. Por ejemplo: grub-install '(fd0)'

El mapa de dispositivos muestra cómo GRUB iguala la vista interna de sus discos (fd0, hd0, hd1) con la vista Linux (/dev/fd0, /dev/hda, /dev/hdb). Probablemente esto resulta correcto en un sistema con uno o dos discos duros IDE y, tal vez, una unidad flexible. Si ya existe un mapa de dispositivos, GRUB lo reutilizará sin realizar el sondeo. Si acaba de agregar una nueva unidad y quiere forzar la generación de un nuevo mapa de dispositivos, agregue la opción --recheck al comando grub-install . A veces usted puede ver un mensaje como el que se muestra en el Listado 6. En ese caso también, usted necesitará agregar la opción --recheck al comando grub para forzar a GRUB a probar los dispositivos disponibles y reconstruir el mapa de dispositivos.

Listado 6. Instalación de GRUB en un disco flexible
[root@pinguino ~]# grub-install /dev/fd0
/dev/fd0 does not have any corresponding BIOS drive.

Si usted comenzó con un disco flexible vacío y ahora lo monta, descubrirá que todavía parece estar vacío. Esto se debe a que GRUB ingresó un cargador personalizado de nivel 1 en el primer sector del disco. Esto no puede verse en el sistema de programas. Este cargador de etapa 1 cargará la etapa 2 y el archivo de configuración desde su disco duro. Pruebe arrancar el disco y verá muy poca actividad de entrada y salida antes de que se despliegue el menú. Al igual que con LILO, usted utiliza las flechas de posición para seleccionar diferentes objetivos de arranque.

Figura 4. El arranque utilizando GRUB
El arranque utilizando GRUB

Una vez que ha verificado el disco flexible, usted está listo para instalar GRUB en el MBR de su disco rígido. Para el primer disco duro IDE, usted utilizaría:
grub-install /dev/sda
o
grub-install '(hd0)'

Para instalarlo en el registro de arranque de la partición para la partición 11, utilice:
grub-install /dev/sda11
o
grub-install '(hd0,10)'

Recuerde que GRUB cuenta desde 0.

Al igual que en LILO, usted puede agregar parámetros de arranque. De hecho, usted puede editar cualquiera de los comandos en la configuración de GRUB o cargar otro archivo de configuración al momento del arranque. Si usted usó una clave, deberá ingresar el comando p y luego ingresar la clave. Luego, seleccione un item e ingrese el comando e para editarlo. Selecciones la línea que quiere editar e ingrese e nuevamente. Edite la línea ingresando nuevo caracteres o borrando los caracteres actuales, y luego presione Enter para regresar al menú. Ingrese el comando b para arrancar su sistema con los nuevos valores. La Figura 5 muestra la fase de edición del comando de este proceso en la cual se agrega el parámetro 'single' a la declaración del kernel para arrancar en modo de usuario único.

Figura 5. Arranque en modo de usuario único con GRUB
Arranque en modo de usuario único con GRUB

Actualizaciones del sistema

La mayoría de las distribuciones proporcionan las herramientas para la actualización del sistema. Estas herramientas están generalmente al tanto del cargador de arranque en uso y a menudo actualizan su archivo de configuración de manera automática. Si usted crea su propio kernel personalizado, o prefiere utilizar un archivo de configuración con un nombre o ubicación fuera de lo común, entonces quizá necesite actualizar el archivo de configuración usted mismo.

  • Si usted utiliza LILO, debe ejecutar el comando lilo siempre que actualice su archivo de configuración o haga cambios, como por ejemplo agregar un disco duro o borrar una partición.
  • Si usted usa GRUB, puede editar el archivo /boot/grub/grub.conf para realizar los cambios, y el cargador GRUB de etapa 2 leerá el archivo cuando usted rearranque. Usted normalmente no necesita reinstalar GRUB por haber agregado un nuevo kernel. Sin embargo, si mueve una partición, o agrega dispositivos, usted quizá necesite reinstalar GRUB. Recuerde que el cargador de la etapa 1 es muy pequeño, por lo cual simplemente posee una lista del bloque de direcciones para el cargador de la etapa 2. Mueva la partición y la dirección cambiará, de manera que la etapa 1 ya no puede localizar la etapa 2. Analizaremos algunas estrategias y los cargadores de etapa 1.5 de GRUB más adelante.
  • Si usted ejecuta más de un sistema Linux en diferentes particiones, considere using a boot partition tal como se describe más abajo.

Recuperación

Veamos algunas de las cosas que pueden salir mal al momento de la configuración del arranque minuciosamente preparado, particularmente cuando se instalan y arrancan múltiples sistemas operativos.Lo primero que hay que recordar es que se debe evitar caer en pánico. La recuperación por lo general consta de pocos pasos. Las estrategias aquí presentadas deberían ayudarlo en todas las etapas de crisis.

Cualquiera que tenga acceso físico a una máquina tiene mucho poder. Así mismo, cualquiera con acceso a la línea de comando de GRUB también tiene acceso a los archivos de su sistema sin el beneficio de ningún derecho de propiedad o provisión de seguridad suministrado por el sistema que se está ejecutando. Tenga esto en mente al seleccionar un cargador de arranque. La elección entre LILO y GRUB es más que nada un tema de elección personal. Elija el cargador que mejor se ajuste a sus necesidades y a su estilo de trabajo particulares.

Otra instalación destruye su MBR

A veces usted instala otro sistema operativo y sin querer sobrescribe en su MBR. Algunos sistemas, como DOS y Windows, siempre instalan su propio MBR. Por lo general es muy fácil solucionar esta situación. Si usted tiene el hábito de crear un disco flexible cada vez que ejecuta o lilo reinstala GRUB, se encuentra fuera de peligro. Simplemente arranque su sistema Linux desde el disco flexible y ejecute nuevamente lilo o grub-install.

Si usted no contara con un disco flexible de arranque, pero todavía tiene casi toda las distribución de Linux disponibles, usted puede por lo general arrancar el medio de instalación de Linux en modo recuperación. Al hacerlo, el sistema de archivos raíz de su disco duro se montará en algún punto extraño de recuperación, o no se montará en lo absoluto. Usted puede utilizar el comando chroot para lograr que este raro punto de montaje se convierta en su directorio raíz (/). Luego ejecute lilo o grub-install para crear un nuevo disco flexible o para reinstalar el MBR. Yo prefiero crear un disco flexible y usarlo para arrancar, asegurándome de que todo está en orden antes de reescribir el MBR, pero usted puede ser más valiente que yo. Arrancar un CD o un DVD en modo de rescate puede darle una variedad de opciones y hacer que sea más sencillo pasar al modo usuario único, en el cual usted tendrá más autoridad raíz. Si usted trata de arrancar el sistema Ubuntu 9.10 que utilizamos en los ejemplos de LILO en modo de usuario único verá un menú como el que muestra la Figura 6. La opción resaltada lleva a un shell raíz con conexión de red.

Figura 6. Menú de recuperación de Ubuntu 9.10
Menú de recuperación de Ubuntu 9.10

Un menú como este es una opción común en los medios de recate. En nuestro ejemplo de rescate no utilizamos un CD, pero arrancamos el sistema Ubuntu 9.19 en modo de usuario único como se describe en la sección sobre LILO que aparece más arriba. Luego realizamos los pasos normales necesarios para crear un disco flexible de arranque para otro sistema, en este caso el sistema Fedora 8 on /dev/sda6. En caso de que usted arranque desde un CD de rescate o desde otro OS desde el mismo sistema, los pasos serán similares, aunque algunos, como el montaje de una imagen para rescatarla, pueden haber sido ya realizados por usted.

Cuando usted eventualmente alcance un prompt raíz, usted querrá realizar algunos o todos los pasos mostrados en el Listado 7. En nuestro ejemplo, creamos un punto de montaje (/mnt/sysimage), mount /dev/sda6, montamos algunos sistemas de archivos especiales en el nuevo raíz (que se va a crear), y luego cambiamos el usuario raíz al sistema montado. Los comandos cat /etc/issue muestran el efecto del comando chroot, el cual convierte el directorio objetivo en la nueva raíz del sistema de archivos, al menos hasta que salgamos del entorno de este directorio raíz con Ctrl-d o con exit.

El listado 7 muestra un ejemplo en el mismo entorno que utilizamos para nuestros ejemplos de configuración anteriores. Piense en esto como una ventana terminal donde usted se ha logueado como usuario raíz. En otras palabras, tenga cuidado de lo que ingresa en su disco duro.

Listado 7. Uso de un sistema de rescate y chroot
root@pinguino:~# mkdir /mnt/sysimage
root@pinguino:~# mount /dev/sda6 /mnt/sysimage
root@pinguino:~# cd /mnt/sysimage
root@pinguino:~# mount -t proc none proc/
root@pinguino:~# mount -t sysfs none sys/
root@pinguino:~# mount -o bind /dev dev/
root@pinguino:~# cat /etc/issue
Ubuntu 9.10 \n \l

root@pinguino:~# chroot /mnt/sysimage
root@pinguino:~# 
sh-3.00# chroot /mnt/sysimage
[root@oinguine /]# cat /etc/issue
Fedora release 8 (Werewolf)
Kernel \r on an \m

[root@oinguine /]# grub-install /dev/fd0
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(fd0)   /dev/fd0
(hd0)   /dev/sda
[root@oinguine /]#

Cuando ya tenga su disco flexible de arranque, presione ctrl-d para salir del entorno chroot y luego reinicie el sistema. Recuerde desmontar su medio de instalación. Si no tiene un CD o DVD de instalación a mano, en Internet se encuentran disponibles varios CDs de recuperación y CDs en vivo de LINUX así como también en algunos disquetes y dispositivos de memoria USB. Consulte Recursos por más detalles.

Si bien no se encuentra dentro del alcance de este tutorial, cabe destacar que es posible arrancar un sistema Windows 2000 o Windows XP con el arranque e instalar Lilo o GRUB en el registro de arranque de una partición. El programa de arranque ntldr también puede cargar en cadena otros sectores de arranque. Sin embargo, en este caso la configuración puede resultar un poco compleja. Usted deberá copiar el sector de arranque a una partición de Windows (generalmente utilizando el comando dd ) y modificar el archivo oculto boot.ini para que esto funcione.

Usted movió una partición

Si movió una partición y olvidó considerar la configuración de arranque, se encuentra ante un problema temporal. Generalmente, LILO o GRUB no cargarán. LILO probablemente imprima una 'L' que indica que la etapa 1 se cargó y luego se detuvo. GRUB mostrará un mensaje de error. Lo que ocurre en este caso es que el cargador de etapa 1 (que tenía una lista de sectores a cargar para llegar al cargador de etapa 2) tal vez pueda cargar los sectores desde las direcciones que tiene, pero esos sectores ya no tienen la firma de la etapa 2. Si generó un disquete de arranque usando los métodos antes descriptos, recuerde que lilo o grub-install cargan en el disquete un solo sector de arranque, por lo cual su disquete de arranque probablemente no sea de ayuda. Como en el ejemplo anterior, usted probablemente necesite cargar algún tipo de entorno de rescate y reconstruir su disquete de rescate con LILO o con GRUB. Luego recargar, verificar su sistema y reinstalar su cargador de arranque en el MBR.

Usted puede notado que nuestros ejemplos de configuración utilizaron algunas etiquetas y (Universally Unique IDs) UUIDs en las particiones. Por ejemplo:
kernel /boot/vmlinuz-2.6.26.8-57.fc8 ro root=LABEL=FEDORA8 rhgb quiet
or
kernel /boot/upgrade/vmlinuz preupgrade repo=hd::/var/cache/yum/preupgrade stage2=\
hd:UUID=8b4c62e7-2022-4288-8995-5eda92cd149b:/boot/upgrade/install.img \
ks=hd:UUID=8b4c62e7-2022-4288-8995-5eda92cd149b:/boot/upgrade/ks.cfg

Yo suelo utilizar etiquetas UUIDs como estas para evitar problemas al mover particiones. Usted aún necesita actualizar el archivo de configuración de GRUB o LILO y volver a ejecutar lilo, pero no es necesario que actualice /etc/fstab . Esto resulta particularmente práctico para crear la imagen de una partición en un sistema y restaurarla en una ubicación diferente en otro sistema. También es práctico si usted arranca desde un dispositivo, como un dispositivo USB, que no siempre se encuentra en la misma ubicación.

Uso de una partición de arranque

Otro enfoque para realizar la recuperación, o quizá para evitarla, consiste en utilizar una partición separada para el arranque. Esto resulta particularmente útil si usted desea un sistema de verificación con varias distribuciones que reconstruya con frecuencia. La partición de arranque no debe ser muy grande, quizá de 100MB aproximadamente. Coloque esta partición donde sea poco probable que se mueva y donde probablemente el agregado o remoción de otra partición no modifique el número de su partición. En un entorno mixto de Windows y Linux, /dev/sda2 (o /dev/hda2 dependiendo de cómo estén etiquetados sus discos) por lo general es una buena elección para su partición de arranque. El Listado 8 muestra los items de una partición de arranque pequeña (/dev/sda2) que actualmente ha sido cargada por el registro de arranque maestro en el sistema que hemos utilizado de ejemplo.

Listado 8. Uso de una partición de arranque pequeña con GRUB
# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.           
default		0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout		10

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
#      password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

title           Fedora 8 (sda6) Grub menu
root            (hd0,5)
chainloader     +1
boot

# Ubuntu 9.10 uses GRUB 2, so use kernel to drive GRUB 2 menu.
title           Ubuntu 9.10 (sda7)
root            (hd0,6)
kernel          /boot/grub/core.img

# This is a divider, added to separate the menu items below from the Debian
# ones.
title		Other operating systems:
root

# Windows XP
title		Windows NT/XP
root		(hd0,0)
savedefault
chainloader	+1

Otra razón por la cual es importante tener un partición /boot surge cuando su partición raíz usa un sistema de archivos no soportado por su cargador de arranque. Por ejemplo, es muy común tener una partición /boot con formato ext2 o ext3 cuando la partición root (/) usa la LVM, la cual no es soportada por GRUB Legacy.

Si su sistema tiene distribuciones múltiples, no comparta la partición /boot entre ellas. Recuerde configurar LILO o GRUB para que arranque desde la partición que luego se montará como /boot. Recuerde también que los programas de actualización de una distribución generalmente actualizarán la configuración GRUB o LILO para su correspondiente sistema. En un entorno con sistemas múltiples, es recomendable mantener un sistema principal con su propia partición /boot y actualizar manualmente el archivo de configuración cuando la actualización de alguno de los sistemas así lo requiera. Otro enfoque consiste en que cada sistema instale un cargador de arranque en su propio registro de arranque de partición y que el sistema principal simplemente cargue en cadena los registros de arranque de partición de cada sistema particular, lo cual resultará en un proceso de menú de dos etapas

Construcción de un disquete flexible de arranque o CD-ROM de instalación automática

Por último, profundicemos un poco más en la configuración GRUB y en cómo generar un disquete de arranque autónomo que lo llevará a una solicitud GRUB sin importar qué le haya ocurrido a su disco duro.

Si usted tiene experiencia en el montaje de discos duros como se analiza en el artículo "Learn Linux 101: Hard disk layout," usted recordará todo lo que que necesita saber sobre cilindros en los discos duros. Aunque usted crea que un cilindro es algo imposible de encontrar en los dispositivos modernos, muchos aspectos de su sistema de archivos siguen teniéndolos. En particular, usted encontrará particiones que utilizan una gran cantidad de cilindros alineados en bordes de cilindros. En una partición, muchos sistemas de archivos también administran el espacio en unidades de cilindros. En muchos sistemas UNIX® y Linux, el montaje de los sistemas de los archivos se guarda en un super block, que es la primera unidad de asignación en el sistema de archivos. Para los sistemas de archivos ext2 o ext3 y para los discos duros de tamaño considerable, por ejemplo, el espacio se rompe en varias secciones con una copia del superblock al comienzo de cada sección. Esto ayudará a la recuperación si usted accidentalmente arruina los bordes de las particiones con un programa como fdisk.

Otro beneficio de la inteligencia de los cilindros es que hay espacio al comienzo de un disco justo despúes del MBR. GRUB toma ventaja de esto mediante la inclusión de un cargador de arranque 1.5 en este espacio o en el espacio no utilizado en una partición siempre que sea posible. El cargador de la etapa 1.5 comprende el sistema de archivos de la partición que contienen la etapa 2, de modo que se encuentra protegido de alguna manera contra los inconvenientes relacionados con el movimiento de archivos.

Todo esto está muy bien, pero ¿cómo se relaciona con el disco flexible de arranque? Bueno, el disco flexible no tiene mucho espacio ni mucha noción de lo que son los cilindros, por consiguiente, si desea arrancar la etapa 1 y la etapa 2 de GRUB desde un disco flexible, deberá instalar la etapa 1 y luego copiar la etapa 2 a los sectores subsiguientes al sector de arranque. El Listado 9 muestra un ejemplo de como hacer esto. Use un disquete vacío, ya que este proceso destruirá los datos que pudiera contener el disquete. Deberá copiar los archivos que vinieron con su distribución grub en lugar de los de su directorio /boot/grub, ya que /boot/grub/stage2 ha sido modificado para trabajar con sus particiones de disco duro. Encontrará los archivos originales de etapa 1 y etapa 2 en un subdirectorio de /usr/share/grub. En nuestro ejemplo estos se encuentran en /usr/share/grub/i386-redhat.

Listado 9. Creación de un disquete de arranque GRUB
[root@pinguino ~]# ls /usr/share/grub/
i386-redhat
[root@pinguino ~]# cd /usr/share/grub/i386-redhat/
[root@pinguino i386-redhat]# ls -l st*
-rw-r--r-- 1 root root    512 2008-05-28 12:05 stage1
-rw-r--r-- 1 root root 109212 2008-05-28 12:05 stage2
-rw-r--r-- 1 root root 109212 2008-05-28 12:05 stage2_eltorito
[root@pinguino i386-redhat]# dd if=stage1 of=/dev/fd0 bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.29007 s, 1.8 kB/s
[root@pinguino i386-redhat]# dd if=stage2 of=/dev/fd0 bs=512 seek=1
213+1 records in
213+1 records out
109212 bytes (109 kB) copied, 7.4094 s, 14.7 kB/s


[root@lyrebird root]# ls /usr/share/grub
i386-redhat
[root@lyrebird root]# cd /usr/share/grub/i386-redhat
[root@lyrebird i386-redhat]# ls -l st*
-rw-r--r--    1 root     root          512 Aug  3  2004 stage1
-rw-r--r--    1 root     root       104092 Aug  3  2004 stage2
[root@lyrebird i386-redhat]# dd if=stage1 of=/dev/fd0 bs=512 count=1
1+0 records in
1+0 records out
[root@lyrebird i386-redhat]# dd if=stage2 of=/dev/fd0 bs=512 seek=1

203+1 records in
203+1 records out

Si usted comenzó con un disco flexible MS-DOS formateado antes de hacer esto, y ahora intenta montar el disco, el comando de montaje le dará error. El haber copiado la etapa 2 inmediatamente después del sector de arranque de su disquete (seek=1) destruyó el sistema de archivos del disquete.

El proceso para la creación de un CD de arranque de GRUB es similar, aunque usted prepare la imagen del CD en su disco duro. Usted necesitará un directorio temporal, digamos grubcd, con los subdirectorios boot y boot/grub. Usted necesita entonces copiar el archivo stage2_eltorito desde sus archivos de distribución GRUB a los subdirectorios grub que ha creado recientemente. Luego utilice genisoimage para crear un archivo imagen de arranque .iso que usted pueda copiar al CD con su herramienta de copiado preferida. El Listado 10 muestra el modo de crear una imagen de CD como grubcd.iso.

Listado 10. Creación de una imagen de CD de arranque de GRUB
[ian@pinguino ~]$ mkdir -p grubcd/boot/grub
[ian@pinguino ~]$ cp /usr/share/grub/i386-redhat/stage2_eltorito grubcd/boot/grub
[ian@pinguino ~]$ genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot \
> -boot-load-size 4 -boot-info-table -o grubcd.iso grubcd
I: -input-charset not specified, using utf-8 (detected in locale settings)
Size of boot image is 4 sectors -> No emulation
Total translation table size: 2048
Total rockridge attributes bytes: 760
Total directory bytes: 4576
Path table size(bytes): 34
Max brk space used 0
233 extents written (0 MB)

Usted podría arrancar el CD o disquete en una PC arbitraria; no hace falta que tenga un sistema Linux. Si ahora arranca el disquete, notará una demora en la carga de la etapa 2 desde disquete. De manera similar, cuando arranque el CD, éste cargará el shell GRUB desde el CD. Cuando usted cargue cualquiera de los dos, obtendrá un aviso de arranque de GRUB. Presione la tecla tab para ver una lista de comandos disponibles para usted. Pruebe help commandname para obtener ayuda en el comando commandname. El Listado 11 muestra la línea de comando de GRUB.

Listado 11. La línea de comando de GRUB
    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> 
 Possible commands are: blocklist boot cat chainloader clear cmp color configfile 
 debug device displayapm displaymem dump embed find fstest geometry halt help
 hide impsprobe initrd install ioprobe kernel lock makeactive map md5crypt 
 module modulenounzip pager partnew parttype password pause quit read reboot 
 root rootnoverify savedefault serial setkey setup terminal terminfo testload testvbe
 unhide uppermem vbeprobe

grub> help rootnoverify
rootnoverify: rootnoverify [DEVICE [HDBIAS]]
    Similar to `root', but don't attempt to mount the partition. This
    is useful for when an OS is outside of the area of the disk that
    GRUB can read, but setting the correct root device is still
    desired. Note that the items mentioned in `root' which derived
    from attempting the mount will NOT work correctly.

grub> find /boot/grub/grub.conf
 (hd0,1)
 (hd0,5)

grub>

En este ejemplo, hemos encontrado que hay archivos de configuración GRUB en dos diferentes particiones de nuestro disco duro principal. Cargaríamos el menú de GRUB desde uno de ellos usando el comando configfile. Por ejemplo: configfile (hd0,1)/boot/grub/grub.conf

Esto cargaría el menú para ese archivo de configuración y podríamos arrancar el sistema desde este punto. Usted puede explorar estos comandos de grub en el manual de GRUB. Pruebe ingresando info grub en una ventana terminal de Linux para abrir el manual.

Un último punto a tratar sobre GRUB antes de pasar a otro tema. Mencionamos que el archivo de la etapa 2 de GRUB destruyó el sistema de archivos del disquete. Si usted quiere obtener un disquete de recuperación GRUB de arranque que cargue los archivos GRUB, incluyendo un archivo de configuración desde el disquete puede lograrlo realizando los siguientes pasos:

  1. Use el comando mkdosfs para crear un sistema de archivos DOS FAT en el disquete y utilice la opción -R para reservar sectores suficientes para el archivo de la etapa 2.
  2. Monte el disquete
  3. Cree un directorio /boot/grub en el disquete
  4. Copie los archivos GRUB stage1, stage2, y grub.conf al directorio boot/grub del disquete. Copie también el archivo de imagen splash si lo desea.
  5. Edite su archivo grub.conf en el disquete de manera que se refiera al archivo splash en el disquete.
  6. Desmonte el disquete
  7. Use el comando shell grub para configurar GRUB en el disquete utilizando los comandos raíz y los comandos de configuración de GRUB.

Hemos ilustrado esto en el Listado 12.

Listado 12. Instalación de GRUB en un disquete con un sistema de archivos
[root@pinguino ~]# mkdosfs -R 220 /dev/fd0
mkdosfs 2.11 (12 Mar 2005)
[root@pinguino ~]# mkdir /mnt/floppy
[root@pinguino ~]# mount /dev/fd0 /mnt/floppy
[root@pinguino ~]# mkdir -p /mnt/floppy/boot/grub
[root@pinguino ~]# cp /boot/grub/stage1 /mnt/floppy/boot/grub
[root@pinguino ~]# cp /boot/grub/stage2 /mnt/floppy/boot/grub
[root@pinguino ~]# cp /boot/grub/splash* /mnt/floppy/boot/grub
[root@pinguino ~]# cp /boot/grub/grub.conf /mnt/floppy/boot/grub
[root@pinguino ~]# umount /dev/fd0
[root@pinguino ~]# grub
Probing devices to guess BIOS drives. This may take a long time.

    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 (fd0)
 Filesystem type is fat, using whole disk

grub> setup (fd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/fat_stage1_5" exists... no
 Running "install /boot/grub/stage1 (fd0) /boot/grub/stage2 p /boot/grub/grub.c
onf "... succeeded
Done.

Este último ejemplo muestra también el hecho de que usted puede ejecutar el comando grub en un shell de Linux. Esta es una buena forma de aprender sobre GRUB sin tener que volver a arrancar la máquina una y otra vez. Usted necesita autoridad de usuario raíz para ejecutar grub y así poder hacer la mayoría de las cosas que puede hacer GRUB, excepto rearrancar el sistema.


GRUB 2

GRUB 2 se volvió a escribir desde scratch para hacerlo mucho más portátil y con más módulos. Éste apunta a arquitecturas y métodos de arranque diferentes y posee muchas características nuevas. Consulte Resources para obtener más información. Si usted está acostumbrado a GRUB y comienza a utilizar GRUB 2, encontrará que es completamente diferente y probablemente tendrá muchas sorpresas.

Lo primero que le podría llamar la atención es que GRUB 2 no se instala como un cargador de arranque de partición. Aunque antes dije que el instalador de Ubuntu instala GRUB en la partición donde instalé Ubuntu 9.10 en (/dev/sda7), esa partición no arranca mediante un cargador de cadena. El resto de esta sección le dará una breve introducción a GRUB 2 y encontrará información suficiente para comenzar a utilizarlo solo o junto con GRUB Legacy.

La versión de GRUB 2 para PCs se distribuye con el paquete grub-pc. Usted encontrará varios programas, normalmente en .usr/bin or /usr/sbin, que forman parte del paquete grub-pc como se observa en el Listado 13. El tiempo de carga las páginas de los manuales para estos programas es mínimo. Pruebe ejecutar los programas con la opción --help para obtener más información, o buscar ayuda adicional en Internet.

Listado 13. Los ejecutables de GRUB 2 en /usr/bin and /usr/sbin
ian@pinguino:~$ dpkg -L grub-pc|grep "bin/"
/usr/bin/grub-mkimage
/usr/bin/grub-mkrescue
/usr/sbin/grub-setup
/usr/sbin/update-grub2
/usr/sbin/update-grub
/usr/sbin/grub-install
/usr/sbin/upgrade-from-grub-legacy
/usr/sbin/grub-set-default
/usr/sbin/grub-reboot

Lo más importante de GRUB 2 es un kernel multiarranque (/boot/grub/core.img) junto con un archivo de configuración (/boot/grub/grub.cfg). Estos se generarán si usted ejecuta grub-install y establece como objetivo su MBR (por ejemplo: grub-install /dev/sda). Ejecute grub-install --help como se observa en el Listado 14 para obtener una idea de los programas que son llamados a hacer todo el trabajo. Algunos items son similares a Grub Legacy, pero hay un número de items nuevos, como --modules, --grub-setup, --grub-mkimage, etc.

Listado 14. GRUB 2 colabora con grub-install
ian@pinguino:~$ grub-install --help
Usage: grub-install [OPTION] install_device
Install GRUB on your drive.

  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --modules=MODULES       pre-load specified modules MODULES
  --root-directory=DIR    install GRUB images under the directory DIR
                          instead of the root directory
  --grub-setup=FILE       use FILE as grub-setup
  --grub-mkimage=FILE     use FILE as grub-mkimage
  --grub-mkdevicemap=FILE use FILE as grub-mkdevicemap
  --grub-probe=FILE       use FILE as grub-probe
  --no-floppy             do not probe any floppy drive
  --recheck               probe a device map even if it already exists
  --force                 install even if problems are detected
  --disk-module=MODULE    disk module to use

INSTALL_DEVICE can be a GRUB device name or a system device filename.

grub-install copies GRUB images into the DIR/boot directory specified by
--root-directory, and uses grub-setup to install grub into the boot
sector.

Report bugs to <bug-grub@gnu.org>.

Por lo tanto si usted ejecuta grub-install /dev/sda, el proceso creará una archivo de imagen para usted, creará un archivo de configuración, e instalará GRUB 2 en su MBR. Si usted no está preparado para asignarle a GRUB2 toda la configuración, puede crear estas partes por si mismo y luego arrancar la imagen principal de GRUB 2 desde GRUB Legacy o LILO.

Creación de la imagen principal de GRUB 2

La manera más fácil de crear un nuevo archivo de imagen es ejecutar grub-install con la opción --grub-setup=/bin/true, lo que provoca que /bin/true sea ejecutado en lugar del verdadero programa de configuración GRUB 2, como se observa en el Listado 15. Primero borramos core.img para mostrar que el archivo realmente se ha generado.

Listado 15. Ayuda de GRUB 2 para grub-install
ian@pinguino:~$ sudo rm /boot/grub/core.img 
ian@pinguino:~$ sudo grub-install --grub-setup=/bin/true /dev/sda
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(hd0)	/dev/sda
ian@pinguino:~$ ls -l /boot/grub/core.img
-rw-r--r-- 1 root root 25105 2010-04-08 12:10 /boot/grub/core.img

Creación del archivo de configuración de GRUB 2

El archivo de configuración de GRUB 2 es por lo general /boot/grub/grub.cfg. A diferencia de lo que sucede con GRUB Legacy, usted no debería por lo general editar este archivo por si mismo. Usted debería crearlo utilizando el comando grub-mkconfig o el comando update-grub , que es un punto de partida para grub-mkconfig. Estos comandos generalmente buscan configuraciones, como los fondos, los tiempos de espera, etc. en /etc/default/grub, y luego ejecutan los ejecutables desde /etc/grub.d/ para crear varias partes del archivo de configuración, como el encabezado, una sección para la distribución actual de Linux, las secciones para otros sistemas operativos, y sus propias adiciones personalizadas. Si necesita personalizar el menú de GRUB 2, usted debería agregar sus modificaciones a un archivo en /etc/grub.d/ such as 40_custom, o agregar su propio archivo. Recuerde que éste debe ser ejecutable. Usted ejecutará entonces update-grub para generar un nuevo archivo /boot/grub/grub.cfg tal como se observa en el Listado 16.

Listado 16. Creación de un archivo de configuración de GRUB 2 con update-grub
ian@pinguino:~$ sudo update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-20-generic
Found initrd image: /boot/initrd.img-2.6.31-20-generic
Found linux image: /boot/vmlinuz-2.6.31-14-generic
Found initrd image: /boot/initrd.img-2.6.31-14-generic
Found memtest86+ image: /boot/memtest86+.bin
Found GRUB boot loader on /dev/sda1
Found Fedora release 8 (Werewolf) on /dev/sda6
done

El Listado 17 muestra pocos items del archivo de configuración resultante. Hemos indicado largas líneas que rompemos para la publicación utilizando una barra invertida al final (\). Tenga en cuenta que los párrafos de entradas de menú se ven un poco más como scripts del shell que como los comandos simples sin lógica de GRUB Legacy. Otro cambio importante de GRUB Legacy es que la numeración de particiones ahora comienza en 1, aunque la numeración de disco comience todavía en 0. Por lo tanto /dev/sda7 es igual a (hd0,7) en GRUB 2 y sería (hd0,6) en GRUB Legacy.

Listado 17. Archivo de configuración parcial de GRUB 2
### BEGIN /etc/grub.d/05_debian_theme ###                               
set menu_color_normal=white/black
set menu_color_highlight=black/white
### END /etc/grub.d/05_debian_theme ###                                 

### BEGIN /etc/grub.d/10_linux ###                                      
menuentry "Ubuntu, Linux 2.6.31-20-generic" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
        set quiet=1
        insmod ext2
        set root=(hd0,7)
        search --no-floppy --fs-uuid --set 8954fa66-e11f-42dc-91f0-b4aa480fa103
        linux   /boot/vmlinuz-2.6.31-20-generic \
          root=UUID=8954fa66-e11f-42dc-91f0-b4aa480fa103 ro   quiet splash
        initrd  /boot/initrd.img-2.6.31-20-generic
}
menuentry "Ubuntu, Linux 2.6.31-20-generic (recovery mode)" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
        insmod ext2
        set root=(hd0,7)
        search --no-floppy --fs-uuid --set 8954fa66-e11f-42dc-91f0-b4aa480fa103
        linux   /boot/vmlinuz-2.6.31-20-generic 
         root=UUID=8954fa66-e11f-42dc-91f0-b4aa480fa103 ro single
        initrd  /boot/initrd.img-2.6.31-20-generic
}

Arranque de GRUB 2 desde Grub Legacy

Hemos mencionado que no es posible cargar GRUB 2 en cadena desde el registro de arranque de una partición. Sin embargo, una vez que su imagen principal y su archivo de configuración han sido creados, usted puede agregar una entrada a su archivo GRUB Legacy grub.conf or menu.lst para arrancar la imagen principal de GRUB 2, la cual luego desplegará el menú de GRUB 2 que usted ha creado. El Listado 18 muestra la entrada que hemos utilizado en el Listado 8. Desde que este archivo de configuración existe para GRUB Legacy, la entrada raíz especifica (hd0,6) para /dev/sda7.

Listado 18. La entrada de configuración de Grub Legacy para arrancar la imagen principal de GRUB 2
# Ubuntu 9.10 uses GRUB 2, so use kernel to drive GRUB 2 menu.          
title           Ubuntu 9.10 (sda7)
root            (hd0,6)
kernel          /boot/grub/core.img

Cuando usted selecciona esta entrada desde el menú de GRUB Legacy, verá un menú similar al que se observa en la Figura 7, en la cual la primera entrada está resaltada. Ésta entrada y la entrada siguiente han sido ilustradas en el Listado 17.

Figura 7. Ejemplo de menú de GRUB 2
Ejemplo de menú de GRUB 2

Usted podría tentarse a tratar de instalar GRUB 2 en el registro de arranque de una partición. Si usted trata de hacerlo, probablemente verá datos de salida similares a los que se observan en el Listado 19.

Listado 19. Intento de instalar GRUB 2 en el registro de arranque de una partición
ian@pinguino:~$ sudo grub-install /dev/sda7
grub-setup: warn: Attempting to install GRUB to a partition instead of the MBR.  
This is a BAD idea.
grub-setup: warn: Embedding is not possible.  GRUB can only be installed in 
this setup by using blocklists.  However, blocklists are UNRELIABLE and its 
use is discouraged.
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(hd0)	/dev/sda

Esto explica porqué mi intento de instalar GRUB 2 en la partición de /dev/sda7 mientras estaba instalando Ubuntu 9.10 fracasó. Vale la pena resaltar que esta versión de Ubuntu instalará GRUB 2 en una nueva instalación, pero mantendrá el administrador de arranque actual si usted está actualizando una instalación Ubuntu existente.

Medios de rescate para GRUB 2

GRUB 2 incluye un comando grub-mkrescue para ayudarlo a crear un disquete o una imagen de CD de rescate. Consulte la ayuda o las páginas de los manuales para obtener más detalles


Resumen

Ahora conoce los dos cargadores principales de los sistemas tradicionales Linux, incluso el modo de solucionar errores y problemas de arranque. También ha recibido una introducción a GRUB 2, el cual no se encuentra en los objetivos LPI pero está comenzando a aparecer en las principales distribuciones de Linux.


Descargar

DescripciónNombretamaño
Configuration files used in this articlel-lpic1-v3-102-2-samples.zip8KB

Recursos

Aprender

  • Utilice developerWorks roadmap for LPIC-1 para encontrar los artículos de developerWorks que lo ayuden a estudiar para la certificación para LPIC-1 basada en los objetivos de abril de 2009.
  • En el sitio LPIC Program, encuentre los objetivos detallados, las listas de tareas, y ejemplos de las preguntas para los tres niveles de la certificación en administración del sistema Linux del Linux Professional Institute. En particular, vea los objetivos de abril de 2009 para LPI exam 101 y LPI exam 102. Siempre consulte el sitio del Programa LPIC para ver los últimos objetivos.
  • Consulte toda la LPI exam prep series en developerWorks para aprender lo más importante de Linux y prepararse para la certificación en administración del sistema Linux conforme a los objetivos para el examen LPI anteriores a abril de 2009.
  • Aprenda sobre GRUB legacy y GRUB 2 en la GNU GRUB home page. GNU GRUB es un cargador de arranque multiarranque derivado de GRUB, GRand Unified Bootloader.
  • La Multiboot Specification para una interfaz permite cualquier cargador de arranque que cumpla con los requisitos para cargar el sistema operativo que se desee.
  • En "Basic tasks for new Linux developers" (developerWorks, marzo de 2005), aprenda a abrir una ventana terminal o un prompt del shell y mucho más.
  • El Linux Documentation Project tiene varios documentos útiles, especialmente los HOWTOs.
  • En la developerWorks Linux zone , encuentre cientos de how-to articles and tutorials , así como descargas, foros de discusión, y una gran cantidad de recursos para desarrolladores y administradores de Linux.
  • Permanezca al día con developerWorks technical events and webcasts especializadas en varios productos IBM y en la industria IT topics.
  • Asista a free developerWorks Live! briefing para actualizarse de manera sencilla sobre los productos y las herramientas de IBM y sobre las tendencias de la industria IT.
  • Mire developerWorks on-demand demos, las cuales contienen explicaciones sobre la instalación de los productos y las presentaciones de configuración para los principiantes, hasta las funcionalidades avanzadas para los desarrolladores experimentados.
  • Manténgase actualizado con developerWorks on Twitter, o suscríbase a un canal de Linux tweets on developerWorks.

Obtener los productos y tecnologías

  • Descargue el System rescue CD-Rom, una de muchas herramientas disponibles en línea para ayudarlo a recuperar el sistema tras una caída del mismo.
  • Evaluate IBM products de la manera que mejor le convenga: descargue un producto de prueba, pruebe un producto en línea, use un producto en un entorno nube, o pase algunas horas en el SOA Sandbox aprendiendo como implementar de manera eficiente la arquitectura orientada al servicio.

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Linux
ArticleID=499733
ArticleTitle=Aprenda Linux, 101: Gestores de arranque
publish-date=07082010