Ubuntu – Installing Ubuntu in a external hard drive and NOT placing GRUB of the C: hard drive

bootgrub2hard driveusb

what I want to do is this.
I have an external hard disk drive, a SEAGATE expansion 1TB, you can take it a look here:
As you can see this is not a flash usb hard drive, it is a USB hard disk drive.
What I want to do is installing Ubuntu in this external hard disk drive… BUT NOT PLACING THE GRUB ON MY C: DRIVE.
In other words, I don't want to see the GRUB splash Window asking me every single time if I want to load Windows or Linux.
I want my PC turn on or restart and go directly to Windows… BUT…
I want to have Linux in my external USB hard disk drive
How do I want to load Ubuntu then?
Easy, when I restart my computer or just start it… in ASUS mother boards I have the possibility to select the boot device by pressing F8, and I get the boot menu.
I want to turn on my computer, press F8, my mother board ask me what drive I want to use to load the Operating Sytem, I select the USB external hard disk drive where do I have Ubuntu, and bingo, I run Ubuntu.
When I finish to use Ubuntu, I close it and turn off my computer. Later, I turn on my computer, and if I don't press F8, automatically load the hard disk drive C: and load Windows.
My question about this, is what are the necessary steps to install the latest version from Ubuntu, doing exactly this. Not placing the GRUB in my C: hard disk drive, and installing it entirely in the external USB hard disk drive (normal one, not flash one).

Best Answer

Bug Alert!

There is a bug (bug number: 1396379) in the Ubuntu installer that installs the grub bootloader on the first ESP it finds. See https://ubuntuforums.org/showthread.php?t=2182302 for discussions on this.

To workaround this bug you will need to take a few extra steps.


  1. When you boot from the LiveUSB in UEFI mode, use the Try Ubuntu without Installing option.
  2. Open the Gparted application when the Ubuntu desktop starts.
  3. Select the Windows (first) drive within Gparted at the top right corner(1):

enter image description here

The NVME drive in this picture does not have Windows. However, it has an EFI System Partition (ESP).

  1. Highlight the ESP in the bottom list of partitions as shown above (2). Right click on the highlighted partition and select Manage Flags from the context menu. You will see:

enter image description here

You should see two flags, boot and esp checked. Uncheck those two flags. Click Close button to exit the Manage Flag window. Click the green "Apply" button if it is clickable.

You will need to restore those check marks once Ubuntu is installed using the same above process so that Windows can boot from the first drive.

Close Gparted.

This is the end of the workaround.

Original Answer

See How do I install Ubuntu to a USB key? (without using Startup Disk Creator)

Even though it is for USB key, the same principle applies for the USB Hard drive. Pay extra attention to the second answer. The relevant parts are noted below:

During install choose "Something Else"

enter image description here

Partition and format the USB drive

After having chosen Something else the graphical partition manager GParted will guide us through the partitioning process:

enter image description here

  • At this point take extra care that the boot loader Grub indeed will be installed to the USB drive (/sda in the picture, but yours will be different) and not to anywhere else

See the bottom of the image above, and make your selection where it says: Device for bootloader installation. The bootloader is another name for the GRUB. It should be installed in the MBR of the external USB hard drive and not in one of its partition.

You will need at least one ext4 partition with a mount point root (/). In the example above an additional /home (also ext4) partition was created. If in the future you need to reinstall Ubuntu, by unticking Format box you can keep the data in /home partition. You will also want a small swap partition of 4GB size (not shown in the picture) with no mount point, in its own Linux/Swap format to be used as virtual memory.

hope this helps