Question regarding Grub tools and ELevate

Hi All,

I have a Hetzner server running on Almalinux 8.10, And i was told by Hetzner the server model is a UEFI only server and therefore requires an EFI compatible system.
Now is the issue that my backup tool Jetbackup requires grub2-tools to create a full server backup.

Besides the fact that making good backups is important, the fact that i would like to Elevate my 8.10 server to 9.5 makes it even more important. Also, googling i did not really find a how to update Alma 8.10 to 9.5(?)

My idea was to install the needed packages with this command:

dnf install grub2-tools --exclude=grub2-efi-x64

But my question is, do you guys think i can do this without breaking my server? This server runs Directadmin.

[06/Feb/2025 18:52:20 +0000] [PID 2936725] JetBackup Version: 5.3.14.5 Panel Version: DirectAdmin 5.3.14.5 (RELEASE) Hostname: XXXXXX
[06/Feb/2025 18:52:20 +0000] [PID 2936725] Backup Name: Test full backup of server (#67a3ca114d78c87129051852)
[06/Feb/2025 18:52:20 +0000] [PID 2936725] Backup Type: Directories
[06/Feb/2025 18:52:20 +0000] [PID 2936725] Backup Structure: Incremental (1)
[06/Feb/2025 18:52:20 +0000] [PID 2936725]
[06/Feb/2025 18:52:21 +0000] [PID 2936725] Backing up to “BCK01-114” destination (#679503be322031be430baed2)
[06/Feb/2025 18:52:21 +0000] [PID 2936725]
[06/Feb/2025 18:52:21 +0000] [PID 2936725] Executing pre backup hook
[06/Feb/2025 18:52:21 +0000] [PID 2938279] Starting Server Backup (BMR)
[06/Feb/2025 18:52:21 +0000] [PID 2938279] Dumping JetBackup database
[06/Feb/2025 18:52:21 +0000] [PID 2938279] Transferring backup to destination “BCK01-114”
[06/Feb/2025 18:52:23 +0000] [PID 2938279] Deleting cache files
[06/Feb/2025 18:52:24 +0000] [PID 2938279] Reindexing full database
[06/Feb/2025 18:52:24 +0000] [PID 2938279] Syncing “/usr/local/jetapps/usr/jetbackup5/workspace/backup/67a3ca114d78c87129051852/database/” to “jetbackup_4_1_67a3ca114d78c87129051852/snap.1/database”
[06/Feb/2025 18:52:24 +0000] [PID 2938279] Syncing “/” to “jetbackup_4_1_67a3ca114d78c87129051852/snap.1/files”
[06/Feb/2025 18:52:45 +0000] [PID 2938279] Reindexing full database
[06/Feb/2025 18:52:45 +0000] [PID 2938279] Uploading backup exports
[06/Feb/2025 18:52:47 +0000] [PID 2938279] Creating ISO image for destination “BCK01-114”
[06/Feb/2025 18:53:43 +0000] [PID 2938279] [ERROR] Failed creating ISO image. Error: Broken symlink ‘/etc/grub2.cfg’ in recovery system because ‘readlink’ cannot determine its link target
grub2-mkstandalone may fail to make a bootable EFI image of GRUB2 (no /usr//grub/x86_64-efi/moddep.lst file)
ERROR: Failed to make bootable EFI image of GRUB2 (error during grub2-mkstandalone of /usr/local/jetapps/usr/jetbackup5/workspace/backup/67a3ca114d78c87129051852/679503be322031be430baed2/rear.LEM8ubwJ36TUZtA/tmp/mnt/EFI/BOOT/BOOTX64.efi)
Some latest log messages since the last called script 250_populate_efibootimg.sh:
2025-02-06 19:53:40.259744167 grub2-mkstandalone may fail to make a bootable EFI image of GRUB2 (no /usr//grub/x86_64-efi/moddep.lst file)
2025-02-06 19:53:40.261182607 GRUB2 modules to load: diskfilter ext2 fat mdraid1x part_gpt part_msdos
Some messages from /usr/local/jetapps/usr/jetbackup5/workspace/backup/67a3ca114d78c87129051852/679503be322031be430baed2/rear.LEM8ubwJ36TUZtA/tmp/rear.mkrescue.stdout_stderr since the last called script 250_populate_efibootimg.sh:
/usr/local/jetapps/usr/share/rear/lib/_input-output-functions.sh: line 525: type: grub-mkstandalone: not found
/usr/local/jetapps/usr/share/rear/lib/_input-output-functions.sh: line 525: type: grub-probe: not found
grub2-mkstandalone: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn’t exist. Please specify --target or --directory.
Use debug mode ‘-d’ for some debug messages or debugscript mode ‘-D’ for full debug messages with ‘set -x’ output
Aborting due to an error, check /usr/local/jetapps/var/log/rear/rear-srv1.log for details
sh: line 1: 2938538 Terminated /usr/local/jetapps/usr/bin/rear -v mkrescue

[06/Feb/2025 18:53:43 +0000] [PID 2938279] Backup Failed
[06/Feb/2025 18:53:43 +0000] [PID 2938279]
[06/Feb/2025 18:53:43 +0000] [PID 2936568] Failed
[06/Feb/2025 18:53:44 +0000] [PID 2936725] Executing post backup hook

If the “virtual metal” offers only UEFI and no legacy, then the installed system does
already have grub2-efi-x64 and requires it. Furthermore, the grub2-tools does
not seem to require grub2-efi-x64 (as per dnf rq --requires grub2-tools )

Not only that, but all of my Alma systems (8 and 9) have had grub2-tools installed by initial installer run.


Do you have in Hetzner an Alma 8 image that lacks grub2-tools?
Why the attempt to exclude efi-something, when efi is compulsory? Why would it affect grub2-tools anyway?

Hi,

My idea was to run this command to install the tools like this because i’m missing them right now.
But i’m afraid to break my Grub.

I want to install the grub2-tools because of :
/usr/local/jetapps/usr/share/rear/lib/_input-output-functions.sh: line 525: type: grub-mkstandalone: not found
/usr/local/jetapps/usr/share/rear/lib/_input-output-functions.sh: line 525: type: grub-probe: not found
grub2-mkstandalone: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn’t exist. Please specify --target or --directory.

The name implies that “grub2-tools” provides utilities. Adds something.

If you run:

dnf install grub2-tools

It will show what packages it would install/remove, you you have to ‘Y’ for it to actually do it.

You can ask from repo what files a package provides:

dnf rq -l grub2-tools

I doubt that grub2-tools, or other packages installed with it would replace any of the files that the boot process does use.

Thanks, it seems like it’s fixed now (also ran this :
dnf install grub2-efi-x64-modules) now it works.

Now the next question is, what is the best way to go from alma 8.10 to 9.5?

IMHO, a fresh install, deployment of appropriate config, and transfer of data.


I do use configuration management tool called Ansible. Red Hat documents use of “System Roles”. (I don’t use graphical tools, like “panel”, Directadmin, etc.) In “Ansible playbooks” I have list of required packages and config recorded, and the tool deploys them to target systems. Hence reinstall and install of new system became rather trivial. One naturally has to adjust the playbooks when targets change from el8 to el9.