Merge pull request #165684 from helsinki-systems/clean/stage-2-init
nixos/stage-2-init: Clean up legacy commands
This commit is contained in:
commit
e65b825672
|
@ -12,10 +12,6 @@ for o in $(</proc/cmdline); do
|
||||||
# Show each command.
|
# Show each command.
|
||||||
set -x
|
set -x
|
||||||
;;
|
;;
|
||||||
resume=*)
|
|
||||||
set -- $(IFS==; echo $o)
|
|
||||||
resumeDevice=$2
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -72,46 +68,12 @@ if [ -n "@readOnlyStore@" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Provide a /etc/mtab.
|
|
||||||
install -m 0755 -d /etc
|
|
||||||
test -e /etc/fstab || touch /etc/fstab # to shut up mount
|
|
||||||
rm -f /etc/mtab* # not that we care about stale locks
|
|
||||||
ln -s /proc/mounts /etc/mtab
|
|
||||||
|
|
||||||
|
|
||||||
# More special file systems, initialise required directories.
|
|
||||||
[ -e /proc/bus/usb ] && mount -t usbfs usbfs /proc/bus/usb # UML doesn't have USB by default
|
|
||||||
install -m 01777 -d /tmp
|
|
||||||
install -m 0755 -d /var/{log,lib,db} /nix/var /etc/nixos/ \
|
|
||||||
/run/lock /home /bin # for the /bin/sh symlink
|
|
||||||
|
|
||||||
|
|
||||||
# Miscellaneous boot time cleanup.
|
|
||||||
rm -rf /var/run /var/lock
|
|
||||||
rm -f /etc/{group,passwd,shadow}.lock
|
|
||||||
|
|
||||||
|
|
||||||
# Also get rid of temporary GC roots.
|
|
||||||
rm -rf /nix/var/nix/gcroots/tmp /nix/var/nix/temproots
|
|
||||||
|
|
||||||
|
|
||||||
# For backwards compatibility, symlink /var/run to /run, and /var/lock
|
|
||||||
# to /run/lock.
|
|
||||||
ln -s /run /var/run
|
|
||||||
ln -s /run/lock /var/lock
|
|
||||||
|
|
||||||
|
|
||||||
# Clear the resume device.
|
|
||||||
if test -n "$resumeDevice"; then
|
|
||||||
mkswap "$resumeDevice" || echo 'Failed to clear saved image.'
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Use /etc/resolv.conf supplied by systemd-nspawn, if applicable.
|
# Use /etc/resolv.conf supplied by systemd-nspawn, if applicable.
|
||||||
if [ -n "@useHostResolvConf@" ] && [ -e /etc/resolv.conf ]; then
|
if [ -n "@useHostResolvConf@" ] && [ -e /etc/resolv.conf ]; then
|
||||||
resolvconf -m 1000 -a host </etc/resolv.conf
|
resolvconf -m 1000 -a host </etc/resolv.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Log the script output to /dev/kmsg or /run/log/stage-2-init.log.
|
# Log the script output to /dev/kmsg or /run/log/stage-2-init.log.
|
||||||
# Only at this point are all the necessary prerequisites ready for these commands.
|
# Only at this point are all the necessary prerequisites ready for these commands.
|
||||||
exec {logOutFd}>&1 {logErrFd}>&2
|
exec {logOutFd}>&1 {logErrFd}>&2
|
||||||
|
@ -133,22 +95,9 @@ echo "running activation script..."
|
||||||
$systemConfig/activate
|
$systemConfig/activate
|
||||||
|
|
||||||
|
|
||||||
# Restore the system time from the hardware clock. We do this after
|
|
||||||
# running the activation script to be sure that /etc/localtime points
|
|
||||||
# at the current time zone.
|
|
||||||
if [ -e /dev/rtc ]; then
|
|
||||||
hwclock --hctosys
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# Record the boot configuration.
|
# Record the boot configuration.
|
||||||
ln -sfn "$systemConfig" /run/booted-system
|
ln -sfn "$systemConfig" /run/booted-system
|
||||||
|
|
||||||
# Prevent the booted system from being garbage-collected. If it weren't
|
|
||||||
# a gcroot, if we were running a different kernel, switched system,
|
|
||||||
# and garbage collected all, we could not load kernel modules anymore.
|
|
||||||
ln -sfn /run/booted-system /nix/var/nix/gcroots/booted-system
|
|
||||||
|
|
||||||
|
|
||||||
# Run any user-specified commands.
|
# Run any user-specified commands.
|
||||||
@shell@ @postBootCommands@
|
@shell@ @postBootCommands@
|
||||||
|
|
|
@ -100,5 +100,22 @@ in
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d /etc/nixos 0755 root root - -"
|
||||||
|
"d /nix/var 0755 root root - -"
|
||||||
|
"L+ /nix/var/nix/gcroots/booted-system 0755 root root - /run/booted-system"
|
||||||
|
"d /run/lock 0755 root root - -"
|
||||||
|
"d /var/db 0755 root root - -"
|
||||||
|
"L /etc/mtab - - - - ../proc/mounts"
|
||||||
|
"L /var/lock - - - - ../run/lock"
|
||||||
|
# Boot-time cleanup
|
||||||
|
"R! /etc/group.lock - - - - -"
|
||||||
|
"R! /etc/passwd.lock - - - - -"
|
||||||
|
"R! /etc/shadow.lock - - - - -"
|
||||||
|
"R! /etc/mtab* - - - - -"
|
||||||
|
"R! /nix/var/nix/gcroots/tmp - - - - -"
|
||||||
|
"R! /nix/var/nix/temproots - - - - -"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,6 +117,11 @@ in makeTest {
|
||||||
resume = create_named_machine("resume")
|
resume = create_named_machine("resume")
|
||||||
resume.start()
|
resume.start()
|
||||||
resume.succeed("grep 'not persisted to disk' /run/test/suspended")
|
resume.succeed("grep 'not persisted to disk' /run/test/suspended")
|
||||||
|
|
||||||
|
# Ensure we don't restore from hibernation when booting again
|
||||||
|
resume.crash()
|
||||||
|
resume.wait_for_unit("default.target")
|
||||||
|
resume.fail("grep 'not persisted to disk' /run/test/suspended")
|
||||||
'';
|
'';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue