Inicio > Linux, Tutoriales > Renombrar Sistema operativo Grub 2

Renombrar Sistema operativo Grub 2

Sábado, 23 de Enero de 2010

Con el nuevo Grub 2 han mejorado algunas cosas, como que a cada actualizacion de kernel no se pierdan las modificaciones que hayas hecho, pero a cambio es mas dificil de configurar ya que todo esta en /etc/grub.d y /etc/default/grub en archivos separados.

Mi Notebook venia con Windows 7 y su respectiva particion de restauracion oculta, luego yo le instale Ubuntu 9.10 el que procedio a instalar Grub2, pero al reiniciar el menu lucia asi:

  • Ubuntu 9.10, linux version
  • Ubuntu 9.10, linux version (recovery mode)
  • Memtest86
  • Memtest86 (console…)
  • Windows 7 (loader) (on /dev/sda1)
  • Windows 7 (loader) (on /dev/sda2)

Al final tenia dos entradas iguales, de distintas particiones, una apuntaba a Windows 7 o la otra a la particion de restauracion, como tambien corre el kernel de Windows 7 sale con el mismo nombre.

Como no puedo modificar /boot/grub/grub.cfg porque a la primera actualizacion de kernel se perderian los cambios tenia que modificar el archivo desde donde sacaba eso.

En Guia Ubuntu encontre esta guia para renombrar una entrada del Grub 2, para eso ejecuta este comando para abrir el editor de texto

sudo gedit /etc/grub.d/30_os-prober

Luego buscar

  if [ -z "${LONGNAME}" ] ; then
    LONGNAME="${LABEL}"
  fi

Y eso reemplazarlo 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

Pero eso era un buscar y reemplazar, asi que si ponia Windows 7 (loader) como titulo literal y nuevo titulo Windows 7 (recovery), como las dos tienen el mismo nombre, va a reemplazar ambas y se llamaran recovery.

Pero la solucion era agregar una nueva condicion al if, donde si el SO es Windows 7 (loader) y el dispositivo /dev/sda2 que es donde tengo el recovery va a modificar solamente esa entrada, por lo que el codigo va a quedar asi:

if [ "${LONGNAME}" = "Windows 7 (loader)" ] ; then
if [ "${DEVICE}" = "/dev/sda2" ] ; then
   LONGNAME="Windows 7 (recovery)"
fi
elif [ -z "${LONGNAME}" ] ; then
   LONGNAME="${LABEL}"
fi

Y ahi logre que solamente la entrada referente al recovery se renombrara, reemplaza Windows 7 (loader) por el nombre original y /dev/sda2 por la particion de la entrada a reemplazar.

Resultado final en el archivo grub.cfg

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" {
    insmod ntfs
    set root=(hd0,1)
    search –no-floppy –fs-uuid –set id
    chainloader +1
}
menuentry "Windows 7 (recovery) (on /dev/sda2)" {
    insmod ntfs
    set root=(hd0,2)
    search –no-floppy –fs-uuid –set id
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###

Categories: Linux, Tutoriales Tags: ,
Comentarios cerrados.