0

Despite the abundance of dual-boot issues lying in the World Wide Web, I decided to create the new topic with my specific question.

I have a laptop Asus K55V + UEFI + 500Gb HDD + Windows 8 upgraded to 8.1. The disk is divided on several partitions, according to GPT disks requirements, user’s partitions are C (Windows 8.1) and D (Data). I really want to shrink the drive D for adding new Linux partition, let's call it E, and do the following:

  1. Because of my BIOS is UEFI, is it possible to install Ubuntu on the partition E without using GRUB at all? May the UEFI prompt to load Windows (from C) or Linux (from E)? Is it possible?
  2. if #1 is not possible, I would like to have the following boot option: to install additional bootloader (GRUB2?) on some flash disk-on-key, it will be knowing about one OS only – Linux. Then, when necessary, it will be possible to boot Linux by simply inserting this disk-on-key to a USB slot.

By this way, I will not modify the preinstalled Windows with its EFI bootloader, and, at the same time, will have possibility to work with Linux. I think this is very optimal procedure, isn’t it? My question is what are concrete steps to achieve my goal?

  • 1
    Be sure to also backup efi partition as well as all of Windows before install. Then in worst case you can always restore system. But as answered below, grub2's efi boot files will be in a separate folder in the efi(ESP) partition. Some older K55N would not boot Ubuntu in UEFI mode, only BIOS boot mode. Newer K55NV has worked, not sure about your model. ubuntuforums.org/showthread.php?t=2151394 – oldfred Apr 11 '15 at 15:42
2

First, you say your "BIOS is UEFI," but that's not true. You almost certainly have no BIOS; you have a UEFI. This may sound like splitting hairs, but it's not; referring to an EFI/UEFI as a "BIOS" drags in a lot of assumptions that simply do not apply in the EFI world. ("UEFI" is essentially version 2.x of EFI, so I generally use "EFI," as it's the more general term.) Generally speaking, EFI is a replacement for BIOS, not an extension to it. There are some exceptions and caveats, though:

  • Some very early EFIs were built atop a conventional BIOS. One example I've seen is Gigabyte's Hybrid EFI. Such systems do have a BIOS, and it's used both to boot BIOS-mode OSes and to initialize the hardware for the benefit of the EFI.
  • Most modern EFIs for x86-64 systems include a Compatibility Support Module (CSM), which enables the EFI to use boot loaders written for BIOS. The CSM is to the EFI as WINE or dosemu is to Linux; but just as WINE does not turn Linux into Windows, the CSM does not make the EFI a BIOS.

Sorry if this seems long-winded and pedantic, but it deserves emphasis because I see a lot of people heading into EFI-land with BIOS assumptions that lead them into trouble. This is evident in your own question....

On an EFI-based computer, installing a second OS does not normally overwrite the boot loader of the first OS. Of course, you must make room for the second OS's partitions, but that's independent of the boot loader. Under EFI, boot loaders are stored as separate files on the EFI System Partition (ESP), which is a FAT partition with a type code of C12A7328-F81F-11D2-BA4B-00A0C93EC93B (EF00 in gdisk, the "boot flag" set in parted or GParted, "EFI System Partition" or "EFI boot partition" in the Ubuntu installer).

EFI determines which boot loader to use by entries stored in NVRAM. When you install Ubuntu, it will create its own boot loader (GRUB) on the ESP (stored in EFI/ubuntu), add that new boot loader to the computer's NVRAM-based list, and then set the Ubuntu entry to be the default. Ubuntu will not change the Windows boot loader, but that Windows boot loader will run only if you enter the computer's own boot manager and select it or if you chainload it from GRUB. Once you install Ubuntu, you can tweak these settings with the efibootmgr utility; for instance, you could set the Windows boot loader to be the default and then use the machine's built-in boot manager to select GRUB. To do this, you must first identify the existing entries by typing sudo efibootmgr and then set the boot order you desire (so that Windows is first) with the -o option, as in sudo efibootmgr -o 2,5 to make Boot0002 first and Boot0005 second.

Note that a Linux-capable boot loader is required to boot Linux. It doesn't have to be GRUB, but something is needed. Thus, your option #1 will work only if you install something manually. There are several EFI boot loaders for Linux available -- see my page on this subject for details. You could in principle install one of these on a USB flash drive, leaving the ESP and NVRAM untouched. I don't know what the point of that would be if you've got a regular disk-based installation of Ubuntu, though; it would be like trying to keep music out of an opera house by banning iPods within its walls.

If you want to keep GRUB from installing in Ubuntu, the trick is this:

  1. When you launch the Ubuntu installer, select the option to try Ubuntu before installing it, rather than the option to install it.
  2. When the desktop appears, open a Terminal window by clicking on the Ubuntu icon in the upper-left corner, typing terminal in the search field, and hitting enter or clicking the Terminal icon.
  3. In the Terminal window, type ubiquity -b. This launches the installer program (Ubiquity) with an option (-b) to not install a boot loader.

Once the install is finished, it will be up to you to install a boot loader yourself, whether it be to the ESP or to a USB flash drive. Again, see my EFI boot loaders page (referenced earlier) for information on what's available and basic installation instructions.

0

Option 1 is most probably possible, depending on your BIOS's implementation of UEFI.

GRUB can (and should, if your install disk was booted in UEFI mode or you installed the UEFI bootloader afterwards) install itself onto your EFI partition, and will not overwrite the Windows boot loader. You can then choose to boot (using your UEFI BIOS's boot menu) with the Windows boot loader or GRUB.

That should work out of the box, provided your UEFI BIOS isn't hardcoded to boot from /EFI/Boot/bootx64.efi on your EFI partition, and that the GRUB UEFI bootloader is installed.

  • What is the procedure to follow the option#1? Most of instructions in the web are explaining how to install Linux as the first OS replacing Windows. I am afraid to delete accidentally the Windows bootloader because this is my employer's laptop, I don't want to replace the preinstalled software. – RedSoft Apr 11 '15 at 13:34
  • I wouldn't do something like that on my employer's laptop, but that's just my personal opinion. Anyway, the Ubuntu Community Help Wiki has an article detailing how to boot the install disk in UEFI mode (and by extension, installing Ubuntu in UEFI mode). If you follow that, UEFI GRUB should be installed, keeping your Windows boot loader intact. – zhongfu Apr 11 '15 at 13:46
  • In case you mess up and accidentally delete your Windows boot loader, you can always re-install it easily. – zhongfu Apr 11 '15 at 13:52

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.