I have already viewed a dozens of answers. I have a different problem here. I had windows 10 installed. I recently dual booted my lenovo ideapad 310 with ubuntu 16.04. But since then my grub menu is not showing windows 10. Before installing ubuntu i tried to enter my BIOS but could not do that. Lenovo community forums suggested that i restart (not shutdown) my windows and then open BIOS when it restarts. And it worked and i changed boot order and installed ubuntu.

Now here are some points i want to mention

  • Both operating systems are installed under Legacy support mode.
  • I am able to view and mount windows partition in ubuntu.
  • I have already used boot-repair but no luck.

Here are some outputs from some commands

sudo update-grub

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.4.0-77-generic
Found initrd image: /boot/initrd.img-4.4.0-77-generic
Found linux image: /boot/vmlinuz-4.4.0-21-generic
Found initrd image: /boot/initrd.img-4.4.0-21-generic
Found FreeDOS on /dev/sda1

sudo fdisk -l

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xd9fa2484

Device     Boot      Start        End    Sectors   Size Id Type
/dev/sda1  *          2048    2050047    2048000  1000M  b W95 FAT32
/dev/sda2          2052094  929521663  927469570 442.3G  f W95 Ext'd (LBA)
/dev/sda3        929521664 1951702742 1022181079 487.4G  7 HPFS/NTFS/exFAT
/dev/sda4       1951703040 1953519615    1816576   887M 27 Hidden NTFS WinRE
/dev/sda5          2052096   75505220   73453125    35G 83 Linux
/dev/sda6         75507712  179953663  104445952  49.8G 83 Linux
/dev/sda7        179955712  188342271    8386560     4G 82 Linux swap / Solaris
/dev/sda8        188344320  929521663  741177344 353.4G  7 HPFS/NTFS/exFAT

Partition 2 does not start on physical sector boundary.
Partition table entries are not in disk order.

/dev/sda5 is my root for ubuntu

/dev/sda6 is my home for ubuntu

/dev/sda8 is extra space

/dev/sda1 is FreeDos i guess, i am not sure.

Here is my boot info summary generated by boot-repair

boot info summary

  • 1
    What happens if you try to boot the FreeDos? Is that show in in grub? Doesn't that boot WIndows? – terdon May 3 '17 at 8:33
  • You are a life saver. How could not i try that before. Freedos is actually booting my windows. Can you please explain the reason behind this and i will accept that as an answer. – Kapil Garg May 3 '17 at 8:46

It looks like grub is identifying the Windows boot loader which is on /dev/sda1 as FreeDOS. Your actual Windows install is on /dev/sda3, and on /dev/sda1 you will have nothing but Windows' own boot loader. Why that would be detected as FreeDOS, I don't know, but that's what is apparently happening.

So, just boot into FreeDOS and you should boot into Windows. If you want to change the name, edit /boot/grub/grub/cfg, find a line that starts with menuentry and mentions FreeDOS, and change that line to read Windows. It should look something like this (not exactly like this, this is just an example the details will be different; only change the text inside the quotes):

menuentry "Windows 7 BIOS MBR" {
     insmod part_msdos
     insmod chain
     drivemap hd0 hd1
     chainloader (hd1,msdos2)+1
|improve this answer|||||

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.