feat: switch to btrfs

This commit is contained in:
zoey 2025-06-18 12:07:36 -04:00
parent 0ad695abcf
commit 90cbe489f6
Signed by: zoey
GPG key ID: 81FB9FECDD6A33E2
10 changed files with 154 additions and 163 deletions

View file

@ -17,11 +17,31 @@
mountOptions = ["umask=0077" "nofail"];
};
};
zfs = {
root = {
name = "root";
size = "100%";
content = {
type = "zfs";
pool = "zroot";
type = "btrfs";
extraArgs = ["-f"];
subvolumes = {
"/rootfs" = {
mountpoint = "/";
};
"/home" = {
mountOptions = ["compress=zstd"];
mountpoint = "/home";
};
"/home/zoey" = {};
"/nix" = {
mountOptions = [
"compress=zstd"
];
mountpoint = "/nix";
};
};
};
};
};
@ -36,83 +56,22 @@
zbk = {
size = "100%";
content = {
type = "zfs";
pool = "zbk";
type = "btrfs";
extraArgs = ["-f"];
subvolumes = {
"/mnt/zbk" = {
mountOptions = [
"compress=zstd"
"noatime"
];
mountpoint = "/mnt/zbk";
};
};
};
};
};
};
};
};
zpool = {
zbk = {
type = "zpool";
rootFsOptions = {
acltype = "posixacl";
atime = "off";
compression = "zstd";
mountpoint = "none";
xattr = "sa";
autotrim = "on";
};
options.ashift = "12";
datasets = {
"zbk" = {
type = "zfs_fs";
options.mountpoint = "none";
};
"zbk/zbk" = {
type = "zfs_fs";
mountpoint = "/mnt/zbk";
options."sharesmb" = "on";
# Used by services.zfs.autoSnapshot options.
options."com.sun:auto-snapshot" = "true";
};
};
};
zroot = {
type = "zpool";
rootFsOptions = {
# https://wiki.archlinux.org/title/Install_Arch_Linux_on_ZFS
acltype = "posixacl";
atime = "off";
compression = "zstd";
mountpoint = "none";
xattr = "sa";
autotrim = "on";
};
options.ashift = "12";
datasets = {
"local" = {
type = "zfs_fs";
options.mountpoint = "none";
};
"local/home" = {
type = "zfs_fs";
mountpoint = "/home";
# Used by services.zfs.autoSnapshot options.
options."com.sun:auto-snapshot" = "true";
};
"local/nix" = {
type = "zfs_fs";
mountpoint = "/nix";
options."com.sun:auto-snapshot" = "false";
};
"local/persist" = {
type = "zfs_fs";
mountpoint = "/persist";
options."com.sun:auto-snapshot" = "false";
};
"local/root" = {
type = "zfs_fs";
mountpoint = "/";
options."com.sun:auto-snapshot" = "false";
postCreateHook = "zfs list -t snapshot -H -o name | grep -E '^zroot/local/root@blank$' || zfs snapshot zroot/local/root@blank";
};
};
};
};
};
}