BPi M1 doesn't boot from SSD (solved)

I have installed the latest armbian on an SD card and successfully booted my M1 from it, but I can’t get it to boot from an SSD to the SATA port.
I used fdisk to create an ext4 partition on my SSD and mounted /dev/sda1 to /media/SSD.
Then I did a cd / ; find . -xdev | cpio -pdm /media/SSD to copy the SD card system to the SSD.
After that I adapted the UUID in /boot/armbianEnv.txt on the SD card and in /media/SSD/etc/fstab.
Alas, when I tried to boot the system from the SSD it fails (see pic).

Did I overlook something essential ?


It’s possible that you overlooked something essential when trying to boot from the SSD on your M1. Here are a few things you can try to troubleshoot the issue:

  1. Make sure the SSD is properly connected to the SATA port on your M1 and that it is getting power.
  2. Check the BIOS settings on your M1 to make sure it is set to boot from the SATA port. You may need to change the boot order to prioritize the SATA port over the SD card.
  3. Verify that the partition on the SSD is properly formatted and that it contains a valid operating system. You can do this by connecting the SSD to another computer and verifying that you can access the files on it.
  4. Check the logs on the M1 to see if there are any error messages related to the boot process. You can access the logs by connecting a monitor and keyboard to the M1 and looking for any error messages during the boot process.
  5. Try re-imaging the SSD with a fresh copy of the operating system, rather than copying the SD card system to the SSD. This will ensure that the SSD has all of the necessary files and configurations to boot properly.

Hopefully one of these steps will help you get your M1 to boot from the SSD. Let me know if you have any further questions or issues.

is this a chatgpt answer?:smile:

why don’t you use the armbian-config to install the image to sata ssd?

armbian-config is not supplied with the light version of the M1.
I did install it manually, but it did not support installing to SSD for the M1 either.
I finally succeeded by cloning the SD card to the SSD with ‘dd’ instead of manually creating the required partitions and rsyncing the data to them.
This is the same as step 5 in the list from chrisharrison3456
The drawback with the cloning approach is, that the UUIDs of the cloned partitions are also cloned.
Thus, it needs some extra steps to get the SD card hand over to the SATA disk after loading the kernel.

What error? you should give some logs, video or some useful information, may be someone can help you, armbian-config is best way to flash armbian image to emmc/ssd/nvme i think.


The armbian uboot seems doesn’t load bootscript from sata higher priority than sdcard, so the uboot will load the bootscript from sdcard, may be you can try to change the ssd partition uuid and update rootdev=UUID= in sdcard /boot/armbianEnv.txt or set rootdev=/dev/sda1 in sdcard /boot/armbianEnv.txt

Your last comment is exactly what I did to make it work.
As I wrote, I did clone the SD card with dd, and then I changed the UUID on the SATA with tune2fs /dev/… -U random.
Then I set the UUID in armbianEnv.txt to boot from this UUID and of course I needed to adapt it in /etc/fstab on the SATA too.
Cloning means UUID and PARTUID are also cloned, and it was quite easy to change the UUID to make it work.
Changing the PARTUUID is more difficult, so I did not do it, although I had liked to work with the shorter UUID strings.
Anyway: My M1 now runs from SSD and the SD card is only required to boot, which hopefully will increase the lifetime of my setup dramatically.