I always have a keychain USB-drive with me and noticed a while back that Ubuntu can easily be installed on it. I've successfully used this drive to test other people's hardware for them and copy files from dead Windows installations or just check my own emails in a secure operating system while travelling.
So far, this method has worked very well, but not every single time. Some hardware will recognise the USB-drive, but refuse to boot from it. On others, the system boots, but has serious performance/display issues, which can make it unusable.
I've tried to compile a list of all compatibility options that have helped to increase the rate of a successful boot and operation of this drive, but I am not sure what else could be done to prevent issues or what would be other useful choices in general in this case. So far, I've noted down these points:
Use the vanilla Ubuntu ISO, rather than e.g. the slimmer Xubuntu, because Xubuntu in some cases doesn't load a laptop's WiFi drivers correctly while vanilla Ubuntu does.
Use a 64-bit ISO (for Europe/North America), because it's more likely to encounter 64-bit processors in these regions today and some newer UEFI-versions will not boot 32-bit Ubuntu systems while they do 64-bit.
Reserve some space on the drive to create a swap partition, because some machines may have low RAM (or lower than it's supposed to be) and very slow USB-swap is still better than a complete crash.
/etc/default/grub, because the system will boot with many different GPUs and this should prevent display issues.
As well as two small tips on the side:
Some Windows 10 installations will not fully shut down and prevent entering the BIOS/boot menu. If that happens, boot the Windows system first and try either the
Restartoption instead of a normal shutdown or hold down
Shutdownto circumvent those Windows/UEFI boot-mechanics.
Updates take a long time over USB (by Ubuntu's standards), especially on USB 2.0, so I suggest to disable all automatic updates and rather update the system manually when there is enough time/bandwidth available to do so.
Are there other setup options that would be beneficial in this scenario?
Would you suggest other kernel parameters or system configurations that could increase compatibility while not limiting the usage on such a minimal installation?