From: Ricardo Salveti Date: Tue, 19 Aug 2025 00:56:05 +0000 (-0300) Subject: initramfs-framework: mount /run and move to rootfs before switch_root X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3a4bd7ddefbf5b412a2b4031d491f5a50f1908cd;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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. Signed-off-by: Ricardo Salveti Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/finish b/meta/recipes-core/initrdscripts/initramfs-framework/finish index 716c2f44af2..21eaa573934 100755 --- a/meta/recipes-core/initrdscripts/initramfs-framework/finish +++ b/meta/recipes-core/initrdscripts/initramfs-framework/finish @@ -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} diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/init b/meta/recipes-core/initrdscripts/initramfs-framework/init index a48b77e95eb..5dd252219ac 100755 --- a/meta/recipes-core/initrdscripts/initramfs-framework/init +++ b/meta/recipes-core/initrdscripts/initramfs-framework/init @@ -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