I am taking about the naming of existing/default GRUB boot entry. Currently I've the following options at GRUB screen:
Trisquel GNU/Linux
Advanced options for Trisquel GNU/Linux
Trisquel GNU/Linux, with Linux-Libre 3.13.0-39-lowlatency (recovery mode)
Windows 7 (loader) (on /dev/sda1)
Edubuntu ISO
Where First three entries are default with Trisquel GNU/Linux, 4th is for Windows boot loader and 5th is custom entry defined at /etc/grub.d/40_custom
.Now suppose I want to change the name/text of say 4th entry Windows 7 (loader) (on /dev/sda1)
, then which is the right way?
I found above menu entries at /boot/grub/grub.cfg
. Example for that I want to change:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows 7 (loader) (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-0A7072DF7072D145' {
insmod part_msdos
insmod ntfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 0A7072DF7072D145
else
search --no-floppy --fs-uuid --set=root 0A7072DF7072D145
fi
parttool ${root} hidden-
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
So, Can I safely replace the name/text 'Windows 7 (loader) (on /dev/sda1)'
with which I want and then update-grub2
?
Briefly I want to know How do I change the name of GRUB boot entry?
Best Answer
You can change
/boot/grub/grub.cfg
directly, but this file gets overwritten byupdate-grub2
. If your configuration does not change often, this may be the easiest way for you.Or take a look at:
Grub 2 Title Tweaks Thread
Grub Customizer package Thread
Alternatively have a look at this folder
/etc/grub.d
. From thereupdate-grub2
generates the/boot/grub/grub.cfg
file.You can change the way the auto-generation labels the Windows entries, especially as you only got one Windows installed, by overwriting the specific menuentry command in the
30_os-prober
script.Go to
/etc/grub.d/30_os-prober
and look formenuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --class windows ...
. Replace the' '
part with your label, but keep the other options the same.e.g. on my system:
menuentry 'My Windows 7 system' --class windows --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' { EOF
But there is a catch to that: firstly there are two of these entries in
30_os-prober
: one forchain)
, another forefi)
, thus you should change both. Secondly I guess these changes will be overwritten, once there is an update to these files / to grub.Another approach:
You can disable the windows part in the
30_os-prober
script by commenting#
thosemenuentry ...
commands in the windows sectionschain)
andefi)
. That will remove the auto-generated windows entry. Then take your current windows bootentry from/boot/grub/grub.cfg
and copy it into the custom menu file/etc/grub.d/40_custom
.