I haven’t been able to find a document relating to this, so my apologies if I’m repeating something.
Raspberry Pi 4s can boot from SSD without a SD card. I found I had one that hadn’t been updated to the current EEPROM so had to follow the instructions here: https://www.raspberrystreet.com/learn/how-to-boot-raspberrypi-from-usb-ssd
This needs an SD card, but will work with the Yunohost image because it’s Raspbian Lite.
Here’s a quick summary:
- Burn a MicroSD card with the current Yunohost image as in the documentation.
- Boot the Pi from the SD card, connect, and let it run through the installation process so you have an admin login.
- Connect to the Pi over SSH with the admin user.
- Check the status of the Pi EEPROM with
sudo vcgencmd bootloader_version
. The version date is on the first line and should be later than 2020/03/09. - Check for an update with
sudo rpi-eeprom-update
. There may be an update available, but the update channel needs to be changed fromdefault
(that was in my case, the blog entry says it will becritical
) tostable
. - Open
/etc/default/rpi-eeprom-update
with an editor. For ease of usesudo nano /etc/default/rpi-eeprom-update
. You will see the lineFIRMWARE_RELEASE_STATUS="default"
. Changedefault
tostable
. Save the file. - Check
sudo rpi-eeprom-update
again. This should show an update. - Apply the update with
sudo rpi-eeprom-update -a
, and reboot. - When the Pi has rebooted, check that the update has been applied with
vcgencmd bootloader_version
again. - Now change the boot order. This can be done through
raspi-config
. - Run
sudo raspi-config
and select6. Advanced Options
. - Select
A6 Boot Order
. Confirm that the first option isB1 SD Card Boot Boot from SD Card if available, otherwise boot from USB
. If it isn’t, make an option that includes USB first - the second option for me isB2 USB Boot Boot from USB if available, otherwise boot from SD Card
, but I can’t change to that in the Yunohost image. - Next, burn the Yunohost image to your SSD. This works in the same way as an SD card, so use Etcher or the image burner of your choice. Etcher will tell you that your SSD is a large device and ask for confirmation.
- You now have a 2.1GB image on your SSD so it needs to be resized. On a Linux based desktop this will need Gparted or another disk management tool (Gnome Disks, KDE Partition Manager etc) so start that.
- The external SSD should appear with your local storage with a FAT32
boot
partition, a 2.1 GBrootfs
partition and a lot of unallocated space. Resize therootfs
partition to use up as much space as it can. Gparted, Disks and KDE Partition Manager will do this graphically. - Remove the SD card from the Pi and plug the SSD into one of the USB 3 ports and boot.
- Connect to the Pi with a web browser - it should have the same IP as with the SD card if your router is working correctly and run the configuration again. You should then have a clean Yunohost install on the SSD.