miércoles, 13 de enero de 2010

Grub 2

Grub 2.0 es el gestor de arranque predeterminado de algunas de las últimas versiones de linux.

Modificaciones en el menú de arranque

Para modificar el tiempo de espera, sistema operativo por defecto, el nombre de los sistemas operativos y toda la información del arranque de cada uno de ellos (igual que se hacía antes en /boot/grub/menu.lst) se puede hacer mediante el archivo /boot/grub/grub.cfg
No es recomendable hacerlo de este modo, ya que este archivo es un archivo creado automáticamente por el sistema utilizando otros archivos que son los que se deben modificar para cambiar los ajustes de Grub2. El archivo grub.cfg tambien se genera escribiendo en terminal:
sudo update-grub2
Los principales archivos para modificar las opciones de grub2 son:
• Los contenidos en la carpeta /etc/grub.d/
• /etc/grub.d/10_linux
• Este archivo contiene comandos y scripts que se encargan del kernel de linux en la particion principal.
• /etc/grub.d/30_os-prober
• Este archivo contiene comandos y scripts que se encargan de otros sistemas operativos.
• El archivo tiene 4 secciones. Los cambios que realicemos en una sección no afectarán al resto de las secciones.
• Las cuatros secciones son Windows, otras particiones Linux, OSX y Hurd.
• El archivo /etc/default/grub
• Los de la carpeta /usr/sbin/ (solamente los que llevan grub*, son los comandos que se ejecutan en terminal)

-------------------------------------------------------------------------------------

Cambiar el nombre de un sistema operativo en el menú

Con este comando podemos ver los nombres de todos los sitemas operativos (los nombres no cambian hasta que ejecutamos sudo update-grub2)
sudo cat /boot/grub/grub.cfg | grep "menuentry" | cut -d '"' -f 2

Cambiar el nombre de Ubuntu
Para cambiar el nombre de Ubuntu, modificamos el archivo /etc/grub.d/10_linux:
sudo gedit /etc/grub.d/10_linux
Podemos, por ejemplo, hacer que el nombre de Ubuntu sea del tipo "Ubuntu, Karmic 2.6.31-15-generic", añadimos la línea:
codename="`lsb_release -cs`"
al final de:
while [ "x$list" != "x" ] ; do
linux=`version_find_latest $list`
echo "Found linux image: $linux" >&2
basename=`basename $linux`
dirname=`dirname $linux`
rel_dirname=`make_system_path_relative_to_its_root $dirname`
version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
alt_version=`echo $version | sed -e "s,\.old$,,g"`
linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"

De esta forma añadimos una nueva variable con el nombre de la distro al archivo, que podremos usar despues en donde pone:
linux_entry "${OS}, Linux ${version}" \
"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_EXTRA} ${GRUB_CMDLINE_LINUX_DEFAULT}" \
quiet

Podemos modificar la primera línea a nuestro antojo:
linux_entry "${OS}, ${codename} ${version}" \
de esta forma mostrará "Ubuntu, Karmic 2.6.31-15-generic"
linux_entry "${OS} ${codename}" \
de esta forma mostrará "Ubuntu Karmic"
linux_entry "${OS} Texto que quieras" \
de esta forma mostrará "Ubuntu Texto que quieras"
Guardamos el archivo y ejecutamos sudo update-grub2

-------------------------------------------------------------------------------------

Cambiar el nombre otro sistema operativo

