Boot from SSD instructions

  • I'm sorry if this is a recurrent question; I searched the forum, wiki (and google) for some kind of guide or instructions how to install LE and booting from an SSD, but I was unable to find that. I learned that it's not only possible, but seems to be trivial. Many people are asking about dual boot and other exotic scenarios, but those don't fit me.

    I'm planning to create a simple HTPC with a Raspberry 4B 2GB and I would like to boot from a cheap external 120GB 2.5" SSD for added performance, durability, and to have some local temporary storage for movies. It will be used only for the Pi.

    1) I'm still trying to understand if I need an external case/adapter with external power, or those that power the SSD from the USB bus will be enough.

    2) Is there any guide or set of instruction for installing LE and boot from USB SSD? Could you point me in the right direction?

    Thanks in advance.

    Edited once, last by phoenix73pt (April 3, 2021 at 6:02 AM).

  • I'm using a USB30/SATA cable adapter with no external power. SSDs use much less power than a traditional 3.5" or 2.5" hard drive, and USB3.0 provides more power than the standard 500mA per port on USB 2.0.

    The only requirement is that you update the RPi4's firmwares for SoC and USB controller (September 2020 is the latest afaik). That you can do using an using a SD card with LibreELEC via its Settings Add-on (perhaps via OSMC as well), or Raspberry Pi's own latest OS. There should be numerous tutorials on that available by now.

    Once the firmware update is done, you can boot via USB once you have written the LibreELEC image to that USB device.

  • Nothing special should be necessary if your RPi 4B does not have a very obsolete bootloader.

    Just write a LE image to your external SSD, connect it to RPi 4B and try to boot.

    if it won't work, try the same with SD card ( this should definitely work ), then check the VL805 USB firmware & RPi bootloader versions and upgrade them to latest available (check the release notes here).

    How to check the CURRENT versions: rpi-eeprom-update

    VL805 release should be: 00138a1

    BOOTLOADER should be: Thu Apr 29 16:11:25 UTC 2021 (1619712685) or later.

    You may easily upgrade the VL805 USB firmware & RPi bootloader (not to latest available but to versions contained in LE but useable) from Kodi: Settings - Libreelec - Updates - Firmware Updates

    Usually the VL805 USB firmware is already at the latest available version (00138a1) but the bootloader is a bit obsolete.

    This way you may upgrade it from SSH console to (currently latest) release 2021-04-29 (and the VL805 as well, if it's not the 00138a1 yet):

    Then you may try to boot from external SSD again. If it still won't work (test on both USB3/USB2 ports), check if the power from USB port is sufficient for your SSD (test with USB hub with external power supply or with a fork USB cable).

    The last thing to be done when you make the LE booting from external SSD is to add this line to /flash/config.txt file in LE:

    dtparam=sd_poll_once=on

    otherwise there was a repeating error message filling log due to missing SD card (not sure if it's still necessary).

    Code
    mount -o remount,rw /flash
    echo dtparam=sd_poll_once=on >> /flash/config.txt
    mount -o remount,ro /flash

    Hope this helps.

    Edit: 2021-05-01 - updated link to current firmware above.

    Edit: 2023-01-15 - added update scripts for most current releases below.

    Code
    # RPi 4B - USB controller upgrade:
    cd /tmp
    wget -O USBfirmware.bin -c https://github.com/raspberrypi/rpi-eeprom/raw/master/firmware/stable/vl805-000138c0.bin
    rpi-eeprom-update -u USBfirmware.bin
    reboot
    #

    Edited 8 times, last by ghtester (January 15, 2023 at 2:22 AM).

  • Wow! Great guide! I will follow these instructions carefully, and I will point to this post if more people ask about this.

    Thank you both!

    BTW... From your experience, should I get a plain 2,5" SATAIII SSD or a M.2 SATAIII SSD, each paired with relevant USB 3.0 adapter? I don't think there will be any noticeable speed difference; I was just thinking about power consumption to ease Raspberry Pi USB port, since I won't be using external power...

    EDIT: Forget it. It seems that M.2 and specially NVMe drives run hotter and are more power hungry than old 2,5" SSDs. I just leave here my conclusion for other users.

    Edited 2 times, last by phoenix73pt: Question added regarding SSD type (April 3, 2021 at 6:01 PM).

    • Official Post

    Not sure if a NVME drive is more suitable, the USB30 port (like the Gigabit network port) is not getting actual full speed that PC's have. USB 3.0 is quicker than the 2.0 ports on the RPi4, but don't expect miracles: it is still a low-powered device. Perhaps the NVME is quicker than a simple SSD by its internal processing, but I doubt if you'll really notice the difference in real life operations on the RPi4b.