Help w/ layout of a resilient Ubuntu for BB

BB Boot experts,

I have a requirement to setup an Ubuntu OS environment on a BeagleBone that can withstand a non-graceful power interruption and boot from eMMC while mounting uSD with no one pressing a boot button. With /dev/root mounted as ‘rw’, Ubuntu would recover in ‘ro’ mode if there is a power loss.

My thought is to have the eMMC flashed to hold the non-volatile directories and mount this read only. Then have the BB on power up boot from eMMC and mount the 16G uSD with /home /var /tmp, etc.

With the speed of the eMMC faster than uSD, and eMMC more susceptible to wear of frequent r/w’s this also points me in this direction.

Currently the source image on the uSD is
which after holding down the boot button the first time, now boots on the BB-A5A without holding down the boot button.

Does this make sense?
Is it as easy as reimaging eMMC from the .xz source image and modifying uEnv.txt have it mount as ro at next boot?
What would need to be modified to make this work?

Thanks in advance.


ubuntu@ubuntu-armhf:/boot/uboot$ cat uEnv.txt
uenvcmd=i2c mw 0x24 1 0x3e; kd=0; if test $mmcdev -eq 1; then mmc dev 0; if mmc rescan; then kd=1; fi; mmc dev 1; fi; setenv mmcroot /dev/mmcblk${kd}p${mmcpart} ro
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${bootdir}/dtbs/${fdtfile}
loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}


/dev/root is mounted rw

ubuntu@ubuntu-armhf:~/Downloads$ mount
/dev/root on / type ext4 (rw,noatime,errors=remount-ro,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=253620k,nr_inodes=63405,mode=755)
none on /dev/pts type devpts (rw,nosuid,noexec,relatime,mode=600)
none on /proc type proc (rw,nosuid,nodev,noexec,relatime)
none on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
none on /sys/fs/cgroup type tmpfs (rw,relatime,size=4k,mode=755)
none on /sys/fs/fuse/connections type fusectl (rw,relatime)
none on /sys/kernel/debug type debugfs (rw,relatime)
none on /sys/kernel/security type securityfs (rw,relatime)
none on /run type tmpfs (rw,nosuid,noexec,relatime,size=50756k,mode=755)
none on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
none on /run/shm type tmpfs (rw,nosuid,nodev,relatime)
none on /run/user type tmpfs (rw,nosuid,nodev,noexec,relatime,size=102400k,mode=755)
/dev/mmcblk1p1 on /boot/uboot type vfat (rw,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,name=systemd)


ubuntu@ubuntu-armhf:~/Downloads$ df -a
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 15290008 1392708 13260020 10% /
/dev/root 15290008 1392708 13260020 10% /
devtmpfs 253620 4 253616 1% /dev
none 0 0 0 - /dev/pts
none 0 0 0 - /proc
none 0 0 0 - /sys
none 4 0 4 0% /sys/fs/cgroup
none 0 0 0 - /sys/fs/fuse/connections
none 0 0 0 - /sys/kernel/debug
none 0 0 0 - /sys/kernel/security
none 50756 348 50408 1% /run
none 5120 0 5120 0% /run/lock
none 253764 0 253764 0% /run/shm
none 102400 0 102400 0% /run/user
/dev/mmcblk1p1 1004 466 538 47% /boot/uboot
systemd 0 0 0 - /sys/fs/cgroup/systemd