This.HawaiianPi wrote: ↑Thu Jan 18, 2018 7:54 pmUSB boot on the Pi3 is a troublesome beast. Due to limited space for the bootloader on the SoC, it's quite primitive and not compatible with some devices (a lot, actually, in my experience). If you are absolutely certain you have setup USB boot correctly, then your only option is to try different SATA-USB adapters until you find one that works.
This.In my case I found that booting was fine, but restarts and shutdowns were unreliable. After some troubleshooting I finally went the old-school route of starting the boot process from SD and loading the OS from the SSD. That has been working 100% reliably for me.
Is there any advantage to the fancy "bootcode.bin only" method? I doubt it.There are 2 options for starting boot from SD and then loading the OS from USB. The original method was to keep the /boot partition on SD and load and run the / (root) OS from USB. The more recent method is to put just bootcode.bin on the SD card and run the entire OS (including the /boot partition) from USB. You might need the latest bootcode.bin from git to do the latter.
There is no internal firmware on the Pi. It is all held on the SD card or USB/network storage (for the Pi 3B/2Bv2).
It's mainly to keep as much as possible on the USB device, and not write to the SD card, ever. The main disadvantage is that it will not work reliably if you have more than one USB storage device connected, because will only attempt to boot the first device it sees, and if that device is not your boot device it fails. In my case I have both my SSD and a regular USB flash drive connected. The SSD is the boot device, and the other is used for backups. About 9/10 times the USB flash drive is detected first (/dev/sda), so bootcode.bin would fail 90% of the time for me.
Which SATA-USB adapter are you using?
Code: Select all
echo program_usb_timeout=1 | sudo tee -a /boot/config.txt