Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have an X-series Asus laptop which I just bough about a month ago. I want to dualboot Ubuntu - Windows.

I can easily access LiveUSB with both UEFI enabled and disabled. I heard that there were problems with UEFI, so I disabled it. After I've installed the system I couldn't access it. It just boots to Windows straight.

Another unusual thing, that never happened to me before was that the partition editor wanted me to create a BIOS reserved area, which I did, but not at the beginning of the table.

Any ideas how to access the Ubuntu partition?

As far as I can guess both Windows and Ubuntu have to be both of the same type of boot, either Legacy or EFI. This is not the case of what I have now. So, if I reinstall Ubuntu in UEFI mode that correlates with my Windows type, will I then be able to boot into it?

I have a constraint, my laptop doesn't have a CD ROM, so I cannot reinstall WIndows, nor can I move around the Windows recovery partition.

This is the boot-repair report :

http://paste.ubuntu.com/1354254/

SOLUTION

I've enabled UEFI in BIOS, and reinstalled Ubuntu with UEFI enabled. It works fine now, although if I select Windows from the GRUB menu, it doesn't work. But I can live with that, since I can just select Windows boot from the BIOS instead.

share|improve this question
    
For information, the 'blkid' system tool fails in your case, i created a bug report: bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1078635 –  LovinBuntu Nov 14 '12 at 9:33
    
LovinBuntu has posted one possible GRUB entry for booting Windows. There are others out there, too. Getting them to work seems to be hit-or-miss; what works on one system doesn't work on another. Another alternative is to install rEFInd (rodsbooks.com/refind) or gummiboot (freedesktop.org/wiki/Software/gummiboot). These are boot managers that can select your boot OS. In fact, they can both boot your Ubuntu 12.10 kernels directly, without relying on GRUB. –  Rod Smith Nov 16 '12 at 23:44
add comment

2 Answers 2

up vote 1 down vote accepted

It sounds like Windows was installed in EFI mode. (Evidence: You refer to a "BIOS reserved area," by which I believe you mean a BIOS Boot Partition, which is valid only on GPT disks. Since Windows will boot from a GPT disk only in EFI mode, Windows must be installed in EFI mode. This analysis could be incorrect if I'm misinterpreting what you mean by a "BIOS reserved area," though.) A BIOS Boot Partition in Linux means that Linux is booting in BIOS/legacy mode. The two, as you've correctly inferred, are awkward to switch between on most systems.

There are several possible solutions. This list is not exhaustive:

  • Use your firmware's boot manager -- All modern systems offer a built-in boot manager, usually accessed by hitting F8, F10, F12, or some other key at boot time. It pops up and gives you boot options. On most UEFI systems, those options include both BIOS/legacy and UEFI boot options. Thus, you can select your OS by using this feature. Some UEFI implementations, though, provide such a poor built-in boot manager that this isn't a practical option, or it may not work at all.
  • Install a Linux EFI boot loader -- Ubuntu uses an EFI version of GRUB 2 for this, in the grub-efi package. Installation will be tricky, though; unless you're booted in EFI mode, installation will be incomplete, so you'll need to use an EFI-booted emergency system to do the installation. There are other EFI boot loaders available; see this page of mine for details. (IMHO, GRUB 2 is the worst of them, so alternatives are worth investigating.)
  • Use rEFInd -- The rEFInd program, which I maintain, is an EFI boot manager that can launch an EFI boot loader or (on many, but not all, UEFI systems) a BIOS-mode boot loader. You can install rEFInd from Windows and then try editing its refind.conf file to add hdbios to its scanfor line. If this works, you'll then get a rEFInd boot menu that shows Windows and a generic option. The generic option will boot your BIOS-mode GRUB. If you installed Ubuntu 12.10 or if you're comfortable compiling your own kernel, you can use rEFInd to boot Linux in EFI mode, too; rEFInd is one of those alternative EFI boot programs noted in the previous option. You'll almost certainly need to adjust the configuration a bit to boot Ubuntu in EFI mode from rEFInd, given your current setup. See rEFInd's documentation page on booting Linux for details.
  • Reinstall Ubuntu -- You can wipe your Ubuntu installation and re-install it in EFI mode. This is the easiest option to describe, and it may be the easiest to do; but you'll learn the least doing it. It's also not guaranteed to work; EFI-mode installation still has quirks and pitfalls, many of them system-specific.
  • Revert to BIOS -- You can wipe the hard disk of all data and re-install both OSes in BIOS mode. This is probably more effort than it's worth, and the Windows media you can create from files on your Windows installation may not even support it.
share|improve this answer
add comment
  • So, if I reinstall Ubuntu in UEFI mode that correlates with my Windows type, will I then be able to boot into it?

Yes (with little additional operations). Here is how to do it:

  1. Setup your BIOS to boot in UEFI mode
  2. From a Ubuntu disk, use Gparted to delete the Ubuntu partitions
  3. Run the Ubuntu installer to "Install Ubuntu alongside Windows". It will install Ubuntu in UEFI mode.
  4. Reboot the pc, it will show a GRUB menu with valid Ubuntu entries, but invalid Windows entries. Now let's add a valid entry: boot into your installed Ubuntu (default line of the GRUB menu), in a terminal (or Alt+F2) type: gksudo gedit /etc/grub.d/40_custom , press Enter, type your password, press Enter again. At the bottom of the text file that will open, copy paste the paragraph below (remove the blank lines).

menuentry WindowsUEFI {

search --fs-uuid --no-floppy --set=root 04B0-92AD

chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi

}

Save the file. Close the text editor. Then type the following in a terminal: sudo update-grub. Reboot the PC, you should now have a valid WindowsUEFI entry in the GRUB menu.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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