nixos: Switch to systemd initrd
All checks were successful
CI / Check, build and cache Nix flake (push) Successful in 17m17s
All checks were successful
CI / Check, build and cache Nix flake (push) Successful in 17m17s
This commit is contained in:
parent
c4e6896a0c
commit
373fb45831
@ -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;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -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 [
|
||||||
|
@ -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 =
|
||||||
''
|
''
|
||||||
|
@ -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..."
|
||||||
|
Loading…
Reference in New Issue
Block a user