summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMuhammad Hamza <Muhammad_Hamza@mentor.com>2022-06-17 10:50:22 +0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-06-21 18:44:27 +0100
commitaf80b23aee781e21fde0d91119d6566b631d3da1 (patch)
tree7a313d542280719555c6740b86b7b74457dc5aca
parent4fb44ddc00a921875f426a7810984509a6612df3 (diff)
downloadpoky-af80b23aee781e21fde0d91119d6566b631d3da1.tar.gz
initramfs-framework: move storage mounts to actual rootfs
Operations such as mkfs fail on devices that are not switched to the actual rootfs before switch_root is called. The kernel interprets these devices as still being used even after unmounting and errors such as below are seen when the target is fully booted root@v1000:~# umount /dev/sdb1 root@v1000:~# mkfs.ext4 /dev/sdb1 mke2fs 1.43.8 (1-Jan-2018) /dev/sdb1 contains a ext4 file system last mounted on Wed Nov 28 07:33:54 2018 Proceed anyway? (y,N) y /dev/sdb1 is apparently in use by the system; will not make a filesystem here! (From OE-Core rev: ec53ffd01972d1be2d6a28de828b3f0b80dc1e61) Signed-off-by: Awais Belal <awais_belal@mentor.com> Signed-off-by: Muhammad Hamza <muhammad_hamza@mentor.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xmeta/recipes-core/initrdscripts/initramfs-framework/finish9
1 files changed, 9 insertions, 0 deletions
diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/finish b/meta/recipes-core/initrdscripts/initramfs-framework/finish
index f08a920867..ac0de9f996 100755
--- a/meta/recipes-core/initrdscripts/initramfs-framework/finish
+++ b/meta/recipes-core/initrdscripts/initramfs-framework/finish
@@ -26,6 +26,15 @@ finish_run() {
26 26
27 info "Switching root to '$ROOTFS_DIR'..." 27 info "Switching root to '$ROOTFS_DIR'..."
28 28
29 debug "Moving basic mounts onto rootfs"
30 for dir in `awk '/\/dev.* \/run\/media/{print $2}' /proc/mounts`; do
31 # Parse any OCT or HEX encoded chars such as spaces
32 # in the mount points to actual ASCII chars
33 dir=`printf $dir`
34 mkdir -p "${ROOTFS_DIR}/media/${dir##*/}"
35 mount -n --move "$dir" "${ROOTFS_DIR}/media/${dir##*/}"
36 done
37
29 debug "Moving /dev, /proc and /sys onto rootfs..." 38 debug "Moving /dev, /proc and /sys onto rootfs..."
30 mount --move /dev $ROOTFS_DIR/dev 39 mount --move /dev $ROOTFS_DIR/dev
31 mount --move /proc $ROOTFS_DIR/proc 40 mount --move /proc $ROOTFS_DIR/proc