PDF de programación - Grub a fondo

Imágen de pdf Grub a fondo

Grub a fondográfica de visualizaciones

Publicado el 10 de Abril del 2018
795 visualizaciones desde el 10 de Abril del 2018
3,5 MB
6 paginas
Creado hace 15a (13/08/2008)
software
Grub

Grub a fondo

Federico Pacheco

Antes de comenzar con el tema que nos convoca, es necesario asegurarnos
de comprender la verdadera necesidad de lo que a continuación
analizaremos. Para comenzar, diremos que todo dispositivo electrónico pasa
en algún momento por una etapa de encendido, lo cual resulta obvio hasta
para quien no conoce sobre tecnología. Ya sea oprimiendo un botón, girando
una perilla o accionando un switch, éste es el primer paso para obtener
acceso a la funcionalidad del dispositivo.

.

p
m
o
c
.
e
r
a
w

t
f

i
l

o
s
@
x
u
n

lD e esta manera, cuando más complejo sea el

dispositivo, más procesos internos realizará
a nivel electrónico antes de quedar comple-
tamente funcional. Por ejemplo, un teléfono
celular, debe encenderse y esperarse a que tome señal, car-
gue los datos de la tarjeta interna, ajuste las preferencias del
usuario, etc. En aparatos más complejos, como smartphones
o handhelds, el proceso es similar, y en el caso de los or-
denadores, tampoco es tan distinto, solo que se nota más la
diferencia entre lo que ocurre con el software y lo que ocurre
con el hardware. En líneas generales, este proceso de inicia-
lización de cualquier aparato se denomina en tecnología:
bootstrapping, o lo que como caso particular de una PC,
nosotros denominamos booting.

a ejecutarse su código desde la memoria (o a veces desde
el mismo fi rmware) para luego cargar el primer sector del
disco rígido (cilindro 0, cabeza 0, sector 1) y comprobar que
su contenido sea válido, para pasarle el control al próximo

Lo que deberías saber
• Uso del sistema operativo GNU/Linux o alguna de

sus variantes
Instalación de software en sistemas GNU/Linux



Entrando entonces en el tema de los ordenadores, existirá
un proceso llamado POST (Power On Self Test – Auto test de
encendido) en el cual un pequeño programa llamado BIOS
(Basic Input Output System – Sistema de entrada y salida
básico) realiza diversas comprobaciones para verifi car que
el hardware esté en condiciones de arrancar. El código del
BIOS permanece almacenado en un fi rmware, y una vez que
arranca el equipo y verifi ca su funcionamiento, comienza

En este artículo aprenderás
• Los conceptos relacionados con el arranque de un

sistema GNU/Linux

• La necesidad y utilidad de un cargador de arranque
• El uso, instalación y confi guración del cargador de

arranque GRUB

58

Linux+ 10/2008

programa que comenzará la carga del sistema
operativo. Todas estas rutinas están escritas en
lenguaje ensamblador, y sus funciones básicas
continúan siendo las mismas que hace 30 años,
lo cual puede constituir una limitación hoy en
día.

El cargador de arranque
Ahora que hemos definido algunos términos
básicos, podemos pasar al próximo paso. Un
cargador de arranque (en inglés boot loader) es
un pequeño programa diseñado para preparar
todo lo necesario para que un sistema operativo
pueda funcionar. Por lo general cuentan con di-
versas etapas internas. El cargador de arranque
le transferirá en su última etapa el control del
equipo al sistema operativo así como el BIOS lo
hace con éste. Finalmente, el sistema cargará su
propio núcleo, los controladores, aplicaciones,

Listado 1. Un ejemplo de configuración del
archivo menu.lst

# Archivo de configuración de GRUB

timeout 10
default save
splashimage /dev/sdaX/ruta/
imagen.xpm.gz

title GNU/Linux Debian
root (hd0,0)
kernel /boot/vmlinuz-2.6.18 root=/
dev/sda1
savedefault

title GNU/Linux Debian - Modo
Single
root (hd0,0)
kernel /vmlinuz-2.6.18 single
root=/dev/sda1 ro

title Gentoo GNU/Linux
root (hd1,0)
kernel /boot/grub/linux-1.6.22
root=/dev/sdb1
savedefault

title Windows XP
root (hd0,3)
makeactive
chainloader +1
savedefault

title Test de memoria
root (hd0,0)
kernel /boot/memtest86.bin

software
Grub

y demás, para luego quedar en funcionamiento
normal, y considerar el proceso completo con
el equipo en condiciones de responder a los
requerimientos externos.

En principio un cargador puede hacer
arrancar cualquier sistema operativo, ya que
es independiente de éste. Podría sin embargo
haber limitaciones en cuanto al medio de alma-
cenamiento, por lo que debe tenerse en cuenta
muchas veces.

Por supuesto que existen diversas alterna-
tivas, con distintas funciones para el gusto de
los usuarios, pero en este caso nos dedicaremos
al estudio de una en particular: GRUB. Pero
antes de volcarnos a él, es bueno recordar que
en un comienzo no todo era como hoy, y la he-
gemonía de los cargadores la ejercía el veterano
LILO.

Sin entrar tanto en detalle, podemos decir
que LILO (LInux LOader) es un gestor de
arranque para Linux desarrollado inicialmente
por Werner Almesberger, y actualmente a car-
go de John Coffman. Funciona con diversos
sistemas de archivos y puede arrancar desde el
disco duro o flexible, permitiendo seleccionar
entre 16 imágenes en el arranque. LILO puede

