Ubuntu – Dual-boot Ubuntu 12.10 on UEFI along Windows 8 (GRUB – error: can’t find command drivemap)

dual-bootsecure-bootuefiwindows 8

Hello after a successfull installation of Ubuntu 12.10 amd64, I am now unable to boot Windows 8.

Here are my actions:

  1. Made room (15 GB) for Ubuntu from Windows 8 Computer Managment
  2. Boot Ubuntu 12.10 amd64 LiveUSB with EFI and with Secure Boot enabled
  3. Created 2 new partitions at the end (13 GB Ext4 Root amd 2 GB Swap)
  4. Selected Windows 8 EFI System Partition to install bootloader

Grub gives me at boot:

  1. Ubuntu (works without problems)
  2. Windows Recovery Environment (lots of errors)
  3. Windows 8 (2 error messages describe just below)

The 2 error messages are:

  • error: can't find command drivemap.
  • error: invalid EFI file path

Best Answer

I found a temporary solution.

Add a custom entry to GRUB bootmenu

Append the code below to /etc/grub.d/40_custom.

menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

You can use Ctrl+Alt+T to open a terminal and run sudo nano /etc/grub.d/40_custom, then copy and paste the code. Finally then press Ctrl+O to save and Ctrl+X to leave.

Heads up: hd0,gpt1 here is the ID of my EFI System Partition (ESP). If your ESP is not the first partition on your first harddrive during boot, then yours is different! E.g. hd1,gpt2 for the second partition on the second drive.

Replace part_gpt with part_msdos if the drive uses MBR and legacy partitioning and also change hd0,gpt1 to hd0,msdos1 respectively.

Apply changes to GRUB

Simply run the following command, which should generate a new GRUB configuration, including the new custom entry:

sudo update-grub

Now reboot, you should be able to boot Windows 8 now. If not, and Windows complains about corrupted BCD configuration, then continue on superuser: How can I repair the Windows 8 EFI Bootloader?


Warning: On some occasions, if you boot Windows 8, GRUB will be replaced by Windows Boot Manager as default boot manager.