On 10/7/24 11:20 AM, Leo Sandoval wrote:
From: Peter Jones <pjo...@redhat.com>

This needs to be hooked up to --program-transform=, but I haven't had
time.

Can you explain/expand on this? It is not clear (to me) what that means. Is something missing from this patch?

Thanks
Ross


Signed-off-by: Peter Jones <pjo...@redhat.com>
---
  docs/grub-dev.texi    |   4 +-
  docs/grub.texi        | 359 ++++++++++++++++++++++--------------------
  grub-core/kern/misc.c |   2 +-
  3 files changed, 191 insertions(+), 174 deletions(-)

diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi
index 1276c5930..04c6678cb 100644
--- a/docs/grub-dev.texi
+++ b/docs/grub-dev.texi
@@ -1,7 +1,7 @@
  \input texinfo
  @c -*-texinfo-*-
  @c %**start of header
-@setfilename grub-dev.info
+@setfilename grub2-dev.info
  @include version-dev.texi
  @settitle GNU GRUB Developers Manual @value{VERSION}
  @c Unify all our little indices for now.
@@ -32,7 +32,7 @@ Invariant Sections.
@dircategory Kernel
  @direntry
-* grub-dev: (grub-dev).                 The GRand Unified Bootloader Dev
+* grub2-dev: (grub2-dev).                 The GRand Unified Bootloader Dev
  @end direntry
@setchapternewpage odd
diff --git a/docs/grub.texi b/docs/grub.texi
index a225f9a88..cecf14d55 100644
--- a/docs/grub.texi
+++ b/docs/grub.texi
@@ -1,7 +1,7 @@
  \input texinfo
  @c -*-texinfo-*-
  @c %**start of header
-@setfilename grub.info
+@setfilename grub2.info
  @include version.texi
  @settitle GNU GRUB Manual @value{VERSION}
  @c Unify all our little indices for now.
@@ -32,15 +32,15 @@ Invariant Sections.
@dircategory Kernel
  @direntry
-* GRUB: (grub).                 The GRand Unified Bootloader
-* grub-install: (grub)Invoking grub-install.    Install GRUB on your drive
-* grub-mkconfig: (grub)Invoking grub-mkconfig.  Generate GRUB configuration
-* grub-mkpasswd-pbkdf2: (grub)Invoking grub-mkpasswd-pbkdf2.
-* grub-mkrelpath: (grub)Invoking grub-mkrelpath.
-* grub-mkrescue: (grub)Invoking grub-mkrescue.  Make a GRUB rescue image
-* grub-mount: (grub)Invoking grub-mount.        Mount a file system using GRUB
-* grub-probe: (grub)Invoking grub-probe.        Probe device information
-* grub-script-check: (grub)Invoking grub-script-check.
+* GRUB2: (grub2).                 The GRand Unified Bootloader
+* grub2-install: (grub2)Invoking grub2-install.    Install GRUB on your drive
+* grub2-mkconfig: (grub2)Invoking grub2-mkconfig.  Generate GRUB configuration
+* grub2-mkpasswd-pbkdf2: (grub2)Invoking grub2-mkpasswd-pbkdf2.
+* grub2-mkrelpath: (grub2)Invoking grub2-mkrelpath.
+* grub2-mkrescue: (grub2)Invoking grub2-mkrescue.  Make a GRUB rescue image
+* grub2-mount: (grub2)Invoking grub2-mount.        Mount a file system using 
GRUB
+* grub2-probe: (grub2)Invoking grub2-probe.        Probe device information
+* grub2-script-check: (grub2)Invoking grub2-script-check.
  @end direntry
@setchapternewpage odd
@@ -223,7 +223,7 @@ surprising.
@item
  @file{grub.cfg} is typically automatically generated by
-@command{grub-mkconfig} (@pxref{Simple configuration}).  This makes it
+@command{grub2-mkconfig} (@pxref{Simple configuration}).  This makes it
  easier to handle versioned kernel upgrades.
@item
@@ -237,7 +237,7 @@ scripting language: variables, conditionals, and loops are 
available.
  @item
  A small amount of persistent storage is available across reboots, using the
  @command{save_env} and @command{load_env} commands in GRUB and the
-@command{grub-editenv} utility.  This is not available in all configurations
+@command{grub2-editenv} utility.  This is not available in all configurations
  (@pxref{Environment block}).
@item
@@ -542,7 +542,7 @@ On OS which have device nodes similar to Unix-like OS GRUB 
tools use the
  OS name. E.g. for GNU/Linux:
@example
-# @kbd{grub-install /dev/sda}
+# @kbd{grub2-install /dev/sda}
  @end example
On AROS we use another syntax. For volumes:
@@ -565,7 +565,7 @@ For disks we use syntax:
  E.g.
@example
-# @kbd{grub-install //:ata.device/0/0}
+# @kbd{grub2-install //:ata.device/0/0}
  @end example
On Windows we use UNC path. For volumes it's typically
@@ -592,7 +592,7 @@ For disks it's
  E.g.
@example
-# @kbd{grub-install \\?\PhysicalDrive0}
+# @kbd{grub2-install \\?\PhysicalDrive0}
  @end example
Beware that you may need to further escape the backslashes depending on your
@@ -602,7 +602,7 @@ When compiled with cygwin support then cygwin drive names 
are automatically
  when needed. E.g.
@example
-# @kbd{grub-install /dev/sda}
+# @kbd{grub2-install /dev/sda}
  @end example
@node Installation
@@ -615,7 +615,7 @@ from the source tarball, or as a package for your OS.
After you have done that, you need to install the boot loader on a
  drive (floppy or hard disk) by using the utility
-@command{grub-install} (@pxref{Invoking grub-install}) on a UNIX-like OS.
+@command{grub2-install} (@pxref{Invoking grub2-install}) on a UNIX-like OS.
GRUB comes with boot images, which are normally put in the directory
  @file{/usr/lib/grub/<cpu>-<platform>} (for BIOS-based machines
@@ -626,22 +626,22 @@ loader needs to find them (usually @file{/boot}) will be 
called
  the @dfn{boot directory}.
@menu
-* Installing GRUB using grub-install::
+* Installing GRUB using grub2-install::
  * Making a GRUB bootable CD-ROM::
  * Device map::
  * BIOS installation::
  @end menu
-@node Installing GRUB using grub-install
-@section Installing GRUB using grub-install
+@node Installing GRUB using grub2-install
+@section Installing GRUB using grub2-install
For information on where GRUB should be installed on PC BIOS platforms,
  @pxref{BIOS installation}.
In order to install GRUB under a UNIX-like OS (such
-as @sc{gnu}), invoke the program @command{grub-install} (@pxref{Invoking
-grub-install}) as the superuser (@dfn{root}).
+as @sc{gnu}), invoke the program @command{grub2-install} (@pxref{Invoking
+grub2-install}) as the superuser (@dfn{root}).
The usage is basically very simple. You only need to specify one
  argument to the program, namely, where to install the boot loader. The