instalarse también en el Master Boot Record
(MBR).

En las primeras distribuciones de Linux,
era el gestor de facto. En la actualidad es real-
mente una segunda opción, en favor de GRUB.
Algunas de sus limitaciones respecto al actual
favorito son por ejemplo, que no tiene una línea
de comandos interactiva, ni permite arrancar
por red.

Otro gestor muy conocido en la actualidad
es el llamado SYSLINUX, cuya informa-
ción la podemos encontrar en el sitio http:
//syslinux.zytor.com.

El MBR
El MBR (Master Boot Record) es el primer sec-
tor (es decir, el sector 0) de un dispositivo de al-
macenamiento de datos, como lo es un disco rí-
gido. Puede utilizarse para contener al cargador
de arranque o bien para almacenar directamente
la tabla de particiones. En general, hablaremos
del MBR como los primeros 512 bytes.

Antes de comenzar a jugar con un gestor de
arranque, es una buena práctica recomendada
hacer una copia de seguridad del MBR. En
caso de que todo falle, podremos restaurarla

Figura 1. Menú estándar con las opciones de inicio de los sistemas

Figura 2. Modificación de la configuración en el propio momento de inicio

www.lpmagazine.org

59

software
Grub

y hacer de cuenta que nada ha ocurrido. Para
esto podemos utilizar el comando dd (Dataset
Definition), desde una consola.

Realizar la copia de seguridad:

# dd if=/dev/dispositivo of=mbr.bkp
bs=512 count=1

Esto significa en español: copiar bit por bit los
primeros 512 bytes del dispositivo ubicado en
/dev/dispositivo (hda, sda, sdb, o cual-
quiera) a un archivo de nombre mbr.bkp. No
debemos confundirnos y colocar por ejemplo,
/dev/hda1, ya que de esa forma estaremos
haciendo referencia a la primer partición, y no
al disco completo, por lo cual pasaremos como
parámetro su nombre solo /dev/hda.

Para restaurarlo, utilizamos el mismo co-
mando con los parámetros if (input file) y of
(output file) invertidos:

# dd if=mbr.bkp of=/dev/dispositivo
bs=512 count=1

Si quisiéramos borrarlo, podemos utilizar
como parámetro if el dispositivo especial
/dev/zero.

Para manipular el MBR y crear tablas,
podemos utilizar el comando fdisk (o más
amigablemente, el comando cfdisk).
GRUB
Llegados al tema que nos congrega, comenza-
remos por decir que GRUB significa GRand
Unified Bootloader, que fue creado por Erich
Stefan Boleyn bajo licencia GPL y que está
alojado en http://www.gnu.org/software/
grub. La versión que se utiliza comúnmente es
la que pasara a llamarse GRUB Legacy, que por
el momento continúa recibiendo correcciones
de bugs, pero ya no se le agregan nuevas ca-

racterísticas. El foco de los desarrolladores fue
puesto en GRUB 2, completamente reescrito,
para poder hacerlo más robusto, potente, esta-
ble y portable. Es válido aclarar que no estamos
hablando de la segunda versión de GRUB, sino
de un nuevo proyecto, con licencia GNU, por
supuesto. Algunas de sus ideas renovadas son
por ejemplo, el soporte para plataformas que no
sean x86, internacionalización y localización,
uso de caracteres no ASCII, módulos dinámi-
cos, gestión de memoria, un pequeño lenguaje
de scripting, arquitectura orientada a objetos, y
algunas cosas más. Muy interesante, sin duda.

Inicialmente GRUB 2 comenzó como
proyecto PUPA, apoyado por la Information
Technology Promotion Agency (IPA) de Japón.
Luego, se integró al desarrollo de GRUB 2 en
el año 2002, cuando la versión 0.9x de GRUB
se renombró como GRUB Legacy. Al lanzarse,
pasará a llamarse simplemente GNU GRUB.
Al día de la fecha, aun no fue lanzado ni existe
documentación al respecto. Como hemos visto
anteriormente, el proceso de inicialización se
subdivide en distintas partes, las que competen a
GRUB se las llama Stages (Etapas). En general
podemos distinguir entre las siguientes fases:

• El BIOS busca un dispositivo para iniciar

y pasa el control al MBR.

• El MBR contiene la fase 1 (Stage 1) de
GRUB. Como el MBR es pequeño la fase
1 sólo carga la siguiente fase del GRUB
(ubicado físicamente en cualquier lugar del
disco). La fase 1 puede cargar la fase 1.5 o
la 2.

• En ocasiones, cuando la partición que con-
tiene el núcleo está más allá del cilindro
1024 del disco o se está utilizando discos
en modo LBA4, debe existir una etapa
intermedia (Stage 1.5) que sirve de puente
entre ambas y que depende del sistema de
archivos. Esta etapa 1.5 es un pequeño

Figura 3. StartUp Manager

Figura 4. GrubED

60

Linux+ 10/2008

archivo de alrededor de 20 Kb. La fase 1.5
luego carga la fase 2.

• La fase 2 (Stage 2) de GRUB recibe el

control y presenta el menú de inicio.

• GRUB carga el kernel seleccionado en

memoria y le pasa el control del equipo.

Para realizar la pre-instalación en el sistema,
podemos
  • Links de descarga
http://lwp-l.com/pdf10302

Comentarios de: Grub a fondo (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad