On 01/21/2019 09:05 AM, Pierre Labastie via lfs-dev wrote:
On 21/01/2019 11:09, Xi Ruoyao via lfs-dev wrote:
On 2019-01-21 10:44 +0100, Pierre Labastie via lfs-dev wrote:
Hi,

My machine has an UEFI BIOS, so that I rarely run grub-install. But yesterday,
I built a new qemu VM, with a non-UEFI (virtual) BIOS. When running
grub-install, it failed with a message (sorry, I haven't saved it) telling
that it could not find /usr/lib/grub/x86_64-efi. Running "grub-install --help"
returned:
---------
[...]
--target TARGET    install GRUB for TARGET platform [default=x86_64-efi]
[...]
---------
so I had to run "grub-install --target i386-pc /dev/sda". But now that I have
done that, "grub-install --help" returns:
---------
[...]
--target TARGET    install GRUB for TARGET platform [default=i386-pc]
[...]
---------

So the default seems to be what is already installed. Checking the source for
grub-install confirms that. I must have taken a virtual disk used for a former
VM with UEFI BIOS.

No.  Grub 2.02 is detecting the target dynamically at runtime by checking if
/sys/firmware/efi is empty.  At first time your system was booted via UEFI so
this is not empty.  But at the second time your system was booted via Legacy
BIOS so this is empty.

You are right about the process, but what amazes me is that the first boot was
not particularly EFI. I had a DOS partitioning (not GPT), and no /boot/EFI
dir, and yet it must have found something in /sys/firmware/efi since it
proposed x86_64 as the default (I do have the EFI switches on in the kernel).
Well, looks like it will be hard to reproduce.


Should we add this switch (--target i386-pc) to the grub-install command in
the book?

If the host is booted via UEFI we'll need that to install a non-UEFI Grub.
But I think it's dangerous (may break the booting process of the host).  We
should explain this option more seriously (maybe in a "NOTE" or even
"CAUTION").


Yes, that may break machines with only UEFI boot. I think the command should
be written without "--target", as it is now, but a note should be added to
explain that the --target option may be used if the wrong if the application
default is wrong

Agree.  Please do that when you get a chance.

  -- Bruce

--
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to