|
1.
Realizando su elección
Introducción
Ahora que su núcleo está configurado y compilado y los archivos de
configuración necesarios han sido llenados correctamente, ha llegado
la hora de instalar el programa que iniciará el núcleo cuando arranque
el sistema. Este programa es conocido como gestor de arranque.
Para ${arch}, Gentoo dispone de GRUB y LILO.
Pero antes de instalar un gestor de arranque, le informaremos sobre
como configurar la memoria de imagen (framebuffer), siempre que quiera,
claro. Con la memoria de imagen puede ejecutar la línea de comandos de
Linux con algunas características gráficas (limitadas) como, por ejemplo,
el empleo de un bonita imagen de Gentoo durante el inicio (bootsplash).
Opcional: Memoria de imagen (Framebuffer)
Si ha configurado su núcleo con soporte framebuffer (o ha
utilizado la configuración predeterminada de genkernel) puede
activarlo añadiendo el parámetro video al archivo de
configuración del gestor de inicio.
Lo primero que necesita es conocer que tipo de dispositivo de
framebuffer está utilizando. Debería usar uvesafb como
controlador VESA.
El parámetro video controla las opciones de
visualización. Necesita que se le indique el controlador de
framebuffer (vesafb para núcleos 2.6, o vesa para
núcleos 2.4) seguido de los parámetro de control que quiera
activar. Todas las variables aparecen listadas en
/usr/src/linux/Documentation/fb/uvesafb.txt. Las opciones
más utilizadas son:
| Control |
Descripción |
| ywrap |
Asume que su tarjeta gráfica puede volver sobre su
memoria. (ej. continuar al principio cuando se aproxima al final)
|
| mtrr:n
|
Configura los registros MTRR. n puede ser:
0 - desactivados
1 - no almacenables en caché
2 - write-back
3 - write-combining
4 - write-through
|
| mode |
Configura la resolución, la profundidad de color y la tasa de
refresco. Por ejemplo, 1024x768-32@85 para una resolución
de 1024x768, profundidad de color 32 bit y una tasa de refresco de
85 Hz.
|
El resultado sería algo como:
video=uvesafb:mtrr:3,ywrap,1024x768-32@85. Recuerde (o anote)
ésta configuración. La necesitará dentro de poco.
1.
Predeterminado: Usando GRUB
Comprendiendo la terminología de GRUB
La parte más crítica para la comprensión de GRUB, es el habituarse a
la manera en que GRUB se refiere a los discos duros y las
particiones. Su partición Linux /dev/sda1 es denominada
(hd0,0) por GRUB. Note los paréntesis alrededor de
hd0,0, que son obligatorios.
La numeración de los discos duros comienza con un cero, en lugar de
utilizar una "a" y las particiones empiezan con cero en lugar de con
un uno. Advertimos también que entre los dispositivos hd, solo se
cuentan los discos duros y no los dispositivos atapi-ide como cdroms y
grabadoras. Además, la especificación es igual para dispositivos
SCSI. (Usualmente son asignados números mayores, excepto cuando el
bios está configurada para arrancar desde los dispositivos
scsi). Cuando se le indica la BIOS que arranque desde un disco duro
diferente (por ejemplo, el esclavo primario), ese disco duro se
verá como hd0.
Asumiendo que tiene un disco duro en /dev/sda y dos más
en /dev/sdb y /dev/sdc, la partición
/dev/sdd7 que descrita como (hd1,6). A lo
mejor puede sonar raro y bien podría serlo, pero como veremos, GRUB
ofrece un mecanismo de terminación por tabulador que es de gran ayuda
para los que tienen una gran cantidad de discos duros y que andan algo
perdidos con este esquema de numeración.
Habiéndole tomado la medida, es hora de instalar GRUB.
Instalando GRUB
Para instalar GRUB, primero lo instalamos con emerge:
Listado de Código 1.1: Instalando GRUB |
# emerge grub
|
Aunque GRUB esté instalado, todavía necesitamos crear un archivo de
configuración para él e instalar GRUB en nuestro MBR para que pueda
arrancar automáticamente nuestro núcleo recién creado. Cree el
archivo /boot/grub/grub.conf con nano, o cualquier
otro editor:
Listado de Código 1.1: Creando el archivo /boot/grub/grub.conf |
# nano -w /boot/grub/grub.conf
|
Ahora vamos a escribir el grub.conf. Asegúrese de utilizar
el nombre de su archivo de imagen del núcleo y, si es necesario,
el nombre de su imagen initrd.
Nota:
Grub asigna las designaciones según el BIOS. Al cambiar la
configuración del BIOS, cambiarán también las designaciones de los
dispositivos. Por ejemplo, si cambia el orden de los dispositivos para
el arranque, tal vez tenga que cambiar la configuración grub también.
|
Nota:
Si su sistema de fichero para root es JFS, deberá añadir "ro"
a la línea del núcleo ya que JFS necesita leer su log antes de
permitir montajes de lectura-escritura.
|
Listado de Código 1.1: grub.conf ejemplo |
default 0
timeout 30
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Gentoo Linux ${kernel-version}
root (hd0,0)
kernel /boot/${kernel-name} root=/dev/sda3
title Gentoo Linux ${kernel-version} (rescate)
root (hd0,0)
kernel /boot/${kernel-name} root=/dev/sda3 init=/bin/bb
title Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
|
Cuando construya el núcleo Linux, si opta por incluir un initramfs desde el
cual iniciar, entonces tendrá que cambiar la configuración haciendo
referencia a este fichero initramfs e indicándole donde se encuentra su
sistema de ficheros raíz en:
Listado de Código 1.1: Fragmento de GRUB para construcciones de núcleo con initramfs habilitado |
title Gentoo Linux ${kernel-version}
root (hd0,0)
kernel /boot/${kernel-version} real_root=/dev/sda3
initrd /boot/${genkernel-initrd}
|
Si se utiliza un esquema de particiones y/o imagen de núcleo distinta,
haga los ajustes respectivos. Sin embargo, asegúrese que cualquier
cosa que siga un dispositivo GRUB (tal como (hd0,0)) sea
relativa al punto de montaje y no de la raíz. En otras palabras,
(hd0,0)/grub/splash.xpm.gz es en realidad
/boot/grub/splash.xpm.gz ya que (hd0,0) es
/boot.
Además, si se eligió utilizar un esquema de particionamiento diferente
y no colocó /boot en una partición separada, el prefijo
/boot empleado en los ejemplos anteriores, es realmente
necesario. Si ha seguido el plan de particionamiento sugerido,
el prefijo /boot no es obligatorio, un enlace simbólico
/bootlo hace funcionar. En resumen, los ejemplos
anteriores deberían funcionar si ha definido una partición separada
para /boot o no.
Si necesita pasar algún parámetro adicional al núcleo, sencillamente
agréguelo al final de la línea de comandos del núcleo. Ya estamos
pasando una opción (root=/dev/sda3 o
real_root=/dev/sda3), pero se pueden pasar otras también, como
el parámetro video del que hablamos previamente.
Si su archivo de configuración del gestor de arranque contiene el
parámetro real_root, use el parámetro real_rootflags para establecer
las opciones de montaje del sistema de archivos raíz.
Si está utilizando un núcleo 2.6.7 o superior y ha puenteado su disco
duro porque la BIOS no puede manejar discos duros grandes, necesitará
añadir sda=stroke.
Los usuarios de genkernel deben saber que sus núcleos usan las
mismas opciones de arranque que el CD de instalación. Por ejemplo, si
tiene dispositivos scsi, debería agregar el parámetro doscsi al
núcleo.
Ahora grabe el archivo grub.conf y salga. Aún necesita
instalar GRUB en el MBR (Master Boot Record) para que GRUB se ejecute
automáticamente cuando arranque su sistema.
Los desarrolladores de GRUB recomiendan utilizar
grub-install. Sin embargo, si por alguna razón
grub-install no funciona correctamente todavía tiene la opción
de instalar GRUB manualmente.
Continué con Predeterminado: Configurando
GRUB utilizando grub-install o Alternativa: Configurando GRUB a mano,
utilizando instrucciones.
Predeterminado: Configurando GRUB utilizando grub-install
Para instalar GRUB necesita ejecutar el comando
grub-install. Sin embargo grub-install no funcionará tal
cual se instala, ya que estamos dentro de un entorno chroot. Antes de
seguir, necesitará actualizar /etc/mtab, el cual contiene
la información relativa a todos los sistemas de archivos
montados. Afortunadamente hay una manera sencilla de realizar esto,
simplemente copie /proc/mounts a /etc/mtab,
excluyendo la línea rootfs si no ha creado una partición
separada para boot. El siguiente comando fucionará en ambos casos:
Listado de Código 1.1: Crear /etc/mtab |
# grep -v rootfs /proc/mounts > /etc/mtab
|
Ahora podemos instalar GRUB utilizando grub-install:
Listado de Código 1.1: Ejecutar grub-install |
# grub-install --no-floppy /dev/sda
|
Si tiene alguna pregunta más acerca de GRUB, por favor consulte el
FAQ de GRUB
, la
Wiki de GRUB, o lea info grub en su terminal (estos
documentos están en inglés).
Continué con Reiniciando el sistema.
Alternativa: Configurando GRUB a mano, utilizando
instrucciones
Para comenzar a configurar GRUB, debe ejecutar los comandos dentro de
grub. Se le presentará el intérprete de comandos propio de
grub grub>. Ahora necesita ejecutar los comandos
necesarios para instalar el registro de arranque de GRUB en su disco
duro.
Listado de Código 1.1: Iniciando el intérprete de comandos de GRUB |
# grub --no-floppy
|
Nota:
Si su sistema no tiene ningún dispositivo de disquetes, añada la
opción --no-floppy al comando anterior para evitar que grub
pruebe los dispositivos (no existentes) de disquetes.
|
En el ejemplo de configuración queremos instalar GRUB para que lea la
información de la partición de arranque ${/boot}, e instala el registro de arranque de GRUB en el
MBR (Master boot Record) de su disco duro para que lo primero que
veamos aparecer al encender el ordenador sea GRUB. Por supuesto, si no
ha seguido el ejemplo de configuración durante la instalación, cambie
los comandos de acuerdo a su modelo:
El mecanismo de completar comandos por tabulación de GRUB puede
utilizarse dentro de GRUB. Por ejemplo, si escribe "root ("
seguido de una tabulación, notará que se le presenta una lista de
dispositivos (como pueda ser hd0). Si tecleamos "root
(hd0," seguido de una tabulación recibiremos una lista de
particiones disponibles para elegir (como pueda ser
hd0,0).
Utilizando este mecanismo de completar por tabulación, configurar GRUB
no debería resultar tan duro. Ahora vamos a por ello, configuremos
GRUB!.
Listado de Código 1.1: Instalando GRUB en el MBR |
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
|
Nota:
Si quiere instalar GRUB en una partición concreta en lugar del MBR,
debe modificar el comando setup para que apunte a la partición
correcta. Por ejemplo, si quiere que GRUB se instale en
/dev/sda3, el comando adecuado sería setup
(hd0,2). Sin embargo, pocos usuarios querrán hacer esto.
|
Si tiene alguna pregunta más acerca de GRUB, por favor consulte el
FAQ de GRUB
, la
Wiki de GRUB, o lea info grub en su terminal (estos
documentos están en inglés).
Continúe con Reiniciando el sistema.
1.
Alternativa: Utilizando LILO
Instalando LILO
LILO, representa LInuxLOader, y es el caballito de batalla probado y
comprobado de los gestores de inicio de Linux. Sin embargo, carece de
algunas características de GRUB (razón por la cual GRUB actualmente
está ganando popularidad). La razón por la cual LILO sigue en uso es
que en algunos sistemas, GRUB no funciona mientras que LILO sí. Por
supuesto también se usa porque hay muchos que lo conocen y prefieren
seguir con este gestor. De cualquier manera, Gentoo soporta ambos
gestores y por lo visto, ha elegido usar LILO.
Instalar LILO es fácil, sencillamente use emerge.
Listado de Código 1.1: Instalando LILO |
# emerge lilo
|
Configurando LILO
Para configurar LILO, debe crear el archivo
/etc/lilo.conf. Use su editor de textos preferido (en el
manual usamos nano para ser consistentes) y creemos este
archivo.
Listado de Código 1.1: Creando /etc/lilo.conf |
# nano -w /etc/lilo.conf
|
Algunas secciones atrás, le pedimos que se acordara del nombre de la
imagen del núcleo creado. En el siguiente ejemplo de
lilo.conf haremos uso del esquema ejemplo de
particionamiento.
Asegúrese de utilizar el nombre de su archivo de imagen del
núcleo y, si es necesario, el nombre de su imagen initrd.
Nota:
Si su sistema de ficheros para root es JFS, deberá añadir la
línea append="ro" después de cada elemento de arranque, ya que
JFS necesita leer su log antes de permitir montajes de
lectura-escritura.
|
Listado de Código 1.1: Ejemplo de /etc/lilo.conf |
boot=/dev/sda
prompt
timeout=50
default=gentoo
image=/boot/${kernel-name}
label=gentoo
read-only
root=/dev/sda3
image=/boot/${kernel-name}
label=gentoo.rescue
read-only
root=/dev/sda3
append="init=/bin/bb"
other=/dev/sda6
label=windows
|
Nota:
Si usa un esquema de particionamiento o imagen de núcleo distinta,
haga los ajustes correspondientes.
|
Cuando construya el núcleo Linux, si opta por incluir un initramfs desde el
cual iniciar, entonces tendrá que cambiar la configuración haciendo
referencia a este fichero initramfs e indicándole donde se encuentra su
sistema de ficheros raíz en:
Listado de Código 1.1: Fragmento de LILO para construcciones de núcleo con initramfs habilitado |
image=/boot/${kernel-name}
label=gentoo
read-only
append="real_root=/dev/sda3"
initrd=/boot/${genkernel-initrd}
|
Si hace falta pasar alguna opción adicional al núcleo, incluya un
enunciado append a la sección. A modo de ejemplo, agregamos un
enunciado video para activar framebuffer:
Listado de Código 1.1: Utilizar append para agregar opciones al núcleo |
image=/boot/${kernel-name}
label=gentoo
read-only
root=/dev/sda3
append="video=uvesafb:mtrr,ywrap,1024x768-32@85"
|
Si está utilizando un núcleo 2.6.7 o superior y ha puenteado su disco
duro porque la BIOS no puede manejar discos duros grandes, necesitará
añadir sda=stroke.
Usuarios de genkernel deben saber que sus núcleos usan las
mismas opciones de arranque que el CD de instalación. Por ejemplo, si
tiene dispositivos SCSI, debe agregar doscsi como opción del
núcleo.
Ahora, salve el archivo y salga del editor. Para terminar, debe
ejecutar el comando /sbin/lilo para poder aplicar
/etc/lilo.conf a su sistema (que se instale en el disco).
Acuérdese de que debe volver a ejecutar /sbin/lilo cada vez que
instale un nuevo núcleo o haga cambios en el menú.
Listado de Código 1.1: Terminando la instalación de LILO |
# /sbin/lilo
|
Si tiene más preguntar con respecto a LILO, por favor, consulte su
página en la
wikipedia.
Ahora puede continuar con Reiniciando el
Sistema.
1.
Reiniciando el sistema
Salga del entorno chroot y desmonte todas las particiones que
continúen montadas. Después podemos ejecutar el mágico comando que
hemos estado esperando: reboot.
Listado de Código 1.1: Desmontar todas las particiones y reiniciar |
# exit
cdimage ~# cd
cdimage ~# umount -l /mnt/gentoo/dev{/pts,/shm,}
cdimage ~# umount -l /mnt/gentoo{/boot,/sys,/proc,}
cdimage ~# reboot
|
Por supuesto, no olvide quitar el CD arrancable, o el CD será
arrancado de nuevo en lugar de su nuevo sistema Gentoo.
Una vez que haya reiniciado su instalación de Gentoo, termínela con
(Finalizando su instalación de
Gentoo).
|