diff options
| author | Muhammad Hamza <Muhammad_Hamza@mentor.com> | 2022-06-17 10:50:22 +0500 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-07-08 08:27:16 +0100 |
| commit | ac874996c96d145440343136e273ab2552082275 (patch) | |
| tree | a72988161e3f0965be53bfbf02ca5e505cd46860 | |
| parent | 327f55e29811fb0b2925867ba06800cb3beafa50 (diff) | |
| download | poky-ac874996c96d145440343136e273ab2552082275.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: 0a3ebc5584384e4bf7d9c7ba4c827db587ef3bee)
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>
(cherry picked from commit ec53ffd01972d1be2d6a28de828b3f0b80dc1e61)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rwxr-xr-x | meta/recipes-core/initrdscripts/initramfs-framework/finish | 9 |
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 |
