mirror of
https://github.com/nix-community/disko
synced 2024-11-10 14:24:27 +00:00
zpool: add optionsAfterCreate...
Not sure about the best implementation here yet. I'd like to use disk encryption with ZFS and existing disko facilities work fine to set it up, but we obviously can't use keylocation=prompt during disko formatting. So unlocking fails on boot if the file referred to by keylocation isn't included in the initrd. Ideally I could use keylocation=file://tmp/disk.key during partitioning, but set keylocation=prompt right after that. example usage: ``` rpool = { type = "zpool"; mode = ""; options = { ashift = "12"; autotrim = "on"; }; optionsAfterCreate = { keylocation = "prompt"; }; rootFsOptions = { encryption = "on"; keylocation = "file:///tmp/disk.key"; keyformat = "passphrase"; compression = "zstd"; acltype = "posixacl"; mountpoint = "none"; canmount = "off"; xattr = "sa"; dnodesize = "auto"; normalization = "formD"; relatime = "on"; }; ```
This commit is contained in:
parent
f0a96e4de6
commit
49badf305f
1 changed files with 5 additions and 0 deletions
|
@ -1118,6 +1118,10 @@ rec {
|
|||
default = {};
|
||||
description = "Options for the ZFS pool";
|
||||
};
|
||||
optionsAfterCreate = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = {};
|
||||
};
|
||||
rootFsOptions = mkOption {
|
||||
type = types.attrsOf types.str;
|
||||
default = {};
|
||||
|
@ -1155,6 +1159,7 @@ rec {
|
|||
${concatStringsSep " " (mapAttrsToList (n: v: "-o ${n}=${v}") config.options)} \
|
||||
${concatStringsSep " " (mapAttrsToList (n: v: "-O ${n}=${v}") config.rootFsOptions)} \
|
||||
''${ZFSDEVICES_${config.name}}
|
||||
zfs set ${concatStringsSep " " (mapAttrsToList (n: v: "${n}=${v}") config.optionsAfterCreate)} ${config.name}
|
||||
${concatMapStrings (dataset: dataset._create config.name) (attrValues config.datasets)}
|
||||
'';
|
||||
description = "Creation script";
|
||||
|
|
Loading…
Reference in a new issue