I apologize for direct mentioning to the source codes.
Problem:
try_mount() in casper-helpers script doesn't honor the mount-point parameter when mount-option != "ro".
This is obvious on code, but it wouldn't what it meant to be.
I guess,
if the device is already mounted on A, and
if the indicated mount point of which is the same as previous mounted (i.e. A; where_is_mounted() says),
do mount -o remount ...
else
do mount -o bind ...
whatever the indicated mount options are.
This spec suffers in the case,
setting persistence YES, boot media, especially USB, is multi-partitioned, and persistence data are on separated part from the base boot image.
In that case, find_cow_device() falsely unmount /cdrom (because where_is_mounted() says '/cdrom' was
previous mount point in the device searching iteration) and gone busybox prompt.
There might be a fix find_cow_device() itself but, I thought that try_mount() is fundamental.
I apologize for direct mentioning to the source codes.
Problem:
try_mount() in casper-helpers script doesn't honor the mount-point parameter when mount-option != "ro".
This is obvious on code, but it wouldn't what it meant to be.
I guess,
if the device is already mounted on A, and
if the indicated mount point of which is the same as previous mounted (i.e. A; where_is_mounted() says),
do mount -o remount ...
else
do mount -o bind ...
whatever the indicated mount options are.
This spec suffers in the case,
setting persistence YES, boot media, especially USB, is multi-partitioned, and persistence data are on separated part from the base boot image.
In that case, find_cow_device() falsely unmount /cdrom (because where_is_mounted() says '/cdrom' was
previous mount point in the device searching iteration) and gone busybox prompt.
There might be a fix find_cow_device() itself but, I thought that try_mount() is fundamental.
A patch attached is a sample to solve this.