@@ -650,13 +650,13 @@ For example, under Linux the following will install GRUB 
into the MBR
  of the first IDE disk:
@example
-# @kbd{grub-install /dev/sda}
+# @kbd{grub2-install /dev/sda}
  @end example
Likewise, under GNU/Hurd, this has the same effect: @example
-# @kbd{grub-install /dev/hd0}
+# @kbd{grub2-install /dev/hd0}
  @end example
But all the above examples assume that GRUB should put images under
@@ -670,7 +670,7 @@ boot floppy with a filesystem. Here is an example:
  # @kbd{mke2fs /dev/fd0}
  # @kbd{mount -t ext2 /dev/fd0 /mnt}
  # @kbd{mkdir /mnt/boot}
-# @kbd{grub-install --boot-directory=/mnt/boot /dev/fd0}
+# @kbd{grub2-install --boot-directory=/mnt/boot /dev/fd0}
  # @kbd{umount /mnt}
  @end group
  @end example
@@ -682,30 +682,37 @@ floppy instead of exposing the USB drive as a hard disk 
(they call it
  @example
  # @kbd{losetup /dev/loop0 /dev/sdb1}
  # @kbd{mount /dev/loop0 /mnt/usb}
-# @kbd{grub-install --boot-directory=/mnt/usb/bugbios --force --allow-floppy 
/dev/loop0}
+# @kbd{grub2-install --boot-directory=/mnt/usb/bugbios --force --allow-floppy 
/dev/loop0}
  @end example
This install doesn't conflict with standard install as long as they are in
  separate directories.
+Note that @command{grub2-install} is actually just a shell script and the
+real task is done by other tools such as @command{grub2-mkimage}. Therefore,
+you may run those commands directly to install GRUB, without using
+@command{grub2-install}. Don't do that, however, unless you are very familiar
+with the internals of GRUB. Installing a boot loader on a running OS may be
+extremely dangerous.
+
  On EFI systems for fixed disk install you have to mount EFI System Partition.
  If you mount it at @file{/boot/efi} then you don't need any special arguments:
@example
-# @kbd{grub-install}
+# @kbd{grub2-install}
  @end example
Otherwise you need to specify where your EFI System partition is mounted: @example
-# @kbd{grub-install --efi-directory=/mnt/efi}
+# @kbd{grub2-install --efi-directory=/mnt/efi}
  @end example
For removable installs you have to use @option{--removable} and specify both
  @option{--boot-directory} and @option{--efi-directory}:
@example
-# @kbd{grub-install --efi-directory=/mnt/usb --boot-directory=/mnt/usb/boot 
--removable}
+# @kbd{grub2-install --efi-directory=/mnt/usb --boot-directory=/mnt/usb/boot 
--removable}
  @end example
@node Making a GRUB bootable CD-ROM
@@ -725,10 +732,10 @@ usually also need to include a configuration file 
@file{grub.cfg} and some
  other GRUB modules.
To make a simple generic GRUB rescue CD, you can use the
-@command{grub-mkrescue} program (@pxref{Invoking grub-mkrescue}):
+@command{grub2-mkrescue} program (@pxref{Invoking grub2-mkrescue}):
@example
-$ @kbd{grub-mkrescue -o grub.iso}
+$ @kbd{grub2-mkrescue -o grub.iso}
  @end example
You will often need to include other files in your image. To do this, first
@@ -751,7 +758,7 @@ directory @file{iso/}.
  Finally, make the image:
@example
-$ @kbd{grub-mkrescue -o grub.iso iso}
+$ @kbd{grub2-mkrescue -o grub.iso iso}
  @end example
This produces a file named @file{grub.iso}, which then can be burned
@@ -767,7 +774,7 @@ storage devices.
  @node Device map
  @section The map between BIOS drives and OS devices
