| 2 Aug 2024 |
nrv | * that it runs after / is mounted, after /home is mounted, and after whatever else is mounted | 12:52:32 |
nrv | * at least that's what it seemed to me, that instead of a single run after all mounts is done
maybe i messed up something | 12:53:19 |
nrv | * at least that's what it seemed to me, that instead of a single run after all mounts is done it runs after each mount
maybe i messed up something | 12:56:09 |
| fiioul joined the room. | 19:38:14 |
| 5 Aug 2024 |
rypervenche | Is it possible to create a configuration using BTRFS RAID1? | 23:40:25 |
| 6 Aug 2024 |
SigmaSquadron | bold choice to use BTRFS' RAID system. | 01:43:12 |
rypervenche | In reply to @sigmasquadron:matrix.org bold choice to use BTRFS' RAID system. I've been using it for years. 0 problems. I don't use RAID5/6 though, which are the problematic ones | 15:07:00 |
| 7 Aug 2024 |
eyJhb | If I add a new ZFS dataset, will Disko automatically create that? I assume no | 19:25:45 |
| 8 Aug 2024 |
eyJhb | Trying to setup LUKS+ZFS with Disko, I get prompted for my password, but right after I get this error.
/nix/store/ix2hsx2myrkpiw6gs8i06nbgjp49zdik-disko/bin/disko: line 128: cryptsetup: command not found
| 11:30:57 |
lassulus | huh | 11:32:16 |
lassulus | it should be created if you run the formatScript again, but that can also be a bit dangerous as it a relatively new feature | 11:32:48 |
lassulus | what did you try to run to get that error? | 11:33:18 |
eyJhb | NIX_TOP_LEVEL_PATH=$(nix build --impure -I nixos-config=./machines/gerd.nix --json --expr "(import <nixpkgs/nixos> {}).config.system.build.toplevel" | jq -r '.[].outputs.out')
NIX_DISKO_SCRIPT=$(nix build --impure -I nixos-config=./machines/gerd.nix --json --expr "(import <nixpkgs/nixos> {}).config.system.build.diskoScriptNoDeps" | jq -r '.[].outputs.out')
nixos-anywhere --store-paths "$NIX_DISKO_SCRIPT" "$NIX_TOP_LEVEL_PATH" "$USERNAME@$IP"
Works just fine without LUKS.
{ lib, ... }:
let
makeZFSDatasets = datasets: (lib.mapAttrs' (n: v: lib.nameValuePair v.dataset ({
type = "zfs_fs";
mountpoint = n;
options.mountpoint = "legacy";
} // (if v ? extra then v.extra else {}))) datasets);
in {
disko.devices = {
disk.disk1 = {
type = "disk";
device = lib.mkDefault "/dev/sda";
content = {
type = "gpt";
partitions = {
boot = {
name = "boot";
size = "1M";
type = "EF02";
};
esp = {
name = "ESP";
size = "500M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
};
};
luks = {
size = "100%";
content = {
type = "luks";
name = "cryptroot";
settings.allowDiscards = true;
# passwordFile = "/tmp/luks.pass";
content = {
type = "zfs";
pool = "rpool";
};
};
};
};
};
};
zpool = {
rpool = {
type = "zpool";
# rootFsOptions.compression = "zstd";
rootFsOptions = {
compression = "on";
atime = "off";
acltype = "posixacl";
xattr = "sa";
# test
# "com.sun:auto-snapshot" = "false";
# "com.klarasystems:vdev_zaps_v2" = "false";
};
datasets = let
baseDatasets = {
"/" = { dataset = "root"; extra = { postCreateHook = "zfs snapshot rpool/root@blank"; }; };
"/nix".dataset = "local/nix";
"/state/stash".dataset = "local/stash";
"/state/home".dataset = "safe/home";
"/state/root".dataset = "safe/persistent";
# extra datasets
"/srv/forgejo" = { dataset = "safe/svcs/forgejo"; extra.options.quota = "5G"; };
};
in (makeZFSDatasets baseDatasets);
};
};
};
}
| 11:34:16 |
lassulus | why the nodeps output? the normal output would put cryptsetup into PATH | 11:34:54 |
eyJhb | I seem to remember I yanked it from some manual. | 11:35:59 |
eyJhb | But, that might be me misremembering. | 11:36:08 |
eyJhb | I've changed it away from nodeps now :) | 11:37:00 |
eyJhb | Yeah, seems to work now. Thanks for solving me being stupid lassulus ! | 11:37:32 |
eyJhb | Also, I had to reread the nodeps a couple of times, my mind couldn't understand what NODE ps was, and why node was relevant. | 11:38:12 |
lassulus | :D maybe I should have written NoDeps | 11:40:21 |
eyJhb | We got to it in the end :p Thank you for the quick response :D Now I can continue | 11:42:33 |
| 10 Aug 2024 |
matthewcroughan | Disko can't make something with an arbitrary sector start or gpt table length can it? | 21:48:22 |
matthewcroughan | Is it possible with the gpt type to dd a nix store path to a partition? | 22:06:21 |
matthewcroughan | I guess that'd be done in the postCreate hook, but it's quite an unsafe thing to do | 22:13:05 |
matthewcroughan | not clear how to access the disko vars or what ones to access to get the absolute path to the partition in question, by nix evaluation | 22:13:25 |
| 11 Aug 2024 |
matthewcroughan | Here's what I'm talking about, and the best I could come up with | 14:23:32 |
matthewcroughan | devices = {
disk = {
disk1 = rec {
type = "disk";
device = "/dev/disk/by-id/usb-Generic-_SD_MMC_20120501030900000-0:0";
postCreateHook = ''
lsblk
cat ${uboot}/bl2.bin > /dev/disk/by-partlabel/disk-disk1-bl2
cat ${uboot}/fip.bin > /dev/disk/by-partlabel/disk-disk1-fip
sgdisk -A 1:set:2 ${device}
'';
content = {
type = "gpt";
partitions = {
bl2 = {
start = "34";
end = "8191";
priority = 1;
type = "8300";
};
fip = {
start = "8192";
end = "12287";
priority = 2;
type = "8300";
};
| 14:23:35 |