#2893 Issue closed: RHEL 9.1: UEFI ISO: "type: grub2-mkstandalone: not found" (it is provided by the grub2-tools-extra RPM)

Labels: support / question, fixed / solved / done

E34rrsff opened issue at 2022-12-03 21:44:

  • ReaR version ("/usr/sbin/rear -V"):

2.6 / 2020-06-17

  • OS version ("cat /etc/os-release" or "lsb_release -a" or "cat /etc/rear/os.conf"):

Red Hat Enterprise Linux 9.1

  • ReaR configuration files ("cat /etc/rear/site.conf" and/or "cat /etc/rear/local.conf"):
OUTPUT=ISO
OUTPUT_URL=file:///home/e34/Backups/
  • Hardware vendor/product (PC or PowerNV BareMetal or ARM) or VM (KVM guest or PowerVM LPAR):

PC

  • System architecture (x86 compatible or PPC64/PPC64LE or what exact ARM device):

x86_64

  • Firmware (BIOS or UEFI or Open Firmware) and bootloader (GRUB or ELILO or Petitboot):

UEFI & GRUB 2.06

  • Storage (local disk or SSD) and/or SAN (FC or iSCSI or FCoE) and/or multipath (DM or NVMe):

NVME SSD

  • Storage layout ("lsblk -ipo NAME,KNAME,PKNAME,TRAN,TYPE,FSTYPE,LABEL,SIZE,MOUNTPOINT"):
`-/dev/mapper/luks-976gb693-db29-4547-a788-62468939537e
                        /dev/dm-0
                              /dev/nvme0n1p3
                                            crypt LVM2_m       475.9G 
    |-/dev/mapper/[device]--vg-root
    |                   /dev/dm-1
    |                         /dev/dm-0
    |                                       lvm   ext4            80G /
    |-/dev/mapper/[device]--vg-swap
    |                   /dev/dm-2
    |                         /dev/dm-0
    |                                       lvm   swap   swap      8G [SWAP]
    `-/dev/mapper/[device]--vg-home
                        /dev/dm-3
                              /dev/dm-0
                                            lvm   ext4         387.9G /home
  • Description of the issue (ideally so that others can reproduce it):

rear mkrescue will not work. Verbose shows the error

/usr/share/rear/lib/_input-output-functions.sh: line 476: type: grub-mkstandalone: not found

Any fix?

will-code-for-pizza commented at 2022-12-04 15:53:

Probably this helps:

# yum -y install grub2-efi-x64-modules

will-code-for-pizza commented at 2022-12-04 15:54:

https://github.com/rear/rear/issues/2783

E34rrsff commented at 2022-12-04 17:50:

I already installed that package, and I don't think it helps systems with UEFI.

❯ dnf list --installed | grep x64-mod
grub2-efi-x64-modules.noarch                  1:2.06-46.el9                  @rhel-9-for-x86_64-baseos-rpms

jsmeix commented at 2022-12-05 09:43:

@E34rrsff
"type: grub-mkstandalone: not found"
means that a program called grub-mkstandalone
cannot be found in $PATH of the user who runs rear.

For example on my system something like:

# echo $PATH
/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin

# cp /usr/bin/true /home/johannes/bin/johannes_true

# /home/johannes/bin/johannes_true && echo y
y

# type johannes_true
-bash: type: johannes_true: not found

So you need to find out if you have grub-mkstandalone
installed at all and if yes where it is installed
(i.e. in which directory grub-mkstandalone is) and
then you need to check if this directory is in $PATH
of the user who runs rear (i.e. the user 'root').

I am not a Red Hat user so I cannot check myself
how things are on Red Hat Enterprise Linux 9.1

jsmeix commented at 2022-12-05 11:49:

The relevant code parts for

/usr/share/rear/lib/_input-output-functions.sh: line 476: type: grub-mkstandalone: not found

are for ReaR 2.6
the function has_binary() that calls type $bin at
https://github.com/rear/rear/blob/rear-2.6/usr/share/rear/lib/_input-output-functions.sh#L476
and its call has_binary grub-mkstandalone at
https://github.com/rear/rear/blob/rear-2.6/usr/share/rear/lib/uefi-functions.sh#L59

E34rrsff commented at 2022-12-05 21:06:

Thanks for the extra info. Running find / -iname *mkstandalone* confirms that the file is missing on my system. I found that installing grub2-tools-extra provides grub-mkstandalone in /usr/bin. Running rear mkrescue works now, although "Did not find /boot/grub2/locale files (minor issue for UEFI ISO boot)" shows up in verbose output. Unsure if that's important.

jsmeix commented at 2022-12-06 08:34:

@E34rrsff
thank you for the feedback what actually makes it work also for you!
There are so many Linux distributions each one with its own special things
that it is impossible for us to imagine how ReaR behaves on each of them
so we appreciate explicit feedback.

The code for
"Did not find /boot/grub2/locale files (minor issue for UEFI ISO boot)"
in ReaR 2.6 is at
https://github.com/rear/rear/blob/rear-2.6/usr/share/rear/output/ISO/Linux-i386/250_populate_efibootimg.sh#L105

I am not a GRUB expert but I think localization is optional
so without localization you get GRUB texts only in English
(or more precisely you get the texts as is
in the GRUB source code - i.e. untranslated).

On my system I have several GNU message catalog *.mo files
in /boot/grub2/locale

Perhaps you may install one more RPM package that contains those
localization files for GRUB (if you need localization for GRUB).

jsmeix commented at 2022-12-06 11:13:

@pcahyna
I assigned this (already solved) issue to you FYI
because it is a Fedora / Red Hat specific issue.
Perhaps Fedora / Red Hat specific code might help here
provided it can be maintained with reasonable effort, cf.
https://github.com/rear/rear/issues/2674#issuecomment-912374865


[Export of Github issue for rear/rear.]