-If the device map file exists, the GRUB utilities (@command{grub-probe},
+If the device map file exists, the GRUB utilities (@command{grub2-probe},
  etc.) read it to map BIOS drives to OS devices.  This file consists of lines
  like this:
@@ -1269,23 +1276,23 @@ need to write the whole thing by hand.
  @node Simple configuration
  @section Simple configuration handling
-The program @command{grub-mkconfig} (@pxref{Invoking grub-mkconfig})
+The program @command{grub2-mkconfig} (@pxref{Invoking grub2-mkconfig})
  generates @file{grub.cfg} files suitable for most cases.  It is suitable for
  use when upgrading a distribution, and will discover available kernels and
  attempt to generate menu entries for them.
-@command{grub-mkconfig} does have some limitations. While adding extra
+@command{grub2-mkconfig} does have some limitations.  While adding extra
  custom menu entries to the end of the list can be done by editing
-@file{/etc/grub.d/40_custom} or creating @file{/boot/grub/custom.cfg},
+@file{/etc/grub.d/40_custom} or creating @file{/boot/grub2/custom.cfg},
  changing the order of menu entries or changing their titles may require
  making complex changes to shell scripts stored in @file{/etc/grub.d/}.  This
  may be improved in the future.  In the meantime, those who feel that it
  would be easier to write @file{grub.cfg} directly are encouraged to do so
  (@pxref{Booting}, and @ref{Shell-like scripting}), and to disable any system
-provided by their distribution to automatically run @command{grub-mkconfig}.
+provided by their distribution to automatically run @command{grub2-mkconfig}.
The file @file{/etc/default/grub} controls the operation of
-@command{grub-mkconfig}.  It is sourced by a shell script, and so must be
+@command{grub2-mkconfig}.  It is sourced by a shell script, and so must be
  valid POSIX shell input; normally, it will just be a sequence of
  @samp{KEY=value} lines, but if the value contains spaces or other special
  characters then it must be quoted.  For example:
@@ -1323,7 +1330,7 @@ works it's not recommended since titles often contain 
unstable device names
  and may be translated
If you set this to @samp{saved}, then the default menu entry will be that
-saved by @samp{GRUB_SAVEDEFAULT} or @command{grub-set-default}.  This relies on
+saved by @samp{GRUB_SAVEDEFAULT} or @command{grub2-set-default}.  This relies 
on
  the environment block, which may not be available in all situations
  (@pxref{Environment block}).
@@ -1334,7 +1341,7 @@ If this option is set to @samp{true}, then, when an entry is selected, save
  it as a new default entry for use by future runs of GRUB.  This is only
  useful if @samp{GRUB_DEFAULT=saved}; it is a separate option because
  @samp{GRUB_DEFAULT=saved} is useful without this option, in conjunction with
-@command{grub-set-default}.  Unset by default.
+@command{grub2-set-default}.  Unset by default.
  This option relies on the environment block, which may not be available in
  all situations (@pxref{Environment block}).
@@ -1481,15 +1488,15 @@ intel-uc.img intel-ucode.img amd-uc.img amd-ucode.img early_ucode.cpio microcode
  @end example
@item GRUB_DISABLE_LINUX_UUID
-Normally, @command{grub-mkconfig} will generate menu entries that use
+Normally, @command{grub2-mkconfig} will generate menu entries that use
  universally-unique identifiers (UUIDs) to identify the root filesystem to
  the Linux kernel, using a @samp{root=UUID=...} kernel parameter.  This is
  usually more reliable, but in some cases it may not be appropriate.  To
  disable the use of UUIDs, set this option to @samp{true}.
@item GRUB_DISABLE_LINUX_PARTUUID
-If @command{grub-mkconfig} cannot identify the root filesystem via its
-universally-unique indentifier (UUID), @command{grub-mkconfig} can use the UUID
+If @command{grub2-mkconfig} cannot identify the root filesystem via its
+universally-unique indentifier (UUID), @command{grub2-mkconfig} can use the 
UUID
  of the partition containing the filesystem to identify the root filesystem to
  the Linux kernel via a @samp{root=PARTUUID=...} kernel parameter.  This is not
  as reliable as using the filesystem UUID, but is more reliable than using the
@@ -1503,7 +1510,7 @@ If this option is set to @samp{true}, disable the 
generation of recovery
  mode menu entries.
@item GRUB_DISABLE_UUID
-Normally, @command{grub-mkconfig} will generate menu entries that use
+Normally, @command{grub2-mkconfig} will generate menu entries that use
  universally-unique identifiers (UUIDs) to identify various filesystems to
  search for files.  This is usually more reliable, but in some cases it may
  not be appropriate.  To disable this use of UUIDs, set this option to
@@ -1514,12 +1521,12 @@ not be appropriate.  To disable this use of UUIDs, set 
this option to
  @item GRUB_VIDEO_BACKEND
  If graphical video support is required, either because the @samp{gfxterm}
  graphical terminal is in use or because @samp{GRUB_GFXPAYLOAD_LINUX} is set,
-then @command{grub-mkconfig} will normally load all available GRUB video
+then @command{grub2-mkconfig} will normally load all available GRUB video
  drivers and use the one most appropriate for your hardware.  If you need to
  override this for some reason, then you can set this option.
-After @command{grub-install} has been run, the available video drivers are
-listed in @file{/boot/grub/video.lst}.
+After @command{grub2-install} has been run, the available video drivers are
+listed in @file{/boot/grub2/video.lst}.
@item GRUB_GFXMODE
  Set the resolution used on the @samp{gfxterm} graphical terminal.  Note that
@@ -1552,20 +1559,20 @@ boot sequence.  If you have problems, set this option 
to @samp{text} and
  GRUB will tell Linux to boot in normal text mode.
@item GRUB_DISABLE_OS_PROBER
-The @command{grub-mkconfig} has a feature to use the external
+The @command{grub2-mkconfig} has a feature to use the external
  @command{os-prober} program to discover other operating systems installed on
  the same machine and generate appropriate menu entries for them. It is 
disabled
  by default since automatic and silent execution of @command{os-prober}, and
  creating boot entries based on that data, is a potential attack vector. Set
  this option to @samp{false} to enable this feature in the
-@command{grub-mkconfig} command.
+@command{grub2-mkconfig} command.
@item GRUB_OS_PROBER_SKIP_LIST
  List of space-separated FS UUIDs of filesystems to be ignored from os-prober
  output. For efi chainloaders it's <UUID>@@<EFI FILE>
@item GRUB_DISABLE_SUBMENU
-Normally, @command{grub-mkconfig} will generate top level menu entry for
+Normally, @command{grub2-mkconfig} will generate top level menu entry for
  the kernel with highest version number and put all other found kernels
  or alternative menu entries for recovery mode in submenu. For entries returned
  by @command{os-prober} first entry will be put on top level and all others
@@ -1573,11 +1580,11 @@ in submenu. If this option is set to @samp{true}, flat 
menu with all entries
  on top level will be generated instead. Changing this option will require
  changing existing values of @samp{GRUB_DEFAULT}, @samp{fallback} 
(@pxref{fallback})
  and @samp{default} (@pxref{default}) environment variables as well as saved
-default entry using @command{grub-set-default} and value used with
-@command{grub-reboot}.
+default entry using @command{grub2-set-default} and value used with
+@command{grub2-reboot}.
@item GRUB_ENABLE_CRYPTODISK
-If set to @samp{y}, @command{grub-mkconfig} and @command{grub-install} will
+If set to @samp{y}, @command{grub2-mkconfig} and @command{grub2-install} will
  check for encrypted disks and generate additional commands needed to access
  them during boot.  Note that in this case unattended boot is not possible
  because GRUB will wait for passphrase to unlock encrypted container.
@@ -1636,7 +1643,7 @@ confusing @samp{GRUB_TIMEOUT_STYLE=countdown} or
@end table -For more detailed customisation of @command{grub-mkconfig}'s output, you may
+For more detailed customisation of @command{grub2-mkconfig}'s output, you may
  edit the scripts in @file{/etc/grub.d} directly.
  @file{/etc/grub.d/40_custom} is particularly useful for adding entire custom
  menu entries; simply type the menu entries you want to add at the end of
@@ -1644,14 +1651,14 @@ that file, making sure to leave at least the first two 
lines intact.
@node Root Identifcation Heuristics
  @section Root Identifcation Heuristics
-If the target operating system uses the Linux kernel, @command{grub-mkconfig}
+If the target operating system uses the Linux kernel, @command{grub2-mkconfig}
  attempts to identify the root file system via a heuristic algoirthm.  This
  algorithm selects the identification method of the root file system by
  considering three factors.  The first is if an initrd for the target operating
  system is also present.  The second is @samp{GRUB_DISABLE_LINUX_UUID} and if 
set
-to @samp{true}, prevents @command{grub-mkconfig} from identifying the root file
+to @samp{true}, prevents @command{grub2-mkconfig} from identifying the root 
file
  system by its UUID.  The third is @samp{GRUB_DISABLE_LINUX_PARTUUID} and if 
set
-to @samp{true}, prevents @command{grub-mkconfig} from identifying the root file
+to @samp{true}, prevents @command{grub2-mkconfig} from identifying the root 
file
  system via the UUID of its enclosing partition.  If the variables are assigned
  any other value, that value is considered equivalent to @samp{false}.  The
  variables are also considered to be set to @samp{false} if they are not set.
@@ -1661,18 +1668,18 @@ filesystem to the initrd.  Most initrd images determine 
the root file system by
  checking the Linux kernel's command-line for the @samp{root} key and use its
  value as the identification method of the root file system.  To improve the
  reliability of booting, most initrd images also allow the root file system to 
be
-identified by its UUID.  Because of this behavior, the @command{grub-mkconfig}
+identified by its UUID.  Because of this behavior, the @command{grub2-mkconfig}
  command will set @samp{root} to @samp{root=UUID=...} to provide the initrd 
with
  the filesystem UUID of the root file system.
If no initrd is detected or @samp{GRUB_DISABLE_LINUX_UUID} is set to @samp{true}
-then @command{grub-command} will identify the root filesystem by setting the
+then @command{grub2-command} will identify the root filesystem by setting the
  kernel command-line variable @samp{root} to @samp{root=PARTUUID=...} unless
  @samp{GRUB_DISABLE_LINUX_PARTUUID} is also set to @samp{true}.  If
  @samp{GRUB_DISABLE_LINUX_PARTUUID} is also set to @samp{true},
-@command{grub-command} will identify by its Linux device name.
+@command{grub2-command} will identify by its Linux device name.
-The following table summarizes the behavior of the @command{grub-mkconfig}
+The following table summarizes the behavior of the @command{grub2-mkconfig}
  command.
@multitable {detected} {GRUB_DISABLE_LINUX_PARTUUID} {GRUB_DISABLE_LINUX_UUID} {Linux Root}
@@ -1900,7 +1907,7 @@ images as well.
  Mount this partition on/mnt/boot and disable GRUB in all OSes and manually
  install self-compiled latest GRUB with:
-@code{grub-install --boot-directory=/mnt/boot /dev/sda}
+@code{grub2-install --boot-directory=/mnt/boot /dev/sda}
In all the OSes install GRUB tools but disable installing GRUB in bootsector,
  so you'll have menu.lst and grub.cfg available for use. Also disable os-prober
@@ -1910,20 +1917,20 @@ use by setting:
in /etc/default/grub -Then write a grub.cfg (/mnt/boot/grub/grub.cfg):
+Then write a grub.cfg (/mnt/boot/grub2/grub.cfg):
@example menuentry "OS using grub2" @{
     insmod xfs
     search --set=root --label OS1 --hint hd0,msdos8
-   configfile /boot/grub/grub.cfg
+   configfile /boot/grub2/grub.cfg
  @}
menuentry "OS using grub2-legacy" @{
     insmod ext2
     search --set=root --label OS2 --hint hd0,msdos6
-   legacy_configfile /boot/grub/menu.lst
+   legacy_configfile /boot/grub2/menu.lst
  @}
menuentry "Windows XP" @{
@@ -1986,15 +1993,15 @@ GRUB supports embedding a configuration file directly 
into the core image,
  so that it is loaded before entering normal mode.  This is useful, for
  example, when it is not straightforward to find the real configuration file,
  or when you need to debug problems with loading that file.
-@command{grub-install} uses this feature when it is not using BIOS disk
+@command{grub2-install} uses this feature when it is not using BIOS disk
  functions or when installing to a different disk from the one containing
  @file{/boot/grub}, in which case it needs to use the @command{search}
  command (@pxref{search}) to find @file{/boot/grub}.
To embed a configuration file, use the @option{-c} option to
-@command{grub-mkimage}.  The file is copied into the core image, so it may
+@command{grub2-mkimage}.  The file is copied into the core image, so it may
  reside anywhere on the file system, and may be removed after running
-@command{grub-mkimage}.
+@command{grub2-mkimage}.
After the embedded configuration file (if any) is executed, GRUB will load
  the @samp{normal} module (@pxref{normal}), which will then read the real
@@ -2029,13 +2036,13 @@ included in the core image:
  @example
  @group
  search.fs_label grub root
-if [ -e /boot/grub/example/test1.cfg ]; then
+if [ -e /boot/grub2/example/test1.cfg ]; then
      set prefix=($root)/boot/grub
-    configfile /boot/grub/example/test1.cfg
+    configfile /boot/grub2/example/test1.cfg
  else
-    if [ -e /boot/grub/example/test2.cfg ]; then
+    if [ -e /boot/grub2/example/test2.cfg ]; then
          set prefix=($root)/boot/grub
-        configfile /boot/grub/example/test2.cfg
+        configfile /boot/grub2/example/test2.cfg
      else
          echo "Could not find an example configuration file!"
      fi
@@ -2559,7 +2566,7 @@ grub-mknetdir --net-directory=/srv/tftp 
--subdir=/boot/grub -d /usr/lib/grub/i38
  @end group
  @end example
-Then follow instructions printed out by grub-mknetdir on configuring your DHCP
+Then follow instructions printed out by grub2-mknetdir on configuring your DHCP
  server.
The grub.cfg file is placed in the same directory as the path output by
@@ -2762,7 +2769,7 @@ team are:
  @end table
To take full advantage of this function, install GRUB into the MBR
-(@pxref{Installing GRUB using grub-install}).
+(@pxref{Installing GRUB using grub2-install}).
If you have a laptop which has a similar feature and not in the above list
  could you figure your address and contribute?
@@ -2823,7 +2830,7 @@ bytes.
  The sole function of @file{boot.img} is to read the first sector of the core
  image from a local disk and jump to it.  Because of the size restriction,
  @file{boot.img} cannot understand any file system structure, so
-@command{grub-install} hardcodes the location of the first sector of the
+@command{grub2-install} hardcodes the location of the first sector of the
  core image into @file{boot.img} when installing GRUB.
@item diskboot.img
@@ -2853,7 +2860,7 @@ images.
@item core.img
  This is the core image of GRUB.  It is built dynamically from the kernel
-image and an arbitrary list of modules by the @command{grub-mkimage}
+image and an arbitrary list of modules by the @command{grub2-mkimage}
  program.  Usually, it contains enough modules to access @file{/boot/grub},
  and loads everything else (including menu handling, the ability to load
  target operating systems, and so on) from the file system at run-time.  The
@@ -2905,7 +2912,7 @@ GRUB 2 has no single Stage 2 image.  Instead, it loads 
modules from
  In GRUB 2, images for booting from CD-ROM drives are now constructed using
  @file{cdboot.img} and @file{core.img}, making sure that the core image
  contains the @samp{iso9660} module.  It is usually best to use the
-@command{grub-mkrescue} program for this.
+@command{grub2-mkrescue} program for this.
@item nbgrub
  There is as yet no equivalent for @file{nbgrub} in GRUB 2; it was used by
@@ -3073,8 +3080,8 @@ There are two ways to specify files, by @dfn{absolute 
file name} and by
An absolute file name resembles a Unix absolute file name, using
  @samp{/} for the directory separator (not @samp{\} as in DOS). One
-example is @samp{(hd0,1)/boot/grub/grub.cfg}. This means the file
-@file{/boot/grub/grub.cfg} in the first partition of the first hard
+example is @samp{(hd0,1)/boot/grub2/grub.cfg}. This means the file
+@file{/boot/grub2/grub.cfg} in the first partition of the first hard
  disk. If you omit the device name in an absolute file name, GRUB uses
  GRUB's @dfn{root device} implicitly. So if you set the root device to,
  say, @samp{(hd1,1)} by the command @samp{set root=(hd1,1)} (@pxref{set}),
@@ -3082,8 +3089,8 @@ then @code{/boot/kernel} is the same as 
@code{(hd1,1)/boot/kernel}.
On ZFS filesystem the first path component must be
  @var{volume}@samp{@@}[@var{snapshot}].
-So @samp{/rootvol@@snap-129/boot/grub/grub.cfg} refers to file
-@samp{/boot/grub/grub.cfg} in snapshot of volume @samp{rootvol} with name
+So @samp{/rootvol@@snap-129/boot/grub2/grub.cfg} refers to file
+@samp{/boot/grub2/grub.cfg} in snapshot of volume @samp{rootvol} with name
  @samp{snap-129}.  Trailing @samp{@@} after volume name is mandatory even if
  snapshot name is omitted.
@@ -3502,7 +3509,7 @@ The more recent release of Minix would then be identified as
  @samp{other>minix>minix-3.4.0}.
This variable is often set by @samp{GRUB_DEFAULT} (@pxref{Simple
-configuration}), @command{grub-set-default}, or @command{grub-reboot}.
+configuration}), @command{grub2-set-default}, or @command{grub2-reboot}.
@node fallback
@@ -3592,7 +3599,7 @@ If this variable is set, it names the language code that 
the
  example, French would be named as @samp{fr}, and Simplified Chinese as
  @samp{zh_CN}.
