Banana Pi running from SATA

I did enquire on the Forum about this early this year, but got no response and bananapi.org as well as sunxi.org web sites had no workable solution. Lemaker have since put information on their wiki, describing how to use a partition on SATA as root file system, whilst retaining /boot on SD.

http://wiki.lemaker.org/BananaPi/Pro_NAS

Lemakers’ procedure for copying the root file system to sda might suit for an IPFire system that had many options and configureation changes, but I had a fresh installation and elected to follow a procedure analogous to that Arne put on the wiki for NanoPi.

From a core 138 system running from SD on BananaPi:

wget https://downloads.ipfire.org/releases/ipfire-2.x/2.23-core138/ipfire-2.23.2gb-ext4.armv5tel-full-coreXXX.img.xz
xzcat ipfire-2.23.2gb-ext4.armv5tel-full-coreXXX.img.xz > /dev/sda
dd if=/usr/share/u-boot/banana_pi/u-boot-sunxi-with-spl.bin of=/dev/sda bs=1K seek=8

Then edit /boot/uEnv.txt (on the SD card) and make the following changes
UUID for root_dev to that for /dev/sda3 (use blkid to obtain)
DTBSUNXI-sun7i-a20-bananapi.dtb

and set SERIAL-CONSOLE to OFF if you want to use HDMI/KEYBOARD instead of serial console.

Then mount /dev/sda3 to /mnt and edit /mnt/etc/fstab

UUID for /boot to that for mmcblk0p1 (on the SD card)

Unmount /mnt and reboot, to set up a fresh IPFire.

The procedure is necessarily more complicated than for NanoPi, because BananaPi can apparently boot from SD or USB, but not from SATA. Consequently, UUID need to be adjusted for a system that uses paritions on two devices. A single USB-SATA device is a possibility that I have not revisited.

At my knowledge the BananaPi cannot boot from USB. (Also for USB Boot you need a SD Card with u-boot.)

I think the easiest way is to setup an SD card and later move the root partition to the SATA HDD with a tool like gparted.

You are correct re boot from USB. It does not work. Manual for A20 chip says it is supported, but that for BananaPi does not.

gparted looks a good technique. It would retain the UUID on the copy and config files would not need to be altered.