0

I had two separate SSDs. One has a Win7 on it, and the other with Ubuntu. Used to boot from the Ubuntu one and this way I could select Win7 or Ubuntu.

The Ubuntu SSD died on me yesterday unexpectedly (good times, hurray..) so got a new one, installed Ubuntu 14.04.3 on it, but this time with EFI boot partition. As recommended here:

So now, with sudo parted -l I get:

Win7 SSD

Partition Table: msdos
Number  Start   End    Size   Type     File system  Flags
 1      1049kB  106MB  105MB  primary  ntfs         boot
 2      106MB   256GB  256GB  primary  ntfs

Ubuntu SSD

Partition Table: gpt
Number  Start   End     Size    File system     Name  Flags
 1      1049kB  536MB   535MB   fat32                 boot
 2      536MB   50.5GB  50.0GB  ext4
 3      50.5GB  241GB   190GB   ext4
 4      241GB   250GB   9523MB  linux-swap(v1)

My problem is, no matter what I try I cannot get Ubuntu to show Win7 as an option in the boot loader menu as it used to have.

Mounting the Win7 SSD in ubuntu and running update-grub did not add it to the boot loader menu. sudo os-probe returns nothing. Running boot-repair did not solve anything unfortunately neither. Adding a manual entry to /etc/grub.d/40_custom:

menuentry "Windows 7" {
search --fs-uuid --no-floppy --set=root F977-F4AF 
chainloader (${root})/efi/Microsoft/Boot/bootmgfw.efi
}

or a more elaborate one like this did not solve it neither..

I can easily boot into Windows by selecting changing the boot order in the BIOS, but it would be really nice to have it as an option in the boot-loader menu of Ubuntu as I used to have..

Did I screw up things permanently by having Win7 with MBR and Ubuntu as GPT?

Thanks a lot for any suggestions in advance!

1 Answer 1

1

You've got a mixed-boot-mode setup -- Ubuntu is booting in EFI mode and Windows in BIOS mode. This is NOT a good thing. You have several choices, in roughly increasing order of difficulty:

  • Use your firmware's boot manager (the same one you use to boot from an external disk) to select between Ubuntu and Windows. (Ubuntu will be listed as such, but Windows will probably be identified by the drive make and/or model.)
  • Install my rEFInd boot manager in Ubuntu. You must then edit /boot/efi/EFI/refind/refind.conf: Uncomment the scanfor line and ensure that hdbios is among the options. This should enable you to boot Ubuntu in EFI mode or Windows in BIOS mode. This is harder than the preceding option in the short term but easier in the long term.
  • Install a BIOS-mode boot loader for Ubuntu and boot both OSes in BIOS mode.
  • Re-install Ubuntu in BIOS mode and boot both OSes in BIOS mode.
  • Convert Windows to boot in EFI mode, as described here.
  • Re-install Windows in EFI mode. You'll definitely have to repartition the Windows disk.

Some of these options might not work in all cases. For instance, some EFIs don't support the sort of easy mode-switching required for the first two options. Given that you've created this situation, it's doubtful if your EFI is one of the primitive ones that can't handle it, but it might be.

2
  • Hi Rod, thanks so much for the quick answer. I'll be away for a week from tomorrow, but will try these as soon as I get back and report back! Thanks again! Nov 18, 2015 at 22:09
  • Massively sorry for the half year long wait, but I just got around to try this, and it worked like a charm.. Your fantastic boot loader did.. Simply did what you said and now I have this custom funky looking bootloader screen and I can easily switch between windows7 in bios mode and ubuntu in efi mode. thanks so much, and sorry again for the wait.. Jun 8, 2016 at 10:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .