mirror of
https://github.com/nix-community/disko
synced 2024-11-13 23:57:12 +00:00
2d7d77878c
These options previously existed but had no effect. Now they are implemented. They only affect mount during disko’s filesystem creation, not during any later mounts. Adding test case to existing “complex” example and test mostly because couldn’t think of any better place to put it.
191 lines
4.6 KiB
Nix
191 lines
4.6 KiB
Nix
{
|
|
disko.devices = {
|
|
disk = {
|
|
disk0 = {
|
|
type = "disk";
|
|
device = "/dev/disk/by-id/ata-QEMU_HARDDISK_QM00001";
|
|
content = {
|
|
type = "gpt";
|
|
partitions = {
|
|
ESP = {
|
|
start = "1M";
|
|
end = "128M";
|
|
type = "EF00";
|
|
content = {
|
|
type = "filesystem";
|
|
format = "vfat";
|
|
mountpoint = "/boot";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
disk1 = {
|
|
type = "disk";
|
|
device = "/dev/disk/by-id/ata-QEMU_HARDDISK_QM00002";
|
|
content = {
|
|
type = "gpt";
|
|
partitions = {
|
|
luks = {
|
|
start = "1M";
|
|
size = "100%";
|
|
content = {
|
|
type = "luks";
|
|
name = "crypted1";
|
|
settings.keyFile = "/tmp/secret.key";
|
|
additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
|
|
extraFormatArgs = [
|
|
"--iter-time 1" # unsecure but fast for tests
|
|
];
|
|
content = {
|
|
type = "lvm_pv";
|
|
vg = "pool";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
disk2 = {
|
|
type = "disk";
|
|
device = "/dev/disk/by-id/ata-QEMU_HARDDISK_QM00003";
|
|
content = {
|
|
type = "gpt";
|
|
partitions = {
|
|
luks = {
|
|
start = "1M";
|
|
size = "100%";
|
|
content = {
|
|
type = "luks";
|
|
name = "crypted2";
|
|
settings = {
|
|
keyFile = "/tmp/secret.key";
|
|
keyFileSize = 8;
|
|
keyFileOffset = 2;
|
|
};
|
|
extraFormatArgs = [
|
|
"--iter-time 1" # unsecure but fast for tests
|
|
];
|
|
content = {
|
|
type = "lvm_pv";
|
|
vg = "pool";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
mdadm = {
|
|
raid1 = {
|
|
type = "mdadm";
|
|
level = 1;
|
|
content = {
|
|
type = "gpt";
|
|
partitions = {
|
|
bla = {
|
|
start = "1M";
|
|
size = "100%";
|
|
content = {
|
|
type = "filesystem";
|
|
format = "ext4";
|
|
mountpoint = "/ext4_mdadm_lvm";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
lvm_vg = {
|
|
pool = {
|
|
type = "lvm_vg";
|
|
lvs = {
|
|
root = {
|
|
size = "10M";
|
|
lvm_type = "mirror";
|
|
content = {
|
|
type = "filesystem";
|
|
format = "ext4";
|
|
mountpoint = "/ext4_on_lvm";
|
|
mountOptions = [
|
|
"defaults"
|
|
];
|
|
postMountHook = ''
|
|
touch /mnt/ext4_on_lvm/file-from-postMountHook
|
|
'';
|
|
};
|
|
};
|
|
raid1 = {
|
|
size = "30M";
|
|
lvm_type = "raid0";
|
|
content = {
|
|
type = "mdraid";
|
|
name = "raid1";
|
|
};
|
|
};
|
|
raid2 = {
|
|
size = "30M";
|
|
lvm_type = "raid0";
|
|
content = {
|
|
type = "mdraid";
|
|
name = "raid1";
|
|
};
|
|
};
|
|
zfs1 = {
|
|
size = "128M";
|
|
lvm_type = "raid0";
|
|
content = {
|
|
type = "zfs";
|
|
pool = "zroot";
|
|
};
|
|
};
|
|
zfs2 = {
|
|
size = "128M";
|
|
lvm_type = "raid0";
|
|
content = {
|
|
type = "zfs";
|
|
pool = "zroot";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
zpool = {
|
|
zroot = {
|
|
type = "zpool";
|
|
mode = "mirror";
|
|
rootFsOptions = {
|
|
compression = "zstd";
|
|
"com.sun:auto-snapshot" = "false";
|
|
};
|
|
mountpoint = "/";
|
|
|
|
datasets = {
|
|
zfs_fs = {
|
|
type = "zfs_fs";
|
|
mountpoint = "/zfs_fs";
|
|
options."com.sun:auto-snapshot" = "true";
|
|
};
|
|
zfs_unmounted_fs = {
|
|
type = "zfs_fs";
|
|
options.mountpoint = "none";
|
|
};
|
|
zfs_legacy_fs = {
|
|
type = "zfs_fs";
|
|
options.mountpoint = "legacy";
|
|
mountpoint = "/zfs_legacy_fs";
|
|
};
|
|
zfs_testvolume = {
|
|
type = "zfs_volume";
|
|
size = "10M";
|
|
content = {
|
|
type = "filesystem";
|
|
format = "ext4";
|
|
mountpoint = "/ext4onzfs";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|