1

I'm trying to install a Linux Mint dual boot on an old Windows 7 laptop. The laptop has UEFI (plus legacy BIOS mode as you'd expect) and it seems that HP used the legacy setting when they installed Windows 7 on it.

When I start the Linux Mint install I get a warning about BIOS and UEFI, other operating systems becoming unbootable, only proceed if sure, etc. But since no alternative is offered (other than simply giving up and not installing Linux) I decided to proceed, and found that after install, GRUB only offered a Linux option.

So I've restored the Windows bootloader for now but I'm wondering what options are available for proceeding with dual-boot plans. I recall long ago using a bootloader called NeoGRUB so I'll take a look at that as a possible option, but all suggestions would be welcome.

3

When starting an installation for dual-boot from the OS installation media (of any OS) in a dual UEFI + legacy-capable system, you should look very carefully for any clues indicating which boot method will be used. If you use a firmware boot menu of some sort, you may see not one but two options for booting your installation media: to successfully enable OS selection in GRUB, you must choose to boot the installer using the same method your already-installed OS uses.

If you boot the installer using the legacy way, it will not have access to UEFI runtime services, and so the installer won't be able to fully install an UEFI bootloader. Likewise, if you boot the installer using the UEFI way, the installer won't have access to any BIOS EDD 3.0 information, and must fully rely on user input or heuristic guesses when deciding on which device the BIOS-style bootloader should be installed.

It might be technically possible to install a BIOS-style bootloader from an installer booted in UEFI-style, but I guess the distribution may have not consider that possibility significant enough to implement installer automation for.

It sounds like your laptop prefers UEFI-style boot, but the default installed Windows image was prepared using legacy BIOS style.

I would recommend the following ways to proceed:

  • if you can afford to redo the Linux installation and your BIOS settings include a "prefer legacy"/"prefer UEFI" setting, switch it to "prefer legacy" and run the installer again. It should now boot in legacy BIOS mode, and the installer should then automatically install a version of GRUB that is compatible with legacy BIOS. That will be able to boot your Windows too.

  • If you cannot find a way to get the installer started in legacy BIOS boot mode, or you wish to fix your current Linux installation instead of reinstalling, you could boot using a Live CD or installation-media-based recovery boot (I'm not certain which recovery methods are offered by Linux Mint), chroot to your installed Linux OS, remove any grub-efi-* packages and install the equivalent grub-pc-* packages in their place, and then use e.g. grub-install --target=i386-pc /dev/sda to explicitly install a legacy BIOS version of the GRUB bootloader.

  • If your installation media is a USB stick, you'll actually have a third option: you could find the \EFI\BOOT\bootx64.efi file on the installation media, and either rename it to something else or remove it altogether. That would make the installation media unbootable in the UEFI sense, forcing the system to use legacy methods to boot from it, even if BIOS settings offer no choice at all.

  • Thanks telcoM, really appreciate this! The BIOS options were pretty minimal but I'll take another look and hopefully your first solution will do the trick (reinstall of Linux is not a problem at all because it's just a fresh / blank install currently). – Sam Dec 12 '18 at 12:35
  • check the trick mentioned in unix.stackexchange.com/questions/522346/… – Dudi Boy Jun 2 at 9:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.