nixos/systemd-stage-1: Minor fixups

- Fix the name of the env
- Add the correct kmod to the initrd
- Add `less` to make journalctl usable
- Fix SYSTEMD_SULOGIN_FORCe for rescue.target
- Add some missing binaries
This commit is contained in:
Janne Heß 2022-04-08 14:29:13 +01:00
parent 72861e1902
commit adab6ce552
No known key found for this signature in database
GPG key ID: 69165158F05265DF
3 changed files with 9 additions and 8 deletions

View file

@ -125,7 +125,7 @@ let
}; };
initrdBinEnv = pkgs.buildEnv { initrdBinEnv = pkgs.buildEnv {
name = "initrd-emergency-env"; name = "initrd-bin-env";
paths = map getBin cfg.initrdBin; paths = map getBin cfg.initrdBin;
pathsToLink = ["/bin" "/sbin"]; pathsToLink = ["/bin" "/sbin"];
postBuild = concatStringsSep "\n" (mapAttrsToList (n: v: "ln -s '${v}' $out/bin/'${n}'") cfg.extraBin); postBuild = concatStringsSep "\n" (mapAttrsToList (n: v: "ln -s '${v}' $out/bin/'${n}'") cfg.extraBin);
@ -355,8 +355,9 @@ in {
boot.initrd.availableKernelModules = [ "autofs4" ]; # systemd needs this for some features boot.initrd.availableKernelModules = [ "autofs4" ]; # systemd needs this for some features
boot.initrd.systemd = { boot.initrd.systemd = {
initrdBin = [pkgs.bash pkgs.coreutils pkgs.kmod cfg.package] ++ config.system.fsPackages; initrdBin = [pkgs.bash pkgs.coreutils cfg.package.kmod cfg.package] ++ config.system.fsPackages;
extraBin = { extraBin = {
less = "${pkgs.less}/bin/less";
mount = "${cfg.package.util-linux}/bin/mount"; mount = "${cfg.package.util-linux}/bin/mount";
umount = "${cfg.package.util-linux}/bin/umount"; umount = "${cfg.package.util-linux}/bin/umount";
}; };
@ -367,7 +368,7 @@ in {
"/etc/systemd/system.conf".text = '' "/etc/systemd/system.conf".text = ''
[Manager] [Manager]
DefaultEnvironment=PATH=/bin:/sbin DefaultEnvironment=PATH=/bin:/sbin ${optionalString (isBool cfg.emergencyAccess && cfg.emergencyAccess) "SYSTEMD_SULOGIN_FORCE=1"}
''; '';
"/etc/fstab".source = fstab; "/etc/fstab".source = fstab;
@ -394,7 +395,9 @@ in {
"${cfg.package}/lib/systemd/systemd-journald" "${cfg.package}/lib/systemd/systemd-journald"
"${cfg.package}/lib/systemd/systemd-makefs" "${cfg.package}/lib/systemd/systemd-makefs"
"${cfg.package}/lib/systemd/systemd-modules-load" "${cfg.package}/lib/systemd/systemd-modules-load"
"${cfg.package}/lib/systemd/systemd-random-seed"
"${cfg.package}/lib/systemd/systemd-remount-fs" "${cfg.package}/lib/systemd/systemd-remount-fs"
"${cfg.package}/lib/systemd/systemd-shutdown"
"${cfg.package}/lib/systemd/systemd-sulogin-shell" "${cfg.package}/lib/systemd/systemd-sulogin-shell"
"${cfg.package}/lib/systemd/systemd-sysctl" "${cfg.package}/lib/systemd/systemd-sysctl"
"${cfg.package}/lib/systemd/systemd-udevd" "${cfg.package}/lib/systemd/systemd-udevd"
@ -410,7 +413,7 @@ in {
"${cfg.package.util-linux}/bin/sulogin" "${cfg.package.util-linux}/bin/sulogin"
# so NSS can look up usernames # so NSS can look up usernames
"${pkgs.glibc}/lib/libnss_files.so" "${pkgs.glibc}/lib/libnss_files.so.2"
] ++ jobScripts; ] ++ jobScripts;
targets.initrd.aliases = ["default.target"]; targets.initrd.aliases = ["default.target"];
@ -428,9 +431,6 @@ in {
(v: let n = escapeSystemdPath v.where; (v: let n = escapeSystemdPath v.where;
in nameValuePair "${n}.automount" (automountToUnit n v)) cfg.automounts); in nameValuePair "${n}.automount" (automountToUnit n v)) cfg.automounts);
services.emergency = mkIf (isBool cfg.emergencyAccess && cfg.emergencyAccess) {
environment.SYSTEMD_SULOGIN_FORCE = "1";
};
# The unit in /run/systemd/generator shadows the unit in # The unit in /run/systemd/generator shadows the unit in
# /etc/systemd/system, but will still apply drop-ins from # /etc/systemd/system, but will still apply drop-ins from
# /etc/systemd/system/foo.service.d/ # /etc/systemd/system/foo.service.d/

View file

@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
passthru.tests = { passthru.tests = {
inherit (nixosTests) keymap kbd-setfont-decompress kbd-update-search-paths-patch; inherit (nixosTests) keymap kbd-setfont-decompress kbd-update-search-paths-patch;
}; };
passthru.gzip = gzip;
meta = with lib; { meta = with lib; {
homepage = "https://kbd-project.org/"; homepage = "https://kbd-project.org/";

View file

@ -675,7 +675,7 @@ stdenv.mkDerivation {
# runtime; otherwise we can't and we need to reboot. # runtime; otherwise we can't and we need to reboot.
interfaceVersion = 2; interfaceVersion = 2;
inherit withCryptsetup util-linux; inherit withCryptsetup util-linux kmod kbd;
tests = { tests = {
inherit (nixosTests) switchTest; inherit (nixosTests) switchTest;