Para cambiar el nombre de otros SO, modificamos el archivo /etc/grub.d/30_os-prober:
sudo gedit /etc/grub.d/30_os-prober
Vamos a la sección del archivo que corresponda (si es para cambiar Windows es la primera sección sobre la línea 80)
for OS in ${OSPROBED} ; do
DEVICE="`echo ${OS} | cut -d ':' -f 1`"
LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
BOOT="`echo ${OS} | cut -d ':' -f 4`"
Y cambiamos:
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
Por:
if [ "${LONGNAME}" = "Titulo literal que aparece en el menu grub" ] ; then
LONGNAME="Nuevo título que quieres"
elif [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
Por ejemplo, si en el menú grub aparece "Windows 7 (loader) (on sda1)" y queremos q ponga "Seven (on sda1)", entonces escreibiremos:
if [ "${LONGNAME}" = "Windows 7 (loader)" ] ; then
LONGNAME="Seven"
elif [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
Guardamos el archivo y ejecutamos sudo update-grub2

Cambiar o eliminar (on /dev/sdxy)
Modificamos la parte del archivo que pone (cada línea que pone menumentry es de una sección del archivo):
menuentry "${LONGNAME} (on ${DEVICE})" {
menuentry "${LONGNAME} " { de esta forma, no muestra (on /dev/sdxy)
menuentry "${LONGNAME} (en la particion ${DEVICE})" { de esta forma, muestra (en la particion /dev/sdxy)
Guardamos el archivo y ejecutamos sudo update-grub2.

Agregar manualmente una opción para el arranque de Mac Os X
Esta solución la recomiendo usar únicamente en caso de que no consigamos arrancar nuestra partición Mac o Hackintosh de ninguna manera. Comprobé que funciona para arrancar iAtkos despues de haberlo instalado con Chamaleon como gestor de arranque. Nos damos permiso de escritura en el archivo grub.cfg:
sudo chmod 0777 /boot/grub/grub.cfg
Abrimos el archivo grub.cfg:
sudo gedit /boot/grub/grub.cfg
Justo debajo de ### BEGIN /etc/grub.d/30_os-prober ### añadimos las siguientes líneas (hd0,1 es la primera partición del primer disco duro, si no está mac es esa partición, hd0,0 debe ser cambiado):
menuentry "MacOS X (en hd0,1)" {
insmod hfsplus
set root=(hd0,1)
multiboot /boot
}
Atencion: en el propio archivo recomienda no modificar este archivo. Cada vez que ejecutemos el comando update-grub, el archivo se generará automáticamente y estos cambios se perderán.

-------------------------------------------------------------------------------------

Eliminar memtest
Para que no aparezca memtest en el menú, le quitamos los permisos de ejecución con el siguiente comando:
sudo chmod -x /etc/grub.d/20_memtest86+
Si escribimos +x en lugar de -x volvemos a darle permisos de ejecución y nos volverá a aparecer.
Ejecutamos:
sudo update-grub2

-------------------------------------------------------------------------------------

Eliminar el sistema de recuperación

Abrimos etc/default/grub
sudo gedit etc/default/grub
y cambiamos
#GRUB_DISABLE_LINUX_RECOVERY="true"
por:
GRUB_DISABLE_LINUX_RECOVERY="true"
También podemos hacer esto en un solo comando con:
sudo sed s/'#GRUB_DISABLE_LINUX_RECOVERY="true"'/'GRUB_DISABLE_LINUX_RECOVERY="true"'/g -i /etc/default/grub
Despues actualizamos grub2:
sudo update-grub2

-------------------------------------------------------------------------------------

Cambiar el tiempo de espera y sitema operativo por defecto

Estos parámetros se modifican en el archivo /etc/default/grub:
$ sudo gedit /etc/default/grub
En la sección:
GRUB_DEFAULT=0
Sistema operativo por defecto, 0 es el primero, 1 el segundo, etc.
GRUB_TIMEOUT="10"
Tiempo de espera en segundos Despues de modificar el archivo, debemos actualizar grub.cfg con el comando:
sudo update-grub2
-------------------------------------------------------------------------------------

Modificar el entorno

Modificar la imagen de fondo

La imagen de fondo debe estar en formato .png, o .tga, preferiblemente tga. Por ejemplo para utilizar una imagen cualquiera en JPG, la abrimos la imagen con Gimp, vamos al menú Imagen>Escalar imagen y le ponemos la resolución 640x480. Es preferible guardarla en el escritorio y copiarla en /usr/share/images/grub/ , donde vienen las imagenes por defecto de grub2, con una resolución de 640x480. Copiarla con el comando:
sudo cp/home/tu_nombre/Escritorio/tu_imagen.tga /usr/share/images/grub/tu_imagen.tga
Crearemos un link a la carpeta /boot/grub para no tener que editar el script theme.
sudo ln -s /usr/share/images/grub/tu_imagen.tga /boot/grub/moreblue-orbit-grub.tga
Despues de modificar el archivo, debemos actualizar grub.cfg con el comando:
sudo update-grub2


-------------------------------------------------------------------------------------

Modificar el color del texto

Antes de modificar los colores del texto debemos tener una imagen de fondo. Para modificar los colores del texto abrimos el archivo /etc/grub.d/05_debian_theme
sudo gedit /etc/grub.d/05_debian_theme
En la sección:
# set the background if possible
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
set color_normal=black/black
set color_highlight=magenta/black

Donde en "set color_normal" el primer "black" es el color del texto sin seleccionar y en "set color_highlight", "magenta" es el color del texto seleccionado y "black" es el color del fondo en la línea de texto seleccionado. Los colores que se pueden utilizar son:
• rojo: red
• verde: green
• azul: blue
• amarillo: yellow
• cian: cyan
• magenta: magenta
• blanco: white
• negro: black
Despues de modificar el archivo, debemos actualizar grub.cfg con el comando:
sudo update-grub2


-

No hay comentarios:

Publicar un comentario