nixos: Switch to systemd initrd
All checks were successful
CI / Check, build and cache Nix flake (push) Successful in 17m17s

This commit is contained in:
Jack O'Sullivan 2023-12-04 23:00:25 +00:00
parent c4e6896a0c
commit 373fb45831
4 changed files with 19 additions and 6 deletions

View File

@ -31,17 +31,14 @@
initrd = { initrd = {
availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "usbhid" "thunderbolt" ]; availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "usbhid" "thunderbolt" ];
luks = { luks = {
reusePassphrases = true;
devices = { devices = {
persist = { persist = {
device = "/dev/disk/by-uuid/27840c6f-445c-4b95-8c39-e69d07219f33"; device = "/dev/disk/by-uuid/27840c6f-445c-4b95-8c39-e69d07219f33";
allowDiscards = true; allowDiscards = true;
preLVM = false;
}; };
home = { home = {
device = "/dev/disk/by-uuid/c16c5038-7883-42c3-960a-a085a99364eb"; device = "/dev/disk/by-uuid/c16c5038-7883-42c3-960a-a085a99364eb";
allowDiscards = true; allowDiscards = true;
preLVM = false;
}; };
}; };
}; };

View File

@ -94,6 +94,7 @@ in
"net.ipv6.route.max_size" = mkDefault 16384; "net.ipv6.route.max_size" = mkDefault 16384;
}; };
}; };
loader = { loader = {
efi = { efi = {
efiSysMountPoint = mkDefault "/boot"; efiSysMountPoint = mkDefault "/boot";
@ -111,6 +112,14 @@ in
memtest86.enable = mkDefault true; memtest86.enable = mkDefault true;
}; };
}; };
initrd = {
systemd = {
enable = mkDefault true;
emergencyAccess = mkDefault true;
};
services.lvm.enable = mkDefault true;
};
}; };
environment.systemPackages = with pkgs; mkMerge [ environment.systemPackages = with pkgs; mkMerge [

View File

@ -208,7 +208,13 @@ in
mkdir -p -m 0755 "$root"/sbin "$root"/etc mkdir -p -m 0755 "$root"/sbin "$root"/etc
touch "$root"/etc/os-release touch "$root"/etc/os-release
ln -sf "${containerSystem}"/init "$root"/sbin/init
if [ -e "${containerSystem}"/prepare-root ]; then
initSource="${containerSystem}"/prepare-root
else
initSource="${containerSystem}"/init
fi
ln -sf "$initSource" "$root"/sbin/init
''; '';
postStop = postStop =
'' ''

View File

@ -224,8 +224,9 @@ in
# Catch non-existent source directories that are needed for boot (see `pathsNeededForBoot` in # Catch non-existent source directories that are needed for boot (see `pathsNeededForBoot` in
# nixos/lib/util.nix). We do this by monkey-patching the `waitDevice` function that would otherwise hang. # nixos/lib/util.nix). We do this by monkey-patching the `waitDevice` function that would otherwise hang.
boot.initrd.postDeviceCommands = # Seems like systemd initrd doesn't care because it uses the systemd.mount units
'' # ("If this mount is a bind mount and the specified path does not exist yet it is created as directory.")
boot.initrd.postDeviceCommands = mkIf (!config.boot.initrd.systemd.enable) ''
ensurePersistSource() { ensurePersistSource() {
[ -e "/mnt-root$1" ] && return [ -e "/mnt-root$1" ] && return
echo "Persistent source directory $1 does not exist, creating..." echo "Persistent source directory $1 does not exist, creating..."