Install on an external USB hard drive and make it bootable for UEFI

Hi,

I want to install Manjaro (with KDE) on an external drive to be able to boot it on any machine everywhere I go. I target an UEFI boot but if it boot on legacy BIOS it’s better.

I believe it’s possible but I should manually reinstall the grub with the flags “–removable” and “–no-nvram”. I never done that before and I’m not UEFI/Boot expert so I have a couple of questions.

  1. If I understand well the documentation, the “–removable” flag is used to write the UEFI file in the fallback path but what about the “normal” path ? Isn’t it better to have the file in thoses 2 paths to improve portability or is it unecessary ?

  2. The “–no-nvram” flag is more important in my case because I really want to keep the host machine untouched and I believe that’s why this flag exists. So I will use it for the installation but when I will have a Kernel update (or Grub update), I think pacman will use the grub-install command without this flag and so “corrupt” the host machine. Am I right ? How can I setup that well ?

  3. To install, I will use a bootable USB flash drive, use the live session and install the system on the external hard drive (so 2 USB drives are plugged). During the installation, I think there is a “no Grub installation” checkbox to tick. Am I right ? So I can do that procedure safely on a desktop without any risk to corrupt my BIOS and/or my other drives ?

  4. At the end, if everything is good, does the external drive will be able to boot in a legacy BIOS with that ?

  5. Any good advice ? Anything to warn me about ?

PS : I will follow (kind of) this : Ubuntu Linux installation to a USB external drive with EFI boot - DEV Community

Regards,

Hi there,

I ran a setup similar to what you’re proposing when I was distro-hopping and early on with Manjaro before settling permanently. I installed from a Live USB stick onto a USB-C external HDD, because I wanted to keep my Windows installation on my internal HDD in case it turned out I hated Linux.

I’m not sure what your BIOS / UEFI is like, mine (on an Asus laptop) allowed me to see the USB-C external HDD as a bootable drive option. If I left the drive unplugged before turning on my computer, the system just booted into Windows with no issues. I’d have to go back into UEFI on the next boot to have the external drive loaded above the Windows drive in the “boot order” to get back into Linux, but aside from messing around there, I’ve not had to touch any of the installation configuration files or mess around with GRUB settings.

Neither the setup nor the os itself is optimized for removable drives, so there will be dragons ahead. The install grub hook is one such thing, you might or might not have to disable it.
At least until the middle of 2 you are absolutely right.

3 yes, but so far efi setup is discussed. Why not stick to that, it will be simpler.

4 no, not without extra config, you will need one more small partition

5 probably - don’t do it to yourself. Unless you have a lot of time for experiments and want only a learning experience.

The main problem will be many automated scripts will assume an installed disk and probably not find something or worse, will decide to write to the other os on the disk (unless it is a windows). So some stuff will randomly fail and you will have to debug it. And the help from us will be limited, since this is neither supported nor most of us have practical experience.

There are some special distributions made to start from iso and store the settings separately, this is not one of them.

3 Likes

It’s unnecessary. The --removable flag will install both entries — or at least, I think so. :thinking:

When it’s only a kernel update, pacman will only run update-grub, which writes the grub configuration from /etc/default/grub and /etc/grub.d/* to /boot/grub/grub.cfg.

I do not know whether an update to grub itself will write to NVRAM or not. It is possible that it does. :man_shrugging:

Yes, I believe so.

Yes.

No, because in order to boot in UEFI mode, you need an EFI system partition to house the boot loaders — which are EFI executables — but in order to boot in legacy BIOS mode on a GPT-partitioned drive, you will also need an unformatted partition of type bios_grub and about 2 MiB in size.

2 Likes

Thanks a lot for the quick answers. I tried, it works as expected. Thanks a lot for all the insights and the details :wink: :+1:

1 Like

Im using for 6 year’s my Samsung Portable SDD T5 (400GByte TLC) stable under Manjaro as boot drive with great performance, even while gaming.

Maybe my impressive experience comes only because im using Legacy Boot or if i use UEFI Boot would lead into the dragons ahead experience? (where im lagging the experience)
Is it possible your judgement based on rumor’s from external drives?

Im also using many more external USB drives, all kind of different brands… never had a single issue, but i also only used this other drives as backup solution.

While my internal and even much more expensive Samsung SSD 860 Pro (1Tbyte MLC) only have annoying performance issues under Manjaro (which lead to gaming stutters), while at the same time its working flawless under Windows as Bootdrive and also fine when i execute my games there.

Since my bad experience with that internal drive, i removed my Linux Partition from that drive and its mainly unused in my PC, if i don’t boot into Windows, which almost not happening anymore.

It shouldn’t make any difference. Whether booted in (legacy) BIOS mode or (U)EFI, MBR and GPT formats can both be read and written to. :wink:

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.