-@command{grub-mkconfig} (@pxref{Simple configuration}) will try to set a
+@command{grub2-mkconfig} (@pxref{Simple configuration}) will try to set a
  reasonable default for this variable based on the system locale.
@@ -3600,10 +3607,10 @@ reasonable default for this variable based on the system locale.
  @subsection locale_dir
If this variable is set, it names the directory where translation files may
-be found (@pxref{gettext}), usually @file{/boot/grub/locale}.  Otherwise,
+be found (@pxref{gettext}), usually @file{/boot/grub2/locale}.  Otherwise,
  internationalization is disabled.
-@command{grub-mkconfig} (@pxref{Simple configuration}) will set a reasonable
+@command{grub2-mkconfig} (@pxref{Simple configuration}) will set a reasonable
  default for this variable if internationalization is needed and any
  translation files are available.
@@ -3740,7 +3747,7 @@ input. The default is not to pause output. The location of the @samp{/boot/grub} directory as an absolute file name
  (@pxref{File name syntax}).  This is normally set by GRUB at startup based
-on information provided by @command{grub-install}.  GRUB modules are
+on information provided by @command{grub2-install}.  GRUB modules are
  dynamically loaded from this directory, so it must be set correctly in order
  for many parts of GRUB to work.
@@ -3852,17 +3859,17 @@ GRUB provides an ``environment block'' which can be used to save a small
  amount of state.
