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

Reply via email to