Ubuntu 12.10 + Windows 8 in UEFI Mode?

#1
Hello,

I 've got a new notebook with W8 preinstalled. I want to be able to dual boot W8 and Ubuntu 12.10 but I didn't manage it so far.

The first time I tried I couldn't even recover the BCD with W8 recovery so I cloned (HDD->SSD) again.

I tried again, after I followed some instructions for linux and UEFI. This time I created a FAT32 partition flagged as bios_grub which I didnt't use afterall, a ext2 for grub_files and one ext4 partition for ubuntu. During install I've set bootloader in the ext2 partition.

I ve created the entries with EASYBCD but I am only able to boot W8 but not Ubuntu.

When I choose the linux entry I get an error:
....
File :\NST\AutoNeoGrub0.mbr
Status: 0xc000007b
...

How can I get this working?


Thanks in advance
 

mqudsi

Mostly Harmless
Staff member
#2
Linux on UEFI requires GRUB2 to be the main bootloader.
 

Mak 2.0

Mod...WAFFLES!?!?
Staff member
#4
You got it right, you cannot use EasyBCD. I am pretty sure it is straight forward when it says GRUB2 must be the main bootloader if you want Linux on UEFI. So no there is no other way to be able to use EasyBCD as this is something that the people who made Ubuntu and its ability to boot with UEFI has done.
 

mqudsi

Mostly Harmless
Staff member
#5
Microsoft blocks 3rd party chainloaders from the BCD menu for UEFI machines. We are researching workarounds, none have presented themselves as of yet.
 
#6
Microsoft blocks 3rd party chainloaders from the BCD menu for UEFI machines. We are researching workarounds, none have presented themselves as of yet.
Any news on this? We've been chainloading a customized Linux boot image from the BCD in Vista and Windows 7, but with Windows 8 w/ UEFI it fails. We're looking at making use of a boot CD, but chainloading from the BCD is still the better option for us. Do you know who, if anyone, is trying to get this to work?
 
#7
Ubuntu has boot repair option that will fix grub issues

While there are many threads online discussed about this issue. Here is the most elegant solution I found: using Boot-Repair tool. Here is how:

1. After installed ubuntu (make sure you can access internet), open the terminal:

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update


2. Press Enter.

3. Then type:

sudo apt-get install -y boot-repair && boot-repair


4. Press Enter


Now, let this software figures out everything for you. It will automatically generate the GRUB codes such that your Win8 can be booted.

The new EFI BIOS feature "Secure Boot" has to be disabled since current 12.04 LTS does not support it yet. The new version 12.10 adds this feature but its not stable. To disable it, reboot your laptop and press F1 to enter BIOS, then go to the "Security" option, disable the "Secure Boot".

Hello,

I 've got a new notebook with W8 preinstalled. I want to be able to dual boot W8 and Ubuntu 12.10 but I didn't manage it so far.

The first time I tried I couldn't even recover the BCD with W8 recovery so I cloned (HDD->SSD) again.

I tried again, after I followed some instructions for linux and UEFI. This time I created a FAT32 partition flagged as bios_grub which I didnt't use afterall, a ext2 for grub_files and one ext4 partition for ubuntu. During install I've set bootloader in the ext2 partition.

I ve created the entries with EASYBCD but I am only able to boot W8 but not Ubuntu.

When I choose the linux entry I get an error:
....
File :\NST\AutoNeoGrub0.mbr
Status: 0xc000007b
...

How can I get this working?


Thanks in advance
 

mqudsi

Mostly Harmless
Staff member
#9
The simplest solution is to setup GRUB2 as the default boot option in the EFI firmware (aka "BIOS") and configure GRUB2.efi to chainload bootmgr.efi instead of the other way around.
 
#10
As a relative newb, how do I do what you just suggested?

Addendum

jobby99,

Understand what you say we should try to do, but how do I get to the terminal when Ubuntu will not load???? Am having same problem as noted by easybooter
 
#11
As a relative newb, how do I do what you just suggested?

Addendum

jobby99,

Understand what you say we should try to do, but how do I get to the terminal when Ubuntu will not load???? Am having same problem as noted by easybooter
Load up a live CD, assuming the following:

/dev/sda1 = your EFI System Partition (ESP)
/dev/sda2 = Windows 8
/dev/sda3 = Swap
/dev/sda4 = Linux Partition
/dev/sda5 = Recovery partition

Manually boot up a live linux CD, and connect to the internet
Then issue the following commands

sudo -s # I hate having to remember to sudo everything and everything we're about to do requires sudo so you might as well become root
mkdir /media/linux
mount /dev/sda4 /media/linux/
[ -d /media/linux/boot/efi ] && echo ' ' || mkdir /media/linux/boot/efi
mount /dev/sda1 /media/linux/boot/efi
mount -o bind /dev/ /media/linux/dev/
mount -o bind /sys/ /media/linux/sys/
mount -o bind /proc/ /media/linux/proc/
chroot /media/linux

Congrats, you are now logged into your linux partition as root. Any software you run will run from your live CD's installed software but any software you install or uninstall and any file access performed by that software will happen on your linux partition rather than the live CD, from there you can install software, run update-grub, mess with the EFI System Partition, etc.

Kudos to Mukidohime (Matthew Rosewarne †) For teaching me how to mount bind the system directories and chroot.

That said, to make the GRUB2.efi the default, I'm not yet sure how to do that.