UEFI or lecagy BIOS on linux that sits on a USB drive


New Member
I am installing linux on a USB stick (Arch if that helps), so that I can plug it into any pc and run it from the USB stick. In the installation process of the OS I want to install on the USB drive, I have to check if the boot mode is UEFI or lecagy BIOS, but since it will run on many different computers, how should I do this?


Well-Known Member
to boot an os from a usb stick; on each PC or laptop you will have to probably go into each bios and if running secure boot disable it . A good clue is if you run
sudo fdisk -l

or $ ->su -># fdisk -l

eg on my laptop

Disk model: BHT WR202I0064G
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt

you see that line above gpt? well if my understanding is correct UEFI can only run from gpt .

So you can try that on each PC and be prepared to go into bios. For older systems ; it should only be a case of either changing boot order in the bios


Well-Known Member
I already tried to do what op wants to do, but the problem is that uefi systems need a gpt partition table, but bios systems need a msdos partition table, so I decided for uefi boot for my own USB drive because most computers support it, also my old lifebook from 2011 are capable of uefi. You may also add the autodetect hook in the mkinitcpio.conf to achieve the best compatability with all hardware types (not related to boot method). You may also install your grub with the --removable flag, so the bootloader on the stick will be auto recognized on most uefi systems. You can also play around with shim/secureboot, so you don't have to always turn of secureboot, when you try to boot on another pc. (I was not able to get this to work ).

Members online