One of the features of Raspberry Pi4 is the ability to have USB boot. One of the good reasons why you might want to boot up via USB is the faster read writes by using SSD external drives and alternate options to boot up your OS. This option was not available until the recent firmware update in June 2020. So I’ve decided to give this method a spin and found out there were some caveats using this method.

I researched some of the blogs how one could boot from USB and found their method not workable. I wonder how they managed it. I spent hours trying their method, which led to boot failure. What was correct was the requirement to update the Raspberry Pi4 firmware from June 2020 version onwards to enable USB booting.
After updating the firmware, the blogs mentioned copying the microSD content onto your USB stick, which took me hours to copy 16GB worth of data, which finally failed to boot up when the process was completed. After wasting several more hours and days making different version of copies using different USB flash drives before I finally found the way to make it work!
So here’s how you could get USB boot working with your Raspberry Pi4.
Firstly, you will need your firmware to be from June 2020 version onwards. To check your firmware version type this in the terminal box:
sudo rpi-eeprom-update
or,
vcgencmd bootloader_version
This would show your current version. If the version was from June 2020 onwards, your bootloader would be capable of USB booting. If not, you would need to update it.
As for me, my firmware was automatically updated while I was testing out PINN installer, which is an alternate version of NOOBS. Checking through the Raspberry Pi website, whenever you update or install Raspbian, your firmware would be checked and updated to the latest bootloader version. So by just installing with NOOBS or with PINN, your firmware would also be updated.
In case you want to update the firmware without making a fresh install, you may manually update the firmware by typing this in the terminal:
sudo apt update
sudo apt full-upgrade
sudo reboot
And after that update the firmware in terminal:
sudo rpi-eeprom-update -a
sudo reboot
Next, download the latest NOOBS from Raspberry Pi website and unzip the content onto a USB flash drive. Plug it in, and boot up your Raspberry Pi 4. It might take awhile before you are greeted with the installation selection screen. After making your choice, let the installer do its thing.
Reboot.
And let the Raspberry Pi digest its information for a while. The first boot would take a bit longer as the OS configures itself to be ready for booting. If successful, you would be greeted by the Raspbian desktop. If the waiting time was way too long, you could shut down, and turn back on. If it is still hung, turn it off. And plug the USB flash drive to another USB slot. I don’t know the reason why doing this would make the USB booting successful, but hey, as long as it worked!

Then I got curious and tried out the various ways of installing Raspberry Pi OS. Basically, there are four ways you could install and run your OS in your Raspberry Pi.
1. NOOBS
2. PINN
3. Berryboot
4. Image installs
Using NOOBS was the most successful. I could boot up Raspbian, LibreELEC and Lakka.
Using PINN, Raspbian failed to boot, but the Raspbian 64bit Beta was working! I could also get LibreELEC to boot, but failed for Lakka & Retropie. I didn’t try out all the other installations, so you just have to experiment for yourselves.
Berryboot was a total failure.
Direct image write into USB flash drive using Ubuntu MATE didn’t work.
However I could get Raspup (Puppy Linux) to work from USB boot. Raspup was really handy. Perhaps it’s simple setup made it my Linux version of choice when I needed to edit files, copy files and make modifications with any Linux distro including Raspberry Pi OS! Just download Raspup, unzip the files and copy it over to a USB flash drive or microSD card and you have yourself a nice hacking and fixing tool!
2-Nov-2020
OK, but how about making a Raspup bootable in Windows or OSX?