The environment block is a preallocated 1024-byte file, which normally lives
-in @file{/boot/grub/grubenv} (although you should not assume this).  At boot
+in @file{/boot/grub2/grubenv} (although you should not assume this).  At boot
  time, the @command{load_env} command (@pxref{load_env}) loads environment
  variables from it, and the @command{save_env} (@pxref{save_env}) command
  saves environment variables to it.  From a running system, the
-@command{grub-editenv} utility can be used to edit the environment block.
+@command{grub2-editenv} utility can be used to edit the environment block.
For safety reasons, this storage is only available when installed on a plain
  disk (no LVM or RAID), using a non-checksumming filesystem (no ZFS), and
  using BIOS or EFI functions (no ATA, USB or IEEE1275).
-@command{grub-mkconfig} uses this facility to implement
+@command{grub2-mkconfig} uses this facility to implement
  @samp{GRUB_SAVEDEFAULT} (@pxref{Simple configuration}).
@node Modules
@@ -4924,7 +4931,7 @@ Translate @var{string} into the current language.
The current language code is stored in the @samp{lang} variable in GRUB's
  environment (@pxref{lang}).  Translation files in MO format are read from
-@samp{locale_dir} (@pxref{locale_dir}), usually @file{/boot/grub/locale}.
+@samp{locale_dir} (@pxref{locale_dir}), usually @file{/boot/grub2/locale}.
  @end deffn
@@ -5276,7 +5283,7 @@ Define a user named @var{user} with password @var{clear-password}. @deffn Command password_pbkdf2 user hashed-password
  Define a user named @var{user} with password hash @var{hashed-password}.
