I have HP notebook which came with freeDOS (MBR partitioned with two primary partitions). I have installed Windows 8.1 in Legacy mode by creating another primary partition. Yes, in Legacy mode though my notebook supports EFI. Then installed ubuntu 14.04 in 75GB unallocated free space.

After installation, GRUB2 is showing DOS and ubuntu options but not windows 8.1 option. Then I have installed BootRepair and ran recommended repair as suggested in forum (http://paste.ubuntu.com/7658680), but still it is not recognizing windows.

After googling I ran fixMbr from command prompt in windows live session for fixing windows issue. Then, the system was directly booting to windows (All my files were there). Then, through ubuntu live lession I again ran Bootrepair. But, the same issue repeated. GRUB2 is only showing DOS and ubuntu options but not windows 8.1 option.

So, If I fix windows issue, ubuntu is not booting. If I fix ubuntu issue, windows is not booting. I am only able to run one OS at a time. But, I need both. Please help me out..

Thanks in advance..

  • Your Windows in sda3 does not have a /boot/bcd, but you have both bootmgr & /boot/bcd in sda2 which is FAT32. Normally Windows 7 or 8 boot files are in a NTFS partition. But if you copy /boot/bcd into sda3 then grub2's os-prober should find sda3 as a bootable Windows. – oldfred Jun 19 '14 at 4:17

If you have Ubuntu still installed, try creating a menu entry manually and see if it works. Create a menu entry (by gksudo gedit /etc/grub.d/40_custom) and add the following contents:

menuentry "Windows" {
    set root=(hd0,2)
    chainloader +1

And run sudo update-grub. The value of root here should be 2, from the contents of the Boot Repair output that you posted. To find out for sure, try rebooting, then press c to get to the command line (as given in the instructions below the GRUB menu) ad try these commands until you see files that belong to the Windows partition:

ls (hd0,1)
ls (hd0,2)

The output of the first ls will list the partitions as GRUB recognizes them ((hd0,1) instead of sda and so on), so in the next few command you will try the partitions one by one (use the values listed by the first ls instead of (...,...). Once you see the files of Windows, say for ls (hd0,3), then do the following:

set root=(hd0,3)
chainloader +1

If it boots to Windows successfully, then replace (hd0,2) with (hd0,3) in the menu entry you created previously. (As you may guess, the menu entry lines are simply commands to GRUB.) If ls fails, you may need to load the NTFS modules:

insmod part_msdos
insmod ntfs

If so, add these lines to the menu entry before the set root line.

  • Excellent guide muru! Thank u soo much.. I was struggling for this since hours.. Your detailed explanation solved this.. BTW i have 2 doubts 1. Is it ok to have bootmanager in one place other than the software. I mean its in (hd0,2) 2. My HDD is parted in NTFS, FAT32 and booting in Legacy mode.is that OK for WINDOWS 8.1 x64 and ubuntu x64 – user991255 Jun 19 '14 at 13:16
  • @user991255 1. I'm not sure what you mean. Did you install Grub to (hd0,2)? Usually it doesn't matter where you install it to. 2. Yes, if the fat32 partition is for FreeDOS. If you're not using FreeDOS, you can format it to NTFS or ext4. Legacy mode works fine. – muru Jun 19 '14 at 17:14
  • now am able to boot both OS. My doubt is I made entry for (hd0,2) as suggested but windows is installed in (hd0,3) is that OK.. Thanks in advance – user991255 Jun 19 '14 at 20:39
  • @user991255, if it works, it's fine. :D Did Windows make that partition when you partitioned for installing it? It's fine, as you can see in the Boot Repair output, both 2 and 3 are marked for Windows. – muru Jun 19 '14 at 20:42

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.