initramfs-framework: mount /run and move to rootfs before switch_root

Mount /run as tmpfs during early init and include it in the set of
mounts moved to $ROOTFS_DIR prior to exec switch_root.

Having /run available early lets initramfs modules stamp state that can
later influence systemd service jobs, since systemd will reuse the mount
point instead of creating a new one during boot.

This is particularly useful with ostree, as it uses /run/ostree-booted
as way to describe that the rootfs comes from an ostree deployment.

(From OE-Core rev: 3a4bd7ddefbf5b412a2b4031d491f5a50f1908cd)

Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ricardo Salveti
2025-08-18 21:56:05 -03:00
committed by Richard Purdie
parent 81d31fbd6a
commit 34df6b71b9
2 changed files with 5 additions and 2 deletions

View File

@@ -35,10 +35,11 @@ finish_run() {
mount -n --move "$dir" "${ROOTFS_DIR}/media/${dir##*/}"
done
debug "Moving /dev, /proc and /sys onto rootfs..."
debug "Moving /dev, /proc, /sys and /run onto rootfs..."
mount --move /dev $ROOTFS_DIR/dev
mount --move /proc $ROOTFS_DIR/proc
mount --move /sys $ROOTFS_DIR/sys
mount --move /run $ROOTFS_DIR/run
cd $ROOTFS_DIR
exec switch_root $ROOTFS_DIR ${bootparam_init:-/sbin/init}

View File

@@ -81,9 +81,11 @@ EFI_DIR=/sys/firmware/efi # place to store device firmware information
touch /etc/fstab
# initialize /proc, /sys, /run/lock and /var/lock
mkdir -p /proc /sys /run/lock /var/lock
mkdir -p /proc /sys /run /var/lock
mount -t proc proc /proc
mount -t sysfs sysfs /sys
mount -t tmpfs tmpfs /run
mkdir -p /run/lock
if [ -d $EFI_DIR ];then
mount -t efivarfs none /sys/firmware/efi/efivars