grub: update search parameter

[ Upstream commit 42b530581f7246b3143ee50e3c6f981dcbb1dc74 ]

Grub would report an error message in boot stage as below:

   "error: no such device: ((hd0,gpt1)/EFI/BOOT)/EFI/BOOT/grub.cfg"

Consequently, the root variable is not set, and the intended protection
against cross-device configuration loading (the purpose of the original 2014 commit)
is lost.

The most robust fix is to use the --hint parameter.
This separates the search target from the device hint, avoiding
fragile string concatenation and supporting both prefixed and
non-prefixed $cmdpath formats.

Fixes: 5ce73b6055ac ("grub: add cmdpath to grub configuration file")
(From OE-Core rev: 2f509e353e2fc04923fc742312c81ed69b419643)

Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
This commit is contained in:
Xiangyu Chen
2026-04-23 15:25:31 +08:00
committed by Paul Barker
parent 95cfdc68bf
commit 4ba20a90ff

View File

@@ -1,2 +1,2 @@
search.file ($cmdpath)/EFI/BOOT/grub.cfg root
search --file --set=root --hint-efi=$cmdpath /EFI/BOOT/grub.cfg
set prefix=($root)/EFI/BOOT