The "finish" script always expected to mount the rootfs itself if the "root" parameter was set. Now it checks first whether the rootfs directory is still empty (using /dev as indicator, because that was already expected to be present in a supported rootfs) and skips that step if non-empty.
This allows modules to implement their own rootfs handling. Signed-off-by: Patrick Ohly <patrick.o...@intel.com> --- .../initrdscripts/initramfs-framework/finish | 33 +++++++++++++--------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/finish b/meta/recipes-core/initrdscripts/initramfs-framework/finish index 325f47b..fa566b1 100755 --- a/meta/recipes-core/initrdscripts/initramfs-framework/finish +++ b/meta/recipes-core/initrdscripts/initramfs-framework/finish @@ -8,23 +8,28 @@ finish_enabled() { finish_run() { if [ -n "$ROOTFS_DIR" ]; then - if [ -n "$bootparam_rootdelay" ]; then - debug "Sleeping for $rootdelay second(s) to wait root to settle..." - sleep $bootparam_rootdelay - fi + # If $ROOTFS_DIR is non-empty, then some other module has already found + # the rootfs. We check for /dev because that was already expected to be + # in the rootfs. + if [ ! -d $ROOTFS_DIR/dev ]; then + if [ -n "$bootparam_rootdelay" ]; then + debug "Sleeping for $rootdelay second(s) to wait root to settle..." + sleep $bootparam_rootdelay + fi - if [ -n "$bootparam_root" ]; then - debug "No e2fs compatible filesystem has been mounted, mounting $bootparam_root..." + if [ -n "$bootparam_root" ]; then + debug "No e2fs compatible filesystem has been mounted, mounting $bootparam_root..." - if [ "`echo ${bootparam_root} | cut -c1-5`" = "UUID=" ]; then - root_uuid=`echo $bootparam_root | cut -c6-` - bootparam_root="/dev/disk/by-uuid/$root_uuid" - fi + if [ "`echo ${bootparam_root} | cut -c1-5`" = "UUID=" ]; then + root_uuid=`echo $bootparam_root | cut -c6-` + bootparam_root="/dev/disk/by-uuid/$root_uuid" + fi - if [ -e "$bootparam_root" ]; then - mount $bootparam_root $ROOTFS_DIR - else - debug "root '$bootparam_root' doesn't exist." + if [ -e "$bootparam_root" ]; then + mount $bootparam_root $ROOTFS_DIR + else + debug "root '$bootparam_root' doesn't exist." + fi fi fi -- 2.1.4 -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core