Tenemos una lista de sistemas operativos para arrancar y queremos cambiarle el l nombre que sale en la lista.
Por ejemplo:
"Microsoft Windows XP Professional (on /dev/sda1)"
"Microsoft Windows XP Professional (on /dev/sdb1)"
Y queremos poner XP1 y XP2
Los nombres de las entradas en grub2 se escriben en el archivo /boot/grub2/grub.cfg, basandose en la salida del os-prober. Ej.:
Code:
# os-prober
No volume groups found
/dev/sda1:Windows NT/2000/XP (loader):Windows:chain
/dev/sda13:Fedora release 16 (Verne):Fedora:linux
/dev/sda15:Debian GNU/Linux (squeeze/sid):Debian:linux
/dev/sda2:OpenBSD:OpenBSD 4.7:openbsd
/dev/sda3:FreeBSD:FreeBSD 7.2-RELEASE:freebsd
/dev/sda6:Ubuntu 12.04.1 LTS (precise):Ubuntu:linux
/dev/sdb1:Windows NT/2000/XP (loader):Windows1:chain
/dev/sdb3:FreeBSD:FreeBSD 8.1-RELEASE:freebsd
Los nombres de otras distribuciones Linux se obtienen del archivo /usr/lib/os-probes/mounted/90linux-distro.
Los nombres de Windows se obtienen del archivo: /usr/lib/os-probes/mounted/20microsoft.
Pero no hay que editar este archivo sino fijarse en su contenido y ver que usa el archivo boot.ini de Windows XP. En W7 no hay boot.ini, usar bcdedit ( ver este artículo de opciones de arranque en windows).
os-prober intentará parsear el archivo 20microsoft si existe
Code: cat /usr/lib/os-probes/mounted/20microsoft
# 2000/XP/NT4.0
if [ -z "$found" ] && item_in_dir -q ntldr "$2" && item_in_dir -q ntdetect.com "$2"; then
long="Windows NT/2000/XP"
short=Windows
ini=$(item_in_dir boot.ini "$2")
if [ -n "$ini" ]; then
multicount="$(grep -e "^multi" "$2/$ini" | wc -l)"
scsicount="$(grep -e "^scsi" "$2/$ini" | wc -l)"
msoscount="$(expr "${multicount}" + "${scsicount}")"
if [ "$msoscount" -eq 1 ]; then
# We need to remove a Carriage Return at the end of
# the line...
defaultmspart="$(grep -e "^default=" "$2/$ini" | cut -d '=' -f2 | tr -d '\r')"
# Escape any backslashes in defaultmspart
grepexp="^$(echo "$defaultmspart" | sed -e 's/\\/\\\\/')="
# Colons not allowed; replace by spaces
# Accented characters (non UTF-8) cause debconf to
# hang, so we fall back to the default if the name
# contains any weird characters.
long="$(grep -e "$grepexp" "$2/$ini" | cut -d '"' -f2 | \
tr ':' ' ' | LC_ALL=C grep -v '[^a-zA-Z0-9 &()/_-]')"
if [ -z "$long" ]; then
long="Windows NT/2000/XP"
fi
else
long="Windows NT/2000/XP (loader)"
fi
found=true
fi
fi
Por lo que es suficiente editar el boot.ini y cambiar el nombre del SO en este archivo. Después hay que ejecutar
sudo /usr/sbin/grub2-mkconfig -o "/boot/grub2/grub.cfg"
para que el grub reconozca los cambios y reconstruya sus archivos y el menu de entrada