diff options
author | zsdc <taras@vyos.io> | 2024-03-13 00:40:09 +0200 |
---|---|---|
committer | zsdc <taras@vyos.io> | 2024-03-13 00:40:09 +0200 |
commit | f74923202311e853b677e52cd83bae2be9605c26 (patch) | |
tree | 81677eaa9f6e6993cb1129fba5a26a68ea83a54f /src/op_mode | |
parent | a4e21377271cfcf6359ed23db8a90129e264ba4d (diff) | |
download | vyos-1x-f74923202311e853b677e52cd83bae2be9605c26.tar.gz vyos-1x-f74923202311e853b677e52cd83bae2be9605c26.zip |
grub: T4548: Fixed configuration files order
To iterate files on ext* file systems GRUB reads their inodes one by one,
ignoring names. This breaks our configuration logic that relies on proper
loading order.
This commit adds a helper `sort_inodes()` that needs to be used whenever GRUB
configuration files are created. It recreates files, changing their inodes in a
way where inodes order matches alphabetical order.
Diffstat (limited to 'src/op_mode')
-rwxr-xr-x | src/op_mode/image_installer.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/op_mode/image_installer.py b/src/op_mode/image_installer.py index 85ebd19ba..b0567305a 100755 --- a/src/op_mode/image_installer.py +++ b/src/op_mode/image_installer.py @@ -786,6 +786,10 @@ def install_image() -> None: grub.install(install_target.name, f'{DIR_DST_ROOT}/boot/', f'{DIR_DST_ROOT}/boot/efi') + # sort inodes (to make GRUB read config files in alphabetical order) + grub.sort_inodes(f'{DIR_DST_ROOT}/{grub.GRUB_DIR_VYOS}') + grub.sort_inodes(f'{DIR_DST_ROOT}/{grub.GRUB_DIR_VYOS_VERS}') + # umount filesystems and remove temporary files if is_raid_install(install_target): cleanup([install_target.name], |