First, be aware that many tablets have 64-bit CPUs and 32-bit EFIs. In principle, such computers are best used with 32-bit OSes, and in fact they generally ship with 32-bit versions of Windows; however, 32-bit versions of Ubuntu generally ship with installers that lack EFI boot loaders. It's possible to install either 32-bit or 64-bit Ubuntu on such a computer by jumping through some hoops (see here for an introduction to this topic). A 32-bit GRUB can boot a 64-bit kernel or vice-versa; but if you don't want to use GRUB, rEFInd can only launch a like-bit-depth kernel -- that is, if the tablet has a 32-bit EFI, you'll use a 32-bit rEFInd, which can launch only a 32-bit kernel. This fact may be limiting, depending on your exact hardware and software needs, since you'd need to involve GRUB to switch from a 32-bit EFI to a 64-bit kernel, if that's your intent.
If this is not an issue (that is, if your EFI is 64-bit or if you can jump through the right hoops to install a 32-bit Ubuntu), then one way to get the result you want is:
- Start with the out-of-the-box configuration with Windows installed to the internal eMMC.
- Download the rEFInd CD-R or USB flash drive image from its downloads page and prepare a boot medium from it.
- Disable Secure Boot on the computer. (You can re-enable it later, although you may need to jump through some hoops to do so.
- Pre-partition the USB flash drive in whatever way you like, but do not create an ESP on the disk.
- Launch the Ubuntu installer on the computer, but select the "try before installing" mode.
- Open a Terminal window.
- In the Terminal window, type
ubiquity -b
. This command launches the Ubuntu installer, but the -b
option tells it to not install a boot loader.
- In Ubiquity, select the "something else" scheme for disk layout. If you're unfamiliar with this option, see this question and its answers for a basic orientation.
- Proceed with the installation in the usual way.
- When the installation completes, shut down the computer.
- Leave the just-installed Ubuntu USB drive plugged in and replace the Ubuntu installation medium with the rEFInd medium you prepared in step #2.
- Boot to the rEFInd medium. It should give you an option to boot the Ubuntu you've just installed. Use that option. (Note that if you don't completely eliminate the GRUB you've already installed, it will likely appear in the rEFInd menu, too. You can delete it later.)
- Once in Ubuntu, install the rEFInd PPA or Debian package.
At this point, you should be able to unplug the rEFInd USB drive and reboot into rEFInd, which should enable you to boot either Windows or Ubuntu. If you then reboot with the Ubuntu USB drive unplugged, rEFInd will show only the Windows option. (If you see the old GRUB entry, you can delete it from Ubuntu by deleting the /boot/efi/EFI/ubuntu
directory tree.) You may also want to tweak various rEFInd features, like the default option, by editing /boot/efi/EFI/refind/refind.conf
in Ubuntu.
There are variants of this procedure that would work, too. The key points are:
- The Ubuntu installation's bit depth matches that of the EFI.
- The ESP is on the internal eMMC drive.
- Ubuntu is entirely confined to the USB drive, except for rEFInd.
- rEFInd has a filesystem driver that enables it to read kernels from a Linux filesystem. (This will happen automatically when you install the PPA or Debian package, provided you use ext2/3/4fs or Btrfs. If you use XFS or JFS, you'll need to jump through extra hoops.)