Sunteți pe pagina 1din 11

GESTORES DE ARRANQUE - PARTE TERICA -

Juan Garca Cuesta - 1 ASIR

Grub 2
GRand Unified Bootloader, versin 2 (Grub 2es el software responsable de cargar y transferir el control al kernel del sistema operativo durante el arranque inicial.

Archivos y carpetas de grub2


El archivo principal de configuracin de grub2, ya no es /boot/menu.lst sino el archivo /etc/grub.cfg. Este fichero es generado por la ejecucin de varios scripts cuando se ejecuta el comando update-grub. Los archivos responsables del contenido de grub.conf se encuentran en /etc/default/grub y los archivos de script de /etc/grub.d.

Grub2 es modular. Los mdulos se encuentran en /boot/grub y tienen extensin .mod y son cargados por grub segn los necesita.
El archivo grub.cfg (/boot/grub/grub.cfg)

Remplaza al archivo /boot/men.lst y no debe ser editado, es generado automticamente al ejecutar update-grub con permisos de root. El archivo se divide en secciones. Cada seccin del archivo est claramente delimitada por un encabezado de seccin #BEGIN. La informacin en esta lnea referencia el archivo de la carpeta /etc/grub.d desde el que se incorpora la informacin. A continuacin se muestra un ejemplo de archivo grub.cfg con dos kernels de Ubuntu, memtest86+, Windows y una entrada personalizada importada de un script de /etc/grub.d
# # DO NOT EDIT THIS FILE # # It is automatically generated by /usr/sbin/update-grub using templates # from /etc/grub.d and settings from /etc/default/grub #

### BEGIN /etc/grub.d/00_header ### set default=0 set timeout=5 set root=(hd0,5) search --fs-uuid --set b02e1934-12dd-418a if font /usr/share/grub/ascii.pff ; then set gfxmode=640x480 insmod gfxterm insmod vbe terminal gfxterm fi ### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ### set menu_color_normal=cyan/blue

set menu_color_highlight=white/blue ### END /etc/grub.d/05_debian_theme ### ### BEGIN /etc/grub.d/10_hurd ### ### END /etc/grub.d/10_hurd ### ### BEGIN /etc/grub.d/10_linux ### set root=(hd0,5) search --fs-uuid --set b02e1934-12dd-418a-be3a-9ff7d3e7e7ea menuentry "Ubuntu, linux 2.6.28-13-generic" { linux /boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-418a ro quiet splash vga800 initrd /boot/initrd.img-2.6.28-13-generic } menuentry "Ubuntu, linux 2.6.28-13-generic (single-user mode)" { linux /boot/vmlinuz-2.6.28-13-generic root=UUID=b02e1934-12dd-418a ro single initrd /boot/initrd.img-2.6.28-13-generic } menuentry "Ubuntu, linux 2.6.28-11-generic" { linux /boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-418a ro quiet splash vga800 initrd /boot/initrd.img-2.6.28-11-generic } menuentry "Ubuntu, linux 2.6.28-11-generic (single-user mode)" { linux /boot/vmlinuz-2.6.28-11-generic root=UUID=b02e1934-12dd-418a ro single initrd /boot/initrd.img-2.6.28-11-generic } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_memtest86+ ### menuentry "Memory test (memtest86+)" { linux /boot/memtest86+.bin } menuentry "Memory test (memtest86+, serial console 115200)" { linux /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ### menuentry "Microsoft Windows XP Home Edition (on /dev/sda1)" { set root=(hd0,1) chainloader +1 } ### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ### # This file is an example on how to add custom entries ### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_srcd ### menuentry "SystemRescue CD on hard drive" { set root=(hd0,10) linux /sysrcd/rescuecd subdir=sysrcd setkmap=us initrd /sysrcd/initram.igz } ### END /etc/grub.d/41_srcd ###

El archivo grub (/etc/default/grub)

Este archivo contiene la informacin que anteriormente se encontraba en la primera seccin del archivo /boot/grub/menu.lst. Contiene los parmetros que afectan a la visualizacin del men de grub. Este archivo puede ser editado por root para realizar cambios que sern importados dentro del archivo grub.conf cuando se ejecute update-grub.

Este es un ejemplo de contenido.


# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg.

GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX=""

# Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console

# The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entrys #GRUB_DISABLE_LINUX_RECOVERY="true"

GRUB_DEFAULT

Indica cual es la entrada por defecto del men grub. Las entradas pueden ser o bien un nmero que indica la posicin de la entrada entre todas las existentes. 0 indica la primera entrada, 1 la segunda O bien la descripcin de la entrada. Si se incluye la palabra saved indica que la entrada por defecto es la entrada seleccionada en el ltimo arranque del sistema.

GRUB_DEFAULT=0

GRUB_DEFAULT="Windows XP Professional (on /dev/sda1)"

GRUB_DEFAULT=saved

GRUB_TIMEOUT

Indica el nmero de segundos sin que intervenga el usuario antes de que se arranque de forma automtica la opcin por defecto del men. Si se pone -1 el men se mostrar de forma indefinida en espera a que el usuario se pronuncie sobre alguna de las opciones.

GRUB_TIMEOUT=4

GRUB_HIDDEN_TIMEOUT El men no se mostrar, a menos que la lnea en que aparece est comentada con un # al comienzo de la misma. El estado por defecto depende inicialmente de la presencia de otros sistemas operativos: o Si se ha detectado otro sistema operativo se mostrar el men (la lnea debe comenzar con #) Si no se ha detectado otro sistema operativo no se muestra el men. o Si aparece un valor mayor que 0, el sistema espera el nmero de segundos indicados pero no se muestra el men. Si el valor es 0, el men no aparece y no hay espera. El usuario puede forzar la aparicin del men durante el arranque del sistema, manteniendo pulsada la tecla shift. Durante el arranque del sistema se testa el estado de la tecla shift, si no se puede determinar el estado, se activa una pequea espera en la que el usuario puede mostrar el men pulsando la tecla esc. Si est activada, la pantalla de splash llamada 05_debian_theme ser mostrada aunque la opcin de men oculto est seleccionado.

GRUB_HIDDEN_TIMEOUT_QUIET o o true. No se muestra ningn contador hacia atrs y la pantalla aparecer en blanco false. El contador hacia atrs aparecer en una pantalla en blanco durante el nmero de segundos indicado por la opcin GRUB_HIDDEN_TIMEOUT.

GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian Determina el nombre descriptivo de la distribucin en la entrada del men (Ubuntu, Xubuntu, Debian, etc.)

GRUB_CMDLINE_LINUX Si existe, esta lnea importa cualquier entrada del final de la lnea del comando linux ( lnea de kernel en el Gub Legacys) para los modos normal y de recuperacin. Es similar a la lnea altoptions en el archivo menu.lst.

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" Esta lnea importa cualquier entrada del final de la lnea linux (lnea de kernel en el Gub Legacys). La lnea es aadida al final del modo normal solamente. Es similar a la lnea defoptions del archivo menu.lst. Si se desea una pantalla en negro con los mensjaes de arranque desplazndose se debe eliminar quit splash. Si se desea una pantalla de splash con mensjaes limitados bajo el logo de Ubuntu se usar solo splash.

#GRUB_TERMINAL=console Se descomentar la lnea para desactivar el modo grfico

#GRUB_GFXMODE=640x480 Se descomentar la lnea para cambiar la resolucin en el proceso de carga. Posibles valores son: GRUB_GFXMODE=640x480 GRUB_GFXMODE=800x600 GRUB_GFXMODE=1024x768 GRUB_GFXMODE=16001200 GRUB_GFXMODE=640x400 GRUB_GFXMODE=800x500 GRUB_GFXMODE=1024x640 GRUB_GFXMODE=1280x800 GRUB_GFXMODE=1680x1050 (valor por defecto)

Si no se conoce que modos son soportados por la tarjeta grfica, se puede ejecutar el comando vbeinfo desde la lnea de comando de grub. #GRUB_DISABLE_LINUX_UUID=true Se descomenta esta lnea si se desea que grub no pase el parmetro root=UUID=xxx a Linux. GRUB_DISABLE_LINUX_RECOVERY=true Si aparece hace que no aparezca la lnea que permite iniciar el sistema en modo recuperacin. GRUB_DISABLE_OS_PROBER=true

Activa o desactiva el test de os-prober (deteccin de sistemas operativos) en otras particiones, incluyendo Windows, Linux, etc.
La carpeta /etc/grub.d/

Los archivos de esta carpeta son ledos durante la ejecucin del comando update-grub. Estos archivos de script exportan la informacin para su inclusin en el archivo /boot/grub/grub.cfg Los scripts son ejecutados en orden secuencial segn su nombre. El orden de ejecucin determina la localizacin de los elementos en el men grub. Las entradas personalizadas deben ser aadidas al archivo 40_custom file o aadidas en un nuevo archivo que debe tener el atributo de ejecutable activado.

00_header Carga los ajustes contenidos en /etc/default/grub, incluyendo la presentacin visual, el tiempo de espera y las opciones de terminal. 05_debian_theme Ajusta el fondo de pantalla, los colores de texto y los temas. 10_hurd Para cargar kernels hurd. 10_linux Localiza kernels basados en el distribuidor determinado por lsb_release -i s. 20_memtest86+ Si el archivo /boot/memtest86+.bin existe se ofrecer como una entrada de men ms. 30_os-prober Busca otros sistemas operativos y los incluye en el men. 40_custom Es una plantilla para aadir entradas personalizadas de men que son insertadas en el archivo grub.conf con la ejecucin de update-grub. Este y otros archivos personalizados debern hacerse ejecutables para permitir la importacin en grub.cfg. Estos archivos sern colocados en el men grub segn orden numrico del nombre del fichero.

Recuperar grub2 desde el LiveCd de Ubuntu


Arrrancar el sistema desde el LiveCD y abrir una terminal. Ejecutar: $ sudo fdisk -l

Ahora se debe identificar la particin en la que est instalada la distribucin de Linux. Para los ejemplos supongamos que est en la particin /dev/sda1. Para tener acceso a la misma debemos montarla. Por ejemplo en /mnt $ sudo mount /dev/sda1 /mnt Si se dispone de una particin separada para boot, tambin es necesario montarla, por ejemplo, si la particin es /dev/sda2 y deseamos montarla en /mnt/boot. $ sudo mount /dev/sda2 /mnt/boot Ahora debemos montar el resto de los dispositivos $ sudo mount --bind /dev /mnt/dev (el siguiente proceso ha sido extrado de la documentacin de grub2 y no siempre es efectivo, se propone un segundo mtodo como alternativo ms fiable) Hacer chroot al nuevo sistema de archivos. $ sudo chroot /mnt Se debera haber hecho chroot como root, con lo que ya se pueden ejecutar commandos como root sin necesidad de ejecutar sudo. Editar el archive /etc/default/grub

$ nano /etc/default/grub Una vez que se hayan hecho las modificaciones necesarias se necesita ejecutar update-grub para crear el archivo de configuracin. Para instalar grub2 en el MBR se necesita ejecutar grub-install. $ grub-install /dev/sda Si se encuentran errores se puede probar a ejecutar: $ grub-install --recheck /dev/sda Presionar Ctrl+D para salir de chroot, desmontar los dispositivos $ sudo umount /mnt/dev Desmontar el sistema raz: $ sudo umount /mnt y reiniciar el sistema.

(mtodo alternativo) Una vez arrancado el sistema desde el Live CD y montada la particin por ejemplo en /mnt/ ejecutar $ grub-install (hd0) --root-directory=/mnt para instalar el grub en el MBR del primer disco duro. Si se desease instalar en el sector de arranque de la segunda particin del primer disco duro se pondra (hd0,2). Desmontar y reiniciar el sistema. Se puede usar la nomenclatura Linux para referirse al disco o particin en el que instalar grub: /dev/sda o /dev/sda2.

(NOTA)

Cuando se aade alguna particin o nuevo disco duro con otros sistemas operativos instalados, antes de ejecutar update-grub es conveniente borrar o cambiar de nombre el archivo de mapeo de dispositivos de grub /boot/grub/device.map para que vuelva se ser generado de nuevo.

Proteccin con contrasea de Grub


Se puede proteger con contrasea, tanto el acceso a la lnea de comando de grub como el arranque desde cualquiera de las entradas del men de grub. Toda vez que la implementacin del sistema de contraseas en grub se almacena en el archivo /boot/grub/grub.conf cualquiera con acceso a dicho archivo, por ejemplo, desde una versin Live, podra quitar o cambiar dichas contraseas por lo que el sistema no se debe considerar en absoluto seguro si no va a compaado de otras medidas, como por ejemplo el impedir que se pueda arrancar el sistema desde medios sobre los que no se tiene control. Para implementar el sistema de contraseas en Grub, lo primero que se ha de hacer es indicar cuales son los usuarios (usuarios Grub especficos, no usuarios Linux) que pueden realizar acciones sobre Grub. En el archivo /etc/grub.d/00_header, se incluir una entrada password para cada usuario que se desee crear:

password

usuario

contrasea

contrasea es la contrasea para el usuario y puede aparecer encriptada en cuyo caso se cambiar la entrada password por la entrada password_pbkdf2. La contrasea encriptada habr sido conseguida con el comando grub-mkpasswd_pbkdf2 por ejemplo la entrada para el usuario pepe con contrasea cereza encriptada quedar passwd_pbkdf2 pepe grub.pbkdf2.sha512.10000.61FAE914DF606A3202800F1CF7A1E839B81BF23D6 7BE0849EF76AAE57BE21C2557CF941B358C01987E9F44A2C594957DCE82B9 EBC53C489BC313580E6FA893C6.B855FD3EFB594EE6DD49FF40DD1F07C21 9B7BE141C61D68402C3DC4B993D1FF651157896A73FA861257B534A1401B13 99460907460D281C07C612F819B1F96E0

Se puede catalogar a uno o varios de estos usuarios como superusuarios haciendo uso de la entrada: set superuser=usuario [,usuario] Un usuario superusuario va a poder arrancar desde cualquier entrada del men, adems de poder acceder a modo comando en grub y ejecutar comandos. Un usuario normal slo va a poder arrancar desde las entradas que se habiliten para l de forma especfica. Por lo menos debe haber un superusuario para que el sistema de contraseas funcione.

Por ejemplo, el siguiente cdigo incluido en /etc/grub.d/00_header crear el superusuario pepe con contrasea encriptada cereza y el usuario kaka con contrasea sin encriptar cerezo. (ntese que los scripts de grub.d incluyen en el archivo /etc/grub/grub.cfg todo lo enviado a la salida estndar stdout a travs de printf o el cat <<EOF o cualquier comando de salida que se desee)
cat <<EOF set superusers="pepe" password_pbkdf2 pepe grub.pbkdf2.sha512.10000.61FAE914DF606A3202800F1CF7A1E839B81BF23D67BE0 849EF76AAE57BE21C2557CF941B358C01987E9F44A2C594957DCE82B9EBC53C4 89BC313580E6FA893C6.B855FD3EFB594EE6DD49FF40DD1F07C219B7BE141C61 D68402C3DC4B993D1FF651157896A73FA861257B534A1401B1399460907460D281 C07C612F819B1F96E0 password kaka cerezo EOF

Para habilitar a un usuario para arrancar una de las entradas del men se debe aadir la opcin --users usuario [,usuario] en las entradas menuentry. Para que aparezca esta opcin debemos editar el archivo correspondiente. Por ejemplo si queremos que en las entradas de Linux aparezca la opcin users kaka, editaremos el archivo /etc/grub.d/10_linux y localizaremos las lneas en que aparezca el texto menuentry aadiendo el texto de la opcin justo antes de la apertura de las llaves de la entrada: # localizamos menuentry printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}" # y la cambiamos por printf "menuentry '${title}' ${CLASS} --users kaka {\n" "${os}" "${version}" Lo mismo se hara con el resto de archivos de los que toma contenido el comando update-grub. (NOTA: Aunque no se aconseja la edicin directa del archivo grub.cfg, es muchas veces ms rpido editar el archivo para aadir los usuarios en las entradas correspondientes que editar los archivos de la carpeta grub.d y ejecutar posteriormente update-grub)

ESTE TRABAJO CONSTA DE UNA PARTE TERICA, SOBRE EL GRUB2, Y DE UNA PARTE PRACTICA, EN LA QUE SE INSTALAR ESTE GESTOR DE ARRANQUE, EL BOOTIT (propietario) Y UNA INSTALACIN DE MACOSX EN UN PC. PERO PARA ESTO NECESITO LLEBAR EL ORDEANDOR, Y LAS MAQUINAS VIRTUALES CORRESPONDIENTES. HE PREFERIDO HACERLO AS, YA QUE ME PARECE MAS AGRADABLE QUE TODO EN CAPTURAS.

10

S-ar putea să vă placă și