I have an external USB disk drive that has various OS’s on it, allowing me to boot different computers with it. This works fine. I now wish to make the system more portable and have a USB stick onto which I have put GRUB in the first partition (MSDos) and OS’s and data in the others. I have tested this with VBox and all is OK. However, when I try to boot my PC with it, the BIOS appears to detect the USB has a boot loader on it, but sits with a blank screen for ages before (I think) giving up and booting from the hard disk. The laptop does may do the same thing, but does not take as long deciding.
How can I make the computers see GRUB on the USB? I don’t want a Ubuntu “rescue disk” because that appears to take over the whole stick with no option to repartition.
Do you have seen the Logo from GRUB? When yes cou can try to press C or ESC to go into the GRUB Bootloader Configs. Maybe you have to change something there.
Also this topic already got discussed in an other Forum here is the link to it ^^
I am sure that you must have asked yourself this question many times: “What am I doing different?”
If you knew the answer to that you would not have opened this topic. But something is being done differently. I have a SATA drive in an external USB drive enclosure. It uses Grub to boot between three or four flavours of Ubuntu.
If I was to do something similar with a 128GB USB memory stick that I have I would first use GParted to put a GUID Partition Table (GPT) - formatted Ext4 - on the drive.
Then I would install Ubuntu on the 128GB stick. That should give me an OS that boots from Grub when I select the 128GB drive from the UEFI settings utility.
Then I would use GParted to resize the OS to create space in which to create other partitions into which I could install other Linux distributions using Guided or Manual option.
I would select an OS to be the main OS and after installing an additional OS I would boot into my main OS and update Grub so that it shows the new OS as well as the original OS. The process is no different from dual or triple booting on an internal drive. Whether SATA or NVME.
In your situation the motherboard is not finding Grub. If Grub was unable to find an OS you would end up at a Grub command line interface.
Either start again or re-install Grub on that USB memory stick. Does the memory stick show up in the file manager (Files)? Or Disks? Assuming you are using Ubuntu with Gnome.
Do you want installed systems or live systems (or both kinds of systems) on the USB stick?
Ventoy can make a multiboot drive with live systems.
The method explained by @graymech can make a multiboot drive with installed systems (in this case installed into the external drive). With some extra effort, you can also add some live system to such a drive (and have both live systems and installed systems alongside each other).
Please be aware that many USB sticks are very slow compared to an SSD. USB sticks are also less reliable, they can suddenly get damaged by a lot of writing (the first sign can be that they become read-only, ‘gridlocked’). For such reasons installed systems may be problematic in a USB stick.
Look into boot files signatures, I likely had the same issue with bootmanager.
My setup was Win11 installer + intune (WinPE) in three partitions:
1: Win11
2: WinPE
3: Bootpartition (efi)
Took awile to figur out the issue… slow day and a adventure with CoPilot and a bunch of uggly words later…
But I noticed that allowing third party certificates helped alowing booting.
Once I had a working NVME USB enclosure I could clone it with rufus (VHDX file).
Hyper-v has some shrink partition size (metadata), can’t get which cmd used if anyone is interested.
In your initial post, you indicate the first partition is msdos, are you referring to the partition table type or the filesystem type of that first partition? If it is an msdos partition table, do you have legacy installs or are you trying to boot from an iso file? Depending upon the size of the drive, it would be simpler to install one OS with grub and use the grub.cfg file on that OS to boot other OS’s or iso files. Did you install Grub on the first partition and then manually create the grub.cfg file entries. Is the usb you are using legacy or UEFI and is the computer you are using UEFI capable?
If Ventoy did not work for you there is some other problem we are not aware of as ventoy has been around for some time and used successfully by countless users.
Yes, partitioned using gparted. Rather than installing ubuntu, I manually installed grub (to the first partition) and then copied the OS to a suitable partition. Adjusted grub.cfg to match. Testing with VBox and the grub menu shows and can be booted. Stating the computer I just get a blank screen (blinking cursor at top-right). When booted (to Ubuntu on the hard disk) the partitions all show and can be read/written. So there appears to be nothing wrong with the USB itself, just the BIOSes not detecting grub properly.
And to answer nio-wiklund’s point, yes I am aware that I should not hammer the USB too much. This task is mainly about being able to read the USB on other machines with the software that it contains.
All external UEFI systems boot from /EFI/Boot/bootx64.efi just like the Ubuntu or Windows installers (obviously different actual files, but same name).
Ubuntu installer typically makes an “ubuntu” entry in UEFI to boot install. But if external drive & you remove drive, many UEFI systems remove or change entry, so it stops working until reset. You still should be able to boot with bootx64.efi and have to use that on all other systems you want to boot.
If you need old BIOS boot there are instructions on configuring both grub-pc for BIOS boot and grub-efi-lamd64 for UEFI boot. But they can eventually get out of sync, so I typically suggest two flash drives, one old BIOS and one newer UEFI for almost all systems now.
Make a boot drive by cloning an Ubuntu iso file to the USB stick, and check that it works. Check the boot mode (when running the live system ‘Test Ubuntu’) with the command line
test -d /sys/firmware/efi && echo efi || echo bios
Install Ubuntu or maybe better the light-weight flavour Lubuntu into the USB stick (in BIOS alias legacy mode if that is what you want), and check that it works. There may be problems here, that you must solve, for example check that the computer(s) really can boot in BIOS mode. If this does not work, you may need a system in the USB stick, that can boot both in UEFI mode and BIOS mode.
Make your grub boot system according to the experience from the previous step, and then install the systems that you want in the USB stick.
Maybe you can make a short-cut by installing mkusb and using it to create a persistent live drive with the dus-iso2usb method. This way you get a grub system that boots both in UEFI and BIOS mode. The next step is to edit the grub configuration file and add menuentries that point to the installed systems that you copy into the drive from where you have them already (from the external disk).