diff --git a/dracut.kernel.7.xml b/dracut.kernel.7.xml
index 07fdce2c..0dc1ce8c 100644
--- a/dracut.kernel.7.xml
+++ b/dracut.kernel.7.xml
@@ -164,6 +164,14 @@ This parameter can be specified multiple times.
set udev to loglevel debug
+
+
+ rd.timestamp
+
+
+ export RDTIMESTAMP environment variable to init, which is set to the uptime of the dracut start.
+
+
diff --git a/modules.d/99base/init b/modules.d/99base/init
index bff390d6..010e329b 100755
--- a/modules.d/99base/init
+++ b/modules.d/99base/init
@@ -77,6 +77,9 @@ mknod -m 0666 /dev/null c 1 3
mount -t proc /proc /proc >/dev/null 2>&1
mount -t sysfs /sys /sys >/dev/null 2>&1
+read RDTIMESTAMP _tmp < /proc/uptime
+unset _tmp
+
if [ ! -c /dev/ptmx ]; then
# try to mount devtmpfs
if ! mount -t devtmpfs -omode=0755 udev /dev >/dev/null 2>&1; then
@@ -305,6 +308,7 @@ else
;;
esac
done
+ initargs="$initargs"
fi
# Debug: Copy state
@@ -313,6 +317,12 @@ if getarg rdcopystate; then
cp /tmp/* /dev/.initramfs/ >/dev/null 2>&1
fi
+if getarg rd.timestamp; then
+ export RDTIMESTAMP
+else
+ unset RDTIMESTAMP
+fi
+
info "Switching root"
wait_for_loginit
@@ -320,7 +330,6 @@ wait_for_loginit
umask $OLD_UMASK
unset HOME
unset TERM
-
exec switch_root "$NEWROOT" "$INIT" $initargs || {
echo "Something went very badly wrong in the initramfs. Please "
echo "file a bug against dracut."