Scripts that generate grub.cfg
are located in /etc/grub.d/
. You can edit them to specify classes. In my system (Debian) entries you ask about are added in /etc/grub.d/10_linux
and /etc/grub.d/30_uefi-firmware
.
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
should I just add the class parameter in these files where it is usually supposed to be, and the files even on updates will not be changed and this will work?
These files are not changed on updates. grub.cfg
will be changed, but it will contain what these scripts write into it, so if you add classes to them, they will appear in new grub.cfg
.
To test that everything works as expected, backup your current grub.cfg
and run sudo update-grub
.
daje, grazie! (thanks!)
I'm not managing to get it to work on the submenu entry, only on the efi one. Don't know why
See if this entry generated by another script in this directory.
there were 2 scripts that semeed related to that: 10_linux_proxy and 35_linux_proxy.
There is a folder called proxified scripts, and inside it there are two files: linux and os-prober
Here is the text in the linux file: https://textdoc.co/V3atnuEvcG4QlPUp
I'm not sure what to do with it
You need to add class to this line:
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' $menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
Insert ${CLASS}
before $menuentry_id_option
:
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' ${CLASS} $menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
What generates is this, so I think it's from the linux proxy 35:
### BEGIN /etc/grub.d/35_linux_proxy ###
submenu "Advanced Options"{
menuentry "Ubuntu, with Linux 5.15.0-91-generic" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-91-generic-advanced-9e121508-86c8-407a-803d-9521d13f0be9' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 9e121508-86c8-407a-803d-9521d13f0be9
echo 'Loading Linux 5.15.0-91-generic ...'
linux /boot/vmlinuz-5.15.0-91-generic root=UUID=9e121508-86c8-407a-803d-9521d13f0be9 ro
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-5.15.0-91-generic
}
...more entries here
The linux proxy file has this inside it:
#!/bin/sh
#THIS IS A GRUB PROXY SCRIPT
'/etc/grub.d/proxifiedScripts/linux' | /etc/grub.d/bin/grubcfg_proxy "+'SUBMENU' as 'Advanced Options'{+'Advanced options for Ubuntu'/*, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-75-generic'~28ff24c064536ab0cd3a1bad9f456e69~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-75-generic (recovery mode)'~712228d18fab4e59226cce8b4f0d3d91~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-73-generic'~f31b2a265d0dfef1fd439595ac77a493~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-73-generic (recovery mode)'~303762cfd1fb902e0cab98046932d096~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-72-generic'~b5308959171659a00cb9ad96851ff6a6~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-72-generic (recovery mode)'~30bf9c9d00d0afd9a6bbd4056b36d94e~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-56-generic'~a76a35ca20f2ed58db39dc7b60a1f7a6~, +'Advanced options for Ubuntu'/'Ubuntu, with Linux 5.15.0-56-generic (recovery mode)'~7e2e93487d695fdce68a6355544c0cee~}
-*
-#text
-'Ubuntu'~ff8d1852fd072e04e5a89b38002b354a~
"
it's not working, also I don't know why when I went in that line I have a \ now, that wasn't there before apparently, before $menuentry:
echo "submenu '$(gettext_printf "Advanced options for %s" "${OS}" | grub_quote)' \$menuentry_id_option 'gnulinux-advanced-$boot_device_id' {"
(I've tried adding it also in front of ${CLASS}, leaving it only were it is, and removing it from both)
Can you post your grub.cfg?
It seems too long to copy paste here