-Use @command{grub-mkpasswd-pbkdf2} (@pxref{Invoking grub-mkpasswd-pbkdf2})
+Use @command{grub2-mkpasswd-pbkdf2} (@pxref{Invoking grub2-mkpasswd-pbkdf2})
  to generate password hashes.  @xref{Security}.
  @end deffn
@@ -6402,8 +6409,8 @@ The @samp{password} (@pxref{password}) and @samp{password_pbkdf2}
  which has an associated password.  @samp{password} sets the password in
  plain text, requiring @file{grub.cfg} to be secure; @samp{password_pbkdf2}
  sets the password hashed using the Password-Based Key Derivation Function
-(RFC 2898), requiring the use of @command{grub-mkpasswd-pbkdf2}
-(@pxref{Invoking grub-mkpasswd-pbkdf2}) to generate password hashes.
+(RFC 2898), requiring the use of @command{grub2-mkpasswd-pbkdf2}
+(@pxref{Invoking grub2-mkpasswd-pbkdf2}) to generate password hashes.
In order to enable authentication support, the @samp{superusers} environment
  variable must be set to a list of usernames, separated by any of spaces,
@@ -6448,7 +6455,7 @@ menuentry "May be run by user1 or a superuser" --users 
user1 @{
  @end group
  @end example
-The @command{grub-mkconfig} program does not yet have built-in support for
+The @command{grub2-mkconfig} program does not yet have built-in support for
  generating configuration files with authentication.  You can use
  @file{/etc/grub.d/40_custom} to add simple superuser authentication, by
  adding @kbd{set superusers=} and @kbd{password} or @kbd{password_pbkdf2}
@@ -6474,8 +6481,18 @@ validation fails, then file @file{foo} cannot be opened. 
 This failure
  may halt or otherwise impact the boot process.
An initial trusted public key can be embedded within the GRUB @file{core.img}
-using the @code{--pubkey} option to @command{grub-install}
-(@pxref{Invoking grub-install}).
+using the @code{--pubkey} option to @command{grub2-install}
+(@pxref{Invoking grub2-install}).
+
+@comment Unfortunately --pubkey is not yet supported by grub2-install,
+@comment but we should not bring up internal detail grub2-mkimage here
+@comment in the user guide (as opposed to developer's manual).
+
+@comment An initial trusted public key can be embedded within the GRUB
+@comment @file{core.img} using the @code{--pubkey} option to
+@comment @command{grub2-mkimage} (@pxref{Invoking grub2-install}).  Presently 
it
+@comment is necessary to write a custom wrapper around @command{grub2-mkimage}
+@comment using the @code{--grub-mkimage} flag to @command{grub2-install}.
GRUB uses GPG-style detached signatures (meaning that a file
  @file{foo.sig} will be produced when file @file{foo} is signed), and
@@ -6495,8 +6512,8 @@ gpg --detach-sign /path/to/file
  For successful validation of all of GRUB's subcomponents and the
  loaded OS kernel, they must all be signed.  One way to accomplish this
  is the following (after having already produced the desired
-@file{grub.cfg} file, e.g., by running @command{grub-mkconfig}
-(@pxref{Invoking grub-mkconfig}):
+@file{grub.cfg} file, e.g., by running @command{grub2-mkconfig}
+(@pxref{Invoking grub2-mkconfig}):
@example
  @group
@@ -6518,7 +6535,7 @@ See also: @ref{check_signatures}, @ref{verify_detached}, 
@ref{trust},
  Note that internally signature enforcement is controlled by setting
  the environment variable @code{check_signatures} equal to
  @code{enforce}.  Passing one or more @code{--pubkey} options to
-@command{grub-mkimage} implicitly defines @code{check_signatures}
+@command{grub2-mkimage} implicitly defines @code{check_signatures}
  equal to @code{enforce} in @file{core.img} prior to processing any
  configuration files.
@@ -6566,7 +6583,7 @@ UTF-8 strings as comma-separated values (CSV). See
  
@uref{https://urldefense.com/v3/__https://github.com/rhboot/shim/blob/main/SBAT.md__;!!ACWV5N9M2RV99hQ!L0Qe1g1igyWH7sbVcazLtuN-1x6512lNfSNE40pc-B-zv3i8A3s2rADpr_pwb3Y-685v7NMgYq4fDOpxYOmh$
 } for more details.
To add a data section containing the SBAT information into the binary, the
-@option{--sbat} option of @command{grub-mkimage} command should be used. The 
content
+@option{--sbat} option of @command{grub2-mkimage} command should be used. The 
content
  of a CSV file, encoded with UTF-8, is copied as is to the .sbat data section 
into
  the generated EFI binary. The CSV file can be stored anywhere on the file 
system.
@@ -6977,10 +6994,10 @@ Required files are: GRUB's normal start-up procedure involves setting the @samp{prefix}
  environment variable to a value set in the core image by
-@command{grub-install}, setting the @samp{root} variable to match, loading
+@command{grub2-install}, setting the @samp{root} variable to match, loading
  the @samp{normal} module from the prefix, and running the @samp{normal}
  command (@pxref{normal}).  This command is responsible for reading
-@file{/boot/grub/grub.cfg}, running the menu, and doing all the useful
+@file{/boot/grub2/grub.cfg}, running the menu, and doing all the useful
  things GRUB is supposed to do.
If, instead, you only get a rescue shell, this usually means that GRUB
@@ -7006,8 +7023,8 @@ normal
However, any problem that leaves you in the rescue shell probably means that
  GRUB was not correctly installed.  It may be more useful to try to reinstall
-it properly using @kbd{grub-install @var{device}} (@pxref{Invoking
-grub-install}).  When doing this, there are a few things to remember:
+it properly using @kbd{grub2-install @var{device}} (@pxref{Invoking
+grub2-install}).  When doing this, there are a few things to remember:
@itemize @bullet{}
  @item
@@ -7019,7 +7036,7 @@ is usually better to use UUIDs or file system labels and 
avoid depending on
  drive ordering entirely.
@item
-At least on BIOS systems, if you tell @command{grub-install} to install GRUB
+At least on BIOS systems, if you tell @command{grub2-install} to install GRUB
  to a partition but GRUB has already been installed in the master boot
  record, then the GRUB installation in the partition will be ignored.
@@ -7054,33 +7071,33 @@ bootability on other machines.
  @chapter User-space utilities
@menu
-* Invoking grub-install::       How to use the GRUB installer
-* Invoking grub-mkconfig::      Generate a GRUB configuration file
-* Invoking grub-mkpasswd-pbkdf2::
+* Invoking grub2-install::       How to use the GRUB installer
+* Invoking grub2-mkconfig::      Generate a GRUB configuration file
+* Invoking grub2-mkpasswd-pbkdf2::
                                  Generate GRUB password hashes
-* Invoking grub-mkrelpath::     Make system path relative to its root
-* Invoking grub-mkrescue::      Make a GRUB rescue image
-* Invoking grub-mount::         Mount a file system using GRUB
-* Invoking grub-probe::         Probe device information for GRUB
-* Invoking grub-script-check::  Check GRUB script file for syntax errors
+* Invoking grub2-mkrelpath::     Make system path relative to its root
+* Invoking grub2-mkrescue::      Make a GRUB rescue image
+* Invoking grub2-mount::         Mount a file system using GRUB
+* Invoking grub2-probe::         Probe device information for GRUB
+* Invoking grub2-script-check::  Check GRUB script file for syntax errors
  @end menu
-@node Invoking grub-install
-@section Invoking grub-install
+@node Invoking grub2-install
+@section Invoking grub2-install
-The program @command{grub-install} generates a GRUB core image using
-@command{grub-mkimage} and installs it on your system.  You must specify the
+The program @command{grub2-install} generates a GRUB core image using
+@command{grub2-mkimage} and installs it on your system.  You must specify the
  device name on which you want to install GRUB, like this:
@example
-grub-install @var{install_device}
+grub2-install @var{install_device}
  @end example
The device name @var{install_device} is an OS device name or a GRUB
  device name.
-@command{grub-install} accepts the following options:
+@command{grub2-install} accepts the following options:
@table @option
  @item --help
@@ -7096,13 +7113,13 @@ separate partition or a removable disk.
  If this option is not specified then it defaults to @file{/boot}, so
@example
-@kbd{grub-install /dev/sda}
+@kbd{grub2-install /dev/sda}
  @end example
is equivalent to @example
-@kbd{grub-install --boot-directory=/boot/ /dev/sda}
+@kbd{grub2-install --boot-directory=/boot/ /dev/sda}
  @end example
Here is an example in which you have a separate @dfn{boot} partition which is
@@ -7110,16 +7127,16 @@ mounted on
  @file{/mnt/boot}:
@example
-@kbd{grub-install --boot-directory=/mnt/boot /dev/sdb}
+@kbd{grub2-install --boot-directory=/mnt/boot /dev/sdb}
  @end example
@item --recheck
-Recheck the device map, even if @file{/boot/grub/device.map} already
+Recheck the device map, even if @file{/boot/grub2/device.map} already
  exists. You should use this option whenever you add/remove a disk
  into/from your computer.
@item --no-rs-codes
-By default on x86 BIOS systems, @command{grub-install} will use some
+By default on x86 BIOS systems, @command{grub2-install} will use some
  extra space in the bootloader embedding area for Reed-Solomon
  error-correcting codes. This enables GRUB to still boot successfully
  if some blocks are corrupted.  The exact amount of protection offered
@@ -7132,17 +7149,17 @@ installation}) where GRUB does not reside in any 
unpartitioned space
  outside of the MBR.  Disable the Reed-Solomon codes with this option.
  @end table
-@node Invoking grub-mkconfig
-@section Invoking grub-mkconfig
+@node Invoking grub2-mkconfig
+@section Invoking grub2-mkconfig
-The program @command{grub-mkconfig} generates a configuration file for GRUB
+The program @command{grub2-mkconfig} generates a configuration file for GRUB
  (@pxref{Simple configuration}).
@example
-grub-mkconfig -o /boot/grub/grub.cfg
+grub2-mkconfig -o /boot/grub2/grub.cfg
  @end example
-@command{grub-mkconfig} accepts the following options:
+@command{grub2-mkconfig} accepts the following options:
@table @option
  @item --help
@@ -7158,17 +7175,17 @@ it to standard output.
  @end table
-@node Invoking grub-mkpasswd-pbkdf2
-@section Invoking grub-mkpasswd-pbkdf2
+@node Invoking grub2-mkpasswd-pbkdf2
+@section Invoking grub2-mkpasswd-pbkdf2
-The program @command{grub-mkpasswd-pbkdf2} generates password hashes for
+The program @command{grub2-mkpasswd-pbkdf2} generates password hashes for
  GRUB (@pxref{Security}).
@example
-grub-mkpasswd-pbkdf2
+grub2-mkpasswd-pbkdf2
  @end example
-@command{grub-mkpasswd-pbkdf2} accepts the following options:
+@command{grub2-mkpasswd-pbkdf2} accepts the following options:
@table @option
  @item -c @var{number}
@@ -7186,23 +7203,23 @@ Length of the salt.  Defaults to 64.
  @end table
-@node Invoking grub-mkrelpath
-@section Invoking grub-mkrelpath
+@node Invoking grub2-mkrelpath
+@section Invoking grub2-mkrelpath
-The program @command{grub-mkrelpath} makes a file system path relative to
+The program @command{grub2-mkrelpath} makes a file system path relative to
  the root of its containing file system.  For instance, if @file{/usr} is a
  mount point, then:
@example
-$ @kbd{grub-mkrelpath /usr/share/grub/unicode.pf2}
+$ @kbd{grub2-mkrelpath /usr/share/grub/unicode.pf2}
  @samp{/share/grub/unicode.pf2}
  @end example
This is mainly used internally by other GRUB utilities such as
-@command{grub-mkconfig} (@pxref{Invoking grub-mkconfig}), but may
+@command{grub2-mkconfig} (@pxref{Invoking grub2-mkconfig}), but may
  occasionally also be useful for debugging.
-@command{grub-mkrelpath} accepts the following options:
+@command{grub2-mkrelpath} accepts the following options:
@table @option
  @item --help
@@ -7213,17 +7230,17 @@ Print the version number of GRUB and exit.
  @end table
-@node Invoking grub-mkrescue
-@section Invoking grub-mkrescue
+@node Invoking grub2-mkrescue
+@section Invoking grub2-mkrescue
-The program @command{grub-mkrescue} generates a bootable GRUB rescue image
+The program @command{grub2-mkrescue} generates a bootable GRUB rescue image
  (@pxref{Making a GRUB bootable CD-ROM}).
@example
-grub-mkrescue -o grub.iso
+grub2-mkrescue -o grub.iso
  @end example
-All arguments not explicitly listed as @command{grub-mkrescue} options are
+All arguments not explicitly listed as @command{grub2-mkrescue} options are
  passed on directly to @command{xorriso} in @command{mkisofs} emulation mode.
  Options passed to @command{xorriso} will normally be interpreted as
  @command{mkisofs} options; if the option @samp{--} is used, then anything
@@ -7235,10 +7252,10 @@ commonly used to add extra files to the image:
  @example
  mkdir -p disk/boot/grub
  @r{(add extra files to @file{disk/boot/grub})}
-grub-mkrescue -o grub.iso disk
+grub2-mkrescue -o grub.iso disk
  @end example
-@command{grub-mkrescue} accepts the following options:
+@command{grub2-mkrescue} accepts the following options:
@table @option
  @item --help
@@ -7266,15 +7283,15 @@ Use @var{file} as the @command{xorriso} program, rather 
than the built-in
  default.
@item --grub-mkimage=@var{file}
-Use @var{file} as the @command{grub-mkimage} program, rather than the
+Use @var{file} as the @command{grub2-mkimage} program, rather than the
  built-in default.
  @end table
-@node Invoking grub-mount
-@section Invoking grub-mount
+@node Invoking grub2-mount
+@section Invoking grub2-mount
-The program @command{grub-mount} performs a read-only mount of any file
+The program @command{grub2-mount} performs a read-only mount of any file
  system or file system image that GRUB understands, using GRUB's file system
  drivers via FUSE.  (It is only available if FUSE development files were
  present when GRUB was built.)  This has a number of uses:
@@ -7306,13 +7323,13 @@ even if nobody has yet written a FUSE module 
specifically for that file
  system type.
  @end itemize
-Using @command{grub-mount} is normally as simple as:
+Using @command{grub2-mount} is normally as simple as:
@example
-grub-mount /dev/sda1 /mnt
+grub2-mount /dev/sda1 /mnt
  @end example
-@command{grub-mount} must be given one or more images and a mount point as
+@command{grub2-mount} must be given one or more images and a mount point as
  non-option arguments (if it is given more than one image, it will treat them
  as a RAID set), and also accepts the following options:
@@ -7334,13 +7351,13 @@ Show debugging output for conditions matching @var{string}.
  @item -K prompt|@var{file}
  @itemx --zfs-key=prompt|@var{file}
  Load a ZFS encryption key.  If you use @samp{prompt} as the argument,
-@command{grub-mount} will read a passphrase from the terminal; otherwise, it
+@command{grub2-mount} will read a passphrase from the terminal; otherwise, it
  will read key material from the specified file.
@item -r @var{device}
  @itemx --root=@var{device}
  Set the GRUB root device to @var{device}.  You do not normally need to set
-this; @command{grub-mount} will automatically set the root device to the
+this; @command{grub2-mount} will automatically set the root device to the
  root of the supplied file system.
If @var{device} is just a number, then it will be treated as a partition
@@ -7349,7 +7366,7 @@ an entire disk in @file{disk.img}, then you can use this 
command to mount
  its second partition:
@example
-grub-mount -r 2 disk.img mount-point
+grub2-mount -r 2 disk.img mount-point
  @end example
@item -v
@@ -7358,18 +7375,18 @@ Print verbose messages.
  @end table
-@node Invoking grub-probe
-@section Invoking grub-probe
+@node Invoking grub2-probe
+@section Invoking grub2-probe
-The program @command{grub-probe} probes device information for a given path
+The program @command{grub2-probe} probes device information for a given path
  or device.
@example
-grub-probe --target=fs /boot/grub
-grub-probe --target=drive --device /dev/sda1
+grub2-probe --target=fs /boot/grub
+grub2-probe --target=drive --device /dev/sda1
  @end example
-@command{grub-probe} must be given a path or device as a non-option
+@command{grub2-probe} must be given a path or device as a non-option
  argument, and also accepts the following options:
@table @option
@@ -7382,16 +7399,16 @@ Print the version number of GRUB and exit.
  @item -d
  @itemx --device
  If this option is given, then the non-option argument is a system device
-name (such as @samp{/dev/sda1}), and @command{grub-probe} will print
+name (such as @samp{/dev/sda1}), and @command{grub2-probe} will print
  information about that device.  If it is not given, then the non-option
  argument is a filesystem path (such as @samp{/boot/grub}), and
-@command{grub-probe} will print information about the device containing that
+@command{grub2-probe} will print information about the device containing that
  part of the filesystem.
@item -m @var{file}
  @itemx --device-map=@var{file}
  Use @var{file} as the device map (@pxref{Device map}) rather than the
-default, usually @samp{/boot/grub/device.map}.
+default, usually @samp{/boot/grub2/device.map}.
@item -t @var{target}
  @itemx --target=@var{target}
@@ -7444,19 +7461,19 @@ Print verbose messages.
  @end table
-@node Invoking grub-script-check
-@section Invoking grub-script-check
+@node Invoking grub2-script-check
+@section Invoking grub2-script-check
-The program @command{grub-script-check} takes a GRUB script file
+The program @command{grub2-script-check} takes a GRUB script file
  (@pxref{Shell-like scripting}) and checks it for syntax errors, similar to
  commands such as @command{sh -n}.  It may take a @var{path} as a non-option
  argument; if none is supplied, it will read from standard input.
@example
-grub-script-check /boot/grub/grub.cfg
+grub2-script-check /boot/grub2/grub.cfg
  @end example
-@command{grub-script-check} accepts the following options:
+@command{grub2-script-check} accepts the following options:
@table @option
  @item --help
diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c
index 465a8e74e..b1d399d37 100644
--- a/grub-core/kern/misc.c
+++ b/grub-core/kern/misc.c
@@ -1303,7 +1303,7 @@ void __attribute__ ((noreturn))
  grub_abort (void)
  {
  #ifndef GRUB_UTIL
-#if defined(__i386__) || defined(__x86_64__)
+#if (defined(__i386__) || defined(__x86_64__)) && !defined(GRUB_MACHINE_EMU)
    grub_backtrace();
  #endif
  #endif


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to