mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-11-17 06:06:13 +03:00
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.
|
||||
set -x
|
||||
;;
|
||||
resume=*)
|
||||
set -- $(IFS==; echo $o)
|
||||
resumeDevice=$2
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
@ -72,46 +68,12 @@ if [ -n "@readOnlyStore@" ]; then
|
||||
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.
|
||||
if [ -n "@useHostResolvConf@" ] && [ -e /etc/resolv.conf ]; then
|
||||
resolvconf -m 1000 -a host </etc/resolv.conf
|
||||
fi
|
||||
|
||||
|
||||
# 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.
|
||||
exec {logOutFd}>&1 {logErrFd}>&2
|
||||
@ -133,22 +95,9 @@ echo "running activation script..."
|
||||
$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.
|
||||
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.
|
||||
@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.start()
|
||||
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 New Issue
Block a user