57 lines
1.5 KiB
Nix
57 lines
1.5 KiB
Nix
# ISO does not work with systemd initrd yet https://github.com/NixOS/nixpkgs/pull/291750
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
{
|
|
imports = [ ];
|
|
|
|
config = lib.mkIf (!config.me.buildingIso) {
|
|
|
|
boot.loader.grub.enable = false;
|
|
# Use the systemd-boot EFI boot loader.
|
|
boot.loader.systemd-boot.enable = true;
|
|
# TODO: make not write bootx64.efi
|
|
boot.loader.efi.canTouchEfiVariables = false;
|
|
|
|
# Automatically delete old generations
|
|
boot.loader.systemd-boot.configurationLimit = 3;
|
|
|
|
# Check what will be lost with `zfs diff zroot/linux/root@blank`
|
|
boot.initrd.systemd.enable = lib.mkDefault true;
|
|
boot.initrd.systemd.services.zfs-rollback = {
|
|
description = "Rollback ZFS root dataset to blank snapshot";
|
|
wantedBy = [
|
|
"initrd.target"
|
|
];
|
|
after = [
|
|
"zfs-import-zroot.service"
|
|
];
|
|
before = [
|
|
"sysroot.mount"
|
|
];
|
|
path = with pkgs; [
|
|
zfs
|
|
];
|
|
unitConfig.DefaultDependencies = "no";
|
|
serviceConfig.Type = "oneshot";
|
|
script = ''
|
|
zfs rollback -r zroot/linux/nix/root@blank
|
|
zfs rollback -r zroot/linux/nix/home@blank
|
|
echo "rollback complete"
|
|
'';
|
|
};
|
|
};
|
|
}
|
|
# efibootmgr -c -d /dev/sda -p 1 -L NixOS-boot -l '\EFI\NixOS-boot\grubx64.efi'
|
|
|
|
# Text-only:
|
|
# sudo cp "$(nix-build '<nixpkgs>' --no-out-link -A 'refind')/share/refind/refind_x64.efi" /boot/EFI/boot/bootx64.efi
|
|
|
|
# Full graphics:
|
|
# $ sudo nix-shell -p refind efibootmgr
|
|
# $ refind-install
|