grub4dos
grub4dos copied to clipboard
grub4efi issue with spaces in chainloader parameters
If passing a filename using vdisk= it does not accept spaces. I tried with and without the \ in front of the space
However, in grub4dos, I use kernel and it does work with both leading \ or no \ in front of space
kernel /ipxe.krn vdisk=/_ISO/LINUX/Ubuntu Mint.vdi.vtoy
initrd /vdiskchain
The same chainloader command line under grub2 UEFI64 (grubfm) works OK.
chainloader (${user})/boot/grubfm/vdiskchain vdisk=${grubfm_path}
The chainloader of G4E directly passes the parameters to the UEFI firmware for processing. have a try:“vdisk=/_ISO/LINUX/Ubuntu Mint.vdi.vtoy"
The example of grub2 is different. It uses variables, which will resolve the space parameter.
using double-quotes works :-)
“vdisk=/_ISO/LINUX/Ubuntu Mint.vdi.vtoy"
Is this a bug?
Does help text need modifying to specify quotes needed ?
P.S. The \ character must be removed - or else error
:.vtoy
# path must not have device name - must remove \ preceding spaces
errorcheck off
call :getpath %ISOC%
chainloader (bd)/_ISO/e2b/grub/vdiskchain "vdisk=%getpath%"
boot
:getpath
set getpath=%~p1%~n1%~x1
echo -e %getpath% | set getpath=
goto :eof
Does help text need modifying to specify quotes needed `?
I think it's Microsoft's rule
The same chainloader command line under grub2 UEFI64 (grubfm) works OK. chainloader (${user})/boot/grubfm/vdiskchain vdisk=${grubfm_path}
no double-quotes are used for grub2