On Mon, May 06, 2019 at 07:44:09PM +0200, Ladislav Michl wrote: > Hi there, > > I'm using rauc with casync to update target system - it is symmetric rootfsA, > rootfsB, scenario, so slots are defined as: > [slot.rootfs.0] > device=/dev/ubi0_0 > type=ubifs > bootname=system0 > > [slot.rootfs.1] > device=/dev/ubi0_1 > type=ubifs > bootname=system1 > > Now system is booted with rootfs mounted read only which makes mounting seed > slot fail: > rauc[871]: Mounting /dev/ubi0_0 to use as seed > rauc[871]: launching subprocess: mount -t ubifs /dev/ubi0_0 /run/rauc/rootfs.0 > rauc[871]: posix_spawn avoided (fd close requested) (child_setup specified) > rauc[871]: mount: /run/rauc/rootfs.0: /dev/ubi0_0 already mounted or mount > point busy. > > Here adding '-o ro' would quick fix it up (but break rw case, as options have > to > match), so it seems better to use bind mount as comment casync_extract_image > function suggests, but do not see it code. > > Am I missing anything?
So, whats still missing is a review of pull request #406 (Normalize device names to find mounted slots) :) Then determine_slot_states should properly fill slot's ext_mount_point and casync_extract_image would then use it to bind mount seed slot. And here's the tricky part. For device-less mount, volume to mount is specified for example using ubiX_Y or ubiX:NAME syntax, so fix in #406 will fail in this case. A workaround is to add support to bootloader which will try to guess UBI volume character device as seen by kernel. Now it is time to make design decision: if rauc is going to suppport device-less mounts this should be fixed (read: I'll provide a patch for review). Otherwise I'll change a way bootloader passes root= option. Thank you, ladis _______________________________________________ RAUC mailing list