mirror of
https://github.com/Gerg-L/nixos.git
synced 2025-12-10 00:43:56 -05:00
switched to zfs on gerg-desktop
This commit is contained in:
parent
4d860b5d7a
commit
c9a3886cd5
4 changed files with 242 additions and 25 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
_: {
|
_: {lib, ...}: {
|
||||||
environment.etc = {
|
environment.etc = {
|
||||||
"issue" = {
|
"issue" = {
|
||||||
text = "[?12l[?25h";
|
text = "[?12l[?25h";
|
||||||
|
|
@ -17,11 +17,11 @@ _: {
|
||||||
};
|
};
|
||||||
loader = {
|
loader = {
|
||||||
systemd-boot = {
|
systemd-boot = {
|
||||||
enable = true;
|
enable = lib.mkDefault true;
|
||||||
consoleMode = "max";
|
consoleMode = "max";
|
||||||
editor = false;
|
editor = false;
|
||||||
};
|
};
|
||||||
efi.canTouchEfiVariables = true;
|
efi.canTouchEfiVariables = lib.mkDefault true;
|
||||||
timeout = 0;
|
timeout = 0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
inputs: {
|
inputs: {
|
||||||
pkgs,
|
pkgs,
|
||||||
settings,
|
settings,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
(import ../imports/boot.nix inputs)
|
# (import ../imports/boot.nix inputs)
|
||||||
(import ../imports/dwm.nix inputs)
|
(import ../imports/dwm.nix inputs)
|
||||||
(import ../imports/fonts.nix inputs)
|
(import ../imports/fonts.nix inputs)
|
||||||
(import ../imports/git.nix inputs)
|
(import ../imports/git.nix inputs)
|
||||||
|
|
@ -27,8 +28,10 @@ inputs: {
|
||||||
networkmanagerapplet #gui connection control
|
networkmanagerapplet #gui connection control
|
||||||
vlc #play stuff
|
vlc #play stuff
|
||||||
];
|
];
|
||||||
networking.hostName = settings.hostname;
|
networking = {
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
hostName = settings.hostname;
|
||||||
|
hostId = "288b56db";
|
||||||
|
};
|
||||||
hardware.cpu.amd.updateMicrocode = true;
|
hardware.cpu.amd.updateMicrocode = true;
|
||||||
#user managment
|
#user managment
|
||||||
users = {
|
users = {
|
||||||
|
|
@ -39,30 +42,120 @@ inputs: {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
boot = {
|
boot = {
|
||||||
|
zfs.devNodes = "/dev/disk/by-id/";
|
||||||
|
kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
|
||||||
|
kernelParams = ["nohibernate" "zfs.zfs_arc_max=17179869184"];
|
||||||
|
supportedFilesystems = ["zfs" "vfat"];
|
||||||
initrd = {
|
initrd = {
|
||||||
kernelModules = ["amdgpu"];
|
kernelModules = ["amdgpu"];
|
||||||
availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "sd_mod"];
|
availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "sd_mod" "hid_generic"];
|
||||||
supportedFilesystems = ["ext4" "vfat"];
|
|
||||||
includeDefaultModules = false;
|
includeDefaultModules = false;
|
||||||
};
|
};
|
||||||
|
loader = {
|
||||||
|
efi = {
|
||||||
|
canTouchEfiVariables = false;
|
||||||
|
};
|
||||||
|
generationsDir.copyKernels = true;
|
||||||
|
systemd-boot.enable = false;
|
||||||
|
grub = {
|
||||||
|
enable = true;
|
||||||
|
efiInstallAsRemovable = true;
|
||||||
|
version = 2;
|
||||||
|
copyKernels = true;
|
||||||
|
efiSupport = true;
|
||||||
|
zfsSupport = true;
|
||||||
|
mirroredBoots = [
|
||||||
|
{
|
||||||
|
path = "/boot/efis/nvme-SHPP41-500GM_SSB4N6719101A4N0E";
|
||||||
|
devices = ["/dev/disk/by-id/nvme-SHPP41-500GM_SSB4N6719101A4N0E"];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
path = "/boot/efis/nvme-SHPP41-500GM_SSB4N6719101A4N22";
|
||||||
|
devices = ["/dev/disk/by-id/nvme-SHPP41-500GM_SSB4N6719101A4N22"];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.services.zfs-mount.enable = false;
|
||||||
|
services.zfs = {
|
||||||
|
autoScrub.enable = true;
|
||||||
|
trim.enable = true;
|
||||||
|
};
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "rpool/nixos/root";
|
||||||
|
fsType = "zfs";
|
||||||
|
options = ["X-mount.mkdir"];
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems."/home" = {
|
||||||
"/" = {
|
device = "rpool/nixos/home";
|
||||||
device = "/dev/disk/by-uuid/9e5c0a74-753a-4ebe-b8f1-5c7bdde21deb";
|
fsType = "zfs";
|
||||||
fsType = "ext4";
|
options = ["X-mount.mkdir"];
|
||||||
label = "nixos";
|
|
||||||
noCheck = false;
|
|
||||||
mountPoint = "/";
|
|
||||||
neededForBoot = true;
|
|
||||||
};
|
};
|
||||||
"/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/79C3-9AB6";
|
fileSystems."/var" = {
|
||||||
|
device = "rpool/nixos/var";
|
||||||
|
fsType = "zfs";
|
||||||
|
options = ["X-mount.mkdir"];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/var/lib" = {
|
||||||
|
device = "rpool/nixos/var/lib";
|
||||||
|
fsType = "zfs";
|
||||||
|
options = ["X-mount.mkdir"];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/var/log" = {
|
||||||
|
device = "rpool/nixos/var/log";
|
||||||
|
fsType = "zfs";
|
||||||
|
options = ["X-mount.mkdir"];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "bpool/nixos/root";
|
||||||
|
fsType = "zfs";
|
||||||
|
options = ["X-mount.mkdir"];
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot/efis/nvme-SHPP41-500GM_SSSB4N6719101A4N0E" = {
|
||||||
|
device = "/dev/disk/by-id/nvme-SHPP41-500GM_SSB4N6719101A4N0E-part2";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
label = "BOOT";
|
options = [
|
||||||
noCheck = false;
|
"X-mount.mkdir"
|
||||||
mountPoint = "/boot";
|
"x-systemd.idle-timout=1min"
|
||||||
neededForBoot = true;
|
"x-systemd.automount"
|
||||||
|
"noauto"
|
||||||
|
"nofail"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
fileSystems."/boot/efis/nvme-SHPP41-500GM_SSB4N6719101A4N22" = {
|
||||||
|
device = "/dev/disk/by-id/nvme-SHPP41-500GM_SSB4N6719101A4N22-part2";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [
|
||||||
|
"X-mount.mkdir"
|
||||||
|
"x-systemd.idle-timout=1min"
|
||||||
|
"x-systemd.automount"
|
||||||
|
"noauto"
|
||||||
|
"nofail"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
swapDevices = [
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-id/nvme-SHPP41-500GM_SSB4N6719101A4N0E-part4";
|
||||||
|
discardPolicy = "both";
|
||||||
|
randomEncryption = {
|
||||||
|
enable = true;
|
||||||
|
allowDiscards = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
device = "/dev/disk/by-id/nvme-SHPP41-500GM_SSB4N6719101A4N22-part4";
|
||||||
|
discardPolicy = "both";
|
||||||
|
randomEncryption = {
|
||||||
|
enable = true;
|
||||||
|
allowDiscards = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
|
||||||
19
zfs/mount.sh
Normal file
19
zfs/mount.sh
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/sh
|
||||||
|
DISK='/dev/disk/by-id/nvme-SHPP41-500GM_SSB4N6719101A4N22 /dev/disk/by-id/nvme-SHPP41-500GM_SSB4N6719101A4N0E'
|
||||||
|
set -e
|
||||||
|
zpool import -f rpool
|
||||||
|
zpool import -f bpool
|
||||||
|
zfs load-key rpool/nixos
|
||||||
|
mount -t zfs rpool/nixos/root /mnt/
|
||||||
|
|
||||||
|
mount -t zfs rpool/nixos/home /mnt/home
|
||||||
|
|
||||||
|
mount -t zfs rpool/nixos/var /mnt/var
|
||||||
|
mount -t zfs rpool/nixos/var/lib /mnt/var/lib
|
||||||
|
mount -t zfs rpool/nixos/var/log /mnt/var/log
|
||||||
|
|
||||||
|
mount -t zfs bpool/nixos/root /mnt/boot
|
||||||
|
|
||||||
|
for i in ${DISK}; do
|
||||||
|
mount -t vfat ${i}-part2 /mnt/boot/efis/${i##*/}
|
||||||
|
done
|
||||||
105
zfs/zfs_setup.sh
Normal file
105
zfs/zfs_setup.sh
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
#!/bin/sh
|
||||||
|
DISK='/dev/disk/by-id/nvme-SHPP41-500GM_SSB4N6719101A4N22 /dev/disk/by-id/nvme-SHPP41-500GM_SSB4N6719101A4N0E'
|
||||||
|
|
||||||
|
INST_PARTSIZE_SWAP=16
|
||||||
|
INST_PARTSIZE_RPOOL=
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
for i in ${DISK}; do
|
||||||
|
|
||||||
|
blkdiscard -f $i
|
||||||
|
|
||||||
|
sgdisk --zap-all $i
|
||||||
|
sgdisk -a1 -n1:24K:+1000K -t1:EF02 $i
|
||||||
|
sgdisk -n2:01M:+1G -t2:EF00 $i
|
||||||
|
sgdisk -n3:0:+4G -t3:BE00 $i
|
||||||
|
sgdisk -n4:0:+${INST_PARTSIZE_SWAP}G -t4:8200 $i
|
||||||
|
|
||||||
|
if test -z $INST_PARTSIZE_RPOOL; then
|
||||||
|
sgdisk -n5:0:0 -t5:BF00 $i
|
||||||
|
else
|
||||||
|
sgdisk -n5:0:+${INST_PARTSIZE_RPOOL}G -t5:BF00 $i
|
||||||
|
fi
|
||||||
|
|
||||||
|
sync && udevadm settle && sleep 3
|
||||||
|
|
||||||
|
cryptsetup open --type plain --key-file /dev/random $i-part4 ${i##*/}-part4
|
||||||
|
mkswap /dev/mapper/${i##*/}-part4
|
||||||
|
swapon /dev/mapper/${i##*/}-part4
|
||||||
|
done
|
||||||
|
|
||||||
|
zpool create \
|
||||||
|
-o compatibility=grub2 \
|
||||||
|
-o ashift=12 \
|
||||||
|
-o autotrim=on \
|
||||||
|
-O acltype=posixacl \
|
||||||
|
-O canmount=off \
|
||||||
|
-O compression=lz4 \
|
||||||
|
-O devices=off \
|
||||||
|
-O normalization=formD \
|
||||||
|
-O relatime=on \
|
||||||
|
-O xattr=sa \
|
||||||
|
-O mountpoint=/boot \
|
||||||
|
-R /mnt \
|
||||||
|
bpool \
|
||||||
|
mirror \
|
||||||
|
$(for i in ${DISK}; do
|
||||||
|
printf "$i-part3 ";
|
||||||
|
done)
|
||||||
|
|
||||||
|
zpool create \
|
||||||
|
-o ashift=12 \
|
||||||
|
-o autotrim=on \
|
||||||
|
-R /mnt \
|
||||||
|
-O acltype=posixacl \
|
||||||
|
-O canmount=off \
|
||||||
|
-O compression=zstd \
|
||||||
|
-O dnodesize=auto \
|
||||||
|
-O normalization=formD \
|
||||||
|
-O relatime=on \
|
||||||
|
-O xattr=sa \
|
||||||
|
-O mountpoint=/ \
|
||||||
|
rpool \
|
||||||
|
mirror \
|
||||||
|
$(for i in ${DISK}; do
|
||||||
|
printf "$i-part5 ";
|
||||||
|
done)
|
||||||
|
|
||||||
|
zfs create \
|
||||||
|
-o canmount=off \
|
||||||
|
-o mountpoint=none \
|
||||||
|
-o encryption=on \
|
||||||
|
-o keylocation=prompt \
|
||||||
|
-o keyformat=passphrase \
|
||||||
|
rpool/nixos
|
||||||
|
|
||||||
|
zfs create -o mountpoint=legacy rpool/nixos/root
|
||||||
|
mount -t zfs rpool/nixos/root /mnt/
|
||||||
|
|
||||||
|
zfs create -o mountpoint=legacy rpool/nixos/home
|
||||||
|
mkdir /mnt/home
|
||||||
|
mount -t zfs rpool/nixos/home /mnt/home
|
||||||
|
|
||||||
|
zfs create -o mountpoint=legacy rpool/nixos/var
|
||||||
|
mkdir /mnt/var
|
||||||
|
mount -t zfs rpool/nixos/var /mnt/var
|
||||||
|
zfs create -o mountpoint=legacy rpool/nixos/var/lib
|
||||||
|
mkdir /mnt/var/lib
|
||||||
|
mount -t zfs rpool/nixos/var/lib /mnt/var/lib
|
||||||
|
zfs create -o mountpoint=legacy rpool/nixos/var/log
|
||||||
|
mkdir /mnt/var/log
|
||||||
|
mount -t zfs rpool/nixos/var/log /mnt/var/log
|
||||||
|
|
||||||
|
zfs create -o mountpoint=none bpool/nixos
|
||||||
|
zfs create -o mountpoint=legacy bpool/nixos/root
|
||||||
|
mkdir /mnt/boot
|
||||||
|
mount -t zfs bpool/nixos/root /mnt/boot
|
||||||
|
zfs create -o mountpoint=legacy rpool/nixos/empty
|
||||||
|
zfs snapshot rpool/nixos/empty@start
|
||||||
|
|
||||||
|
for i in ${DISK}; do
|
||||||
|
mkfs.vfat -n EFI ${i}-part2
|
||||||
|
mkdir -p /mnt/boot/efis/${i##*/}
|
||||||
|
mount -t vfat ${i}-part2 /mnt/boot/efis/${i##*/}
|
||||||
|
done
|
||||||
Loading…
Add table
Add a link
Reference in a new issue