From 81828f5accbc2ca2094331d7ab419e2afaeb0ae6 Mon Sep 17 00:00:00 2001 From: Dmitriy Kholkin Date: Sun, 30 Jan 2022 00:09:53 +0000 Subject: [PATCH] fix install script --- install/install-btrfs.sh | 36 ++++----- machines/Packard-Server/default.nix | 5 ++ .../Packard-Server/hardware-configuration.nix | 78 +++++++++++++++++++ 3 files changed, 97 insertions(+), 22 deletions(-) mode change 100644 => 100755 install/install-btrfs.sh create mode 100644 machines/Packard-Server/hardware-configuration.nix diff --git a/install/install-btrfs.sh b/install/install-btrfs.sh old mode 100644 new mode 100755 index ea9c4ae..5b5b47b --- a/install/install-btrfs.sh +++ b/install/install-btrfs.sh @@ -1,14 +1,14 @@ #! /usr/bin/env nix-shell -#! nix-shell -i bash -p perl -p gptfdisk -p parted +#! nix-shell -i bash -p perl -p gptfdisk -p parted -p git set -e CONFIG_FOLDER="$(dirname "$(pwd)")" -DEVICE_NAME=AMD-Workstation -MAX_JOBS=12 -SWAP_SIZE=16GiB -NIXOS_COMMIT="364b5555ee04bf61ee0075a3adab4c9351a8d38c" -USE_ECNRYPTION=false +DEVICE_NAME=Packard-Server +MAX_JOBS=4 +SWAP_SIZE=12GiB +#NIXOS_COMMIT="364b5555ee04bf61ee0075a3adab4c9351a8d38c" +USE_ECNRYPTION=true clean_stdin() { while read -r -t 0; do read -r; done @@ -198,21 +198,11 @@ if [[ "$SWAP" != "NONE" ]]; then fi HARDWARE_CONFIG=$(mktemp) -if [[ "$USE_ECNRYPTION" = true ]] -then -cat < "$HARDWARE_CONFIG" - networking.hostId = "$HOSTID"; - boot.initrd.luks.devices."$LUKS_DEVICE_NAME".device = "/dev/disk/by-partuuid/$LINUX_DISK_UUID"; - boot.initrd.supportedFilesystems = [ "btrfs" ]; - boot.supportedFilesystems = [ "btrfs" ]; -CONFIG -else cat < "$HARDWARE_CONFIG" networking.hostId = "$HOSTID"; boot.initrd.supportedFilesystems = [ "btrfs" ]; boot.supportedFilesystems = [ "btrfs" ]; CONFIG -fi pprint "Append BTRFS configuration to hardware-configuration.nix" sed -i "\$e cat $HARDWARE_CONFIG" /mnt/etc/nixos/hardware-configuration.nix @@ -221,16 +211,18 @@ if [[ "$SWAP" != "NONE" ]]; then perl -0777 -pi -e "s#swapDevices.+#swapDevices = [\n {\n device = \"/dev/disk/by-partuuid/$SWAP_UUID\";\n randomEncryption.enable = true;\n }\n ];#" /mnt/etc/nixos/hardware-configuration.nix fi -sed -i "s#\"subvol=nixos\"#\"subvol=nixos\" \"compress-force=zstd\" \"noatime\" \"autodefrag\" \"ssd\"#" /mnt/etc/nixos/hardware-configuration.nix -sed -i "s#\"subvol=home\"#\"subvol=home\" \"compress-force=zstd\" \"noatime\" \"autodefrag\" \"ssd\"#" /mnt/etc/nixos/hardware-configuration.nix -sed -i "s#\"subvol=nix\"#\"subvol=nix\" \"compress-force=zstd\" \"noatime\" \"autodefrag\" \"ssd\"#" /mnt/etc/nixos/hardware-configuration.nix -sed -i "s#\"subvol=var\"#\"subvol=var\" \"compress-force=zstd\" \"noatime\" \"autodefrag\" \"ssd\"#" /mnt/etc/nixos/hardware-configuration.nix -sed -i "s# \"subvol=bittorrent\" #\n \"subvol=bittorrent\" \"nodatacow\" \"ssd\"\n \"uid=\${toString config.users.users.alukard.uid}\"\n \"gid=\${toString config.users.groups.users.gid}\"\n #" /mnt/etc/nixos/hardware-configuration.nix -sed -i "s# \"subvol=libvirt\" #\n \"subvol=libvirt\" \"nodatacow\" \"ssd\"\n \"uid=\${toString config.users.users.alukard.uid}\"\n \"gid=\${toString config.users.groups.users.gid}\"\n #" /mnt/etc/nixos/hardware-configuration.nix +sed -i "s#\"subvol=nixos\"#\"subvol=nixos\" \"compress-force=zstd\" \"noatime\" \"autodefrag\"#" /mnt/etc/nixos/hardware-configuration.nix +sed -i "s#\"subvol=home\"#\"subvol=home\" \"compress-force=zstd\" \"noatime\" \"autodefrag\"#" /mnt/etc/nixos/hardware-configuration.nix +sed -i "s#\"subvol=nix\"#\"subvol=nix\" \"compress-force=zstd\" \"noatime\" \"autodefrag\"#" /mnt/etc/nixos/hardware-configuration.nix +sed -i "s#\"subvol=var\"#\"subvol=var\" \"compress-force=zstd\" \"noatime\" \"autodefrag\"#" /mnt/etc/nixos/hardware-configuration.nix +sed -i "s# \"subvol=bittorrent\" #\n \"subvol=bittorrent\" \"nodatacow\"\n \"uid=\${toString config.users.users.alukard.uid}\"\n \"gid=\${toString config.users.groups.users.gid}\"\n #" /mnt/etc/nixos/hardware-configuration.nix +sed -i "s# \"subvol=libvirt\" #\n \"subvol=libvirt\" \"nodatacow\"\n \"uid=\${toString config.users.users.alukard.uid}\"\n \"gid=\${toString config.users.groups.users.gid}\"\n #" /mnt/etc/nixos/hardware-configuration.nix cp /mnt/etc/nixos/hardware-configuration.nix $CONFIG_FOLDER/machines/$DEVICE_NAME/hardware-configuration.nix +chown 1000:users ../machines/$DEVICE_NAME/hardware-configuration.nix # Change for flakes sed -i "s##\"\${inputs.nixpkgs}/nixos/modules/installer/scan/not-detected.nix\"#" $CONFIG_FOLDER/machines/$DEVICE_NAME/hardware-configuration.nix +git add -A clean_stdin read -p "> Do you want to execute nixos-install command?" -n 1 -r diff --git a/machines/Packard-Server/default.nix b/machines/Packard-Server/default.nix index 03ba420..4b18613 100644 --- a/machines/Packard-Server/default.nix +++ b/machines/Packard-Server/default.nix @@ -31,4 +31,9 @@ deviceSpecific.isLaptop = lib.mkForce true; boot.cleanTmpDir = true; + boot.loader = { + timeout = lib.mkForce 4; + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; } diff --git a/machines/Packard-Server/hardware-configuration.nix b/machines/Packard-Server/hardware-configuration.nix new file mode 100644 index 0000000..3484485 --- /dev/null +++ b/machines/Packard-Server/hardware-configuration.nix @@ -0,0 +1,78 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sr_mod" "sdhci_pci" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/50aa73b9-114b-450b-8f87-391bc9d877f1"; + fsType = "btrfs"; + options = [ "subvol=nixos" "compress-force=zstd" "noatime" "autodefrag" ]; + }; + + boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/03696b4c-5edb-43b7-b323-58e01d6c811f"; + + fileSystems."/nix" = + { device = "/dev/disk/by-uuid/50aa73b9-114b-450b-8f87-391bc9d877f1"; + fsType = "btrfs"; + options = [ "subvol=nix" "compress-force=zstd" "noatime" "autodefrag" ]; + }; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/50aa73b9-114b-450b-8f87-391bc9d877f1"; + fsType = "btrfs"; + options = [ "subvol=home" "compress-force=zstd" "noatime" "autodefrag" ]; + }; + + fileSystems."/var" = + { device = "/dev/disk/by-uuid/50aa73b9-114b-450b-8f87-391bc9d877f1"; + fsType = "btrfs"; + options = [ "subvol=var" "compress-force=zstd" "noatime" "autodefrag" ]; + }; + + fileSystems."/media/bittorrent" = + { device = "/dev/disk/by-uuid/50aa73b9-114b-450b-8f87-391bc9d877f1"; + fsType = "btrfs"; + options = [ + "subvol=bittorrent" "nodatacow" + "uid=${toString config.users.users.alukard.uid}" + "gid=${toString config.users.groups.users.gid}" + ]; + }; + + fileSystems."/media/libvirt" = + { device = "/dev/disk/by-uuid/50aa73b9-114b-450b-8f87-391bc9d877f1"; + fsType = "btrfs"; + options = [ + "subvol=libvirt" "nodatacow" + "uid=${toString config.users.users.alukard.uid}" + "gid=${toString config.users.groups.users.gid}" + ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/F872-88F3"; + fsType = "vfat"; + }; + + swapDevices = [ + { + device = "/dev/disk/by-partuuid/0c913e15-8990-44f2-aced-24edc7114f93"; + randomEncryption.enable = true; + } + ]; + + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + networking.hostId = "ecd4e08e"; + boot.initrd.supportedFilesystems = [ "btrfs" ]; + boot.supportedFilesystems = [ "btrfs" ]; +}