This repository has been archived by the owner on Feb 27, 2024. It is now read-only.
Device tree representation
aszlig edited this page Oct 20, 2014
·
1 revision
clearpart --all --initlabel --drives=vda,vdb
part swap1 --size=500 --label=swap1 --fstype=swap --ondisk=vda
part swap2 --size=500 --label=swap2 --fstype=swap --ondisk=vdb
part raid.1 --grow --ondisk=vda
part raid.2 --grow --ondisk=vdb
raid / --level=1 --device=md0 --fstype=ext4 --label=root raid.1 raid.2
{
storage = {
partition.raid1.grow = true;
partition.raid1.isPartOf = [ "disk.vda" ];
partition.raid1.after = [ "partition.swap1" ]; # ¹
partition.raid2.grow = true;
partition.raid2.isPartOf = [ "disk.vdb" ];
partition.raid2.after = [ "partition.swap2" ]; # ¹
partition.swap1.type = "partition";
partition.swap1.size = "500M";
partition.swap1.isPartOf = [ "disk.vda" ];
partition.swap2.type = "partition";
partition.swap2.size = "500M";
partition.swap2.isPartOf = [ "disk.vdb" ];
mdraid.root.level = 1;
mdraid.root.isPartOf = [ "partition.raid1" "partition.raid2" ];
disk.vda.clear = true;
disk.vda.initlabel = true;
disk.vdb.clear = true;
disk.vdb.initlabel = true;
};
fileSystems."/" = {
label = "root";
fsType = "ext4";
storage = "mdraid.root";
};
swapDevices = [
{ label = "swap1"; storage = "partition.swap1"; }
{ label = "swap2"; storage = "partition.swap2"; }
];
}
- Note that the
after
attribute isn't needed in this case and only for illustration purposes, because by default partitions are ordered by size so on almost all systems,swap1
/swap2
will be the first partitions on the disks.
{
storage = {
disk.vdb.clear = true;
disk.vdb.initlabel = true;
partition.boot.size = "100M";
partition.boot.isPartOf = [ "disk.vdb" ];
partition.swap.size = "500M";
partition.swap.isPartOf = [ "disk.vdb" ];
partition.nix.size = "500M";
partition.nix.isPartOf = [ "disk.vdb" ];
partition.root.grow = true;
partition.root.isPartOf = [ "disk.vdb" ];
};
fileSystems."/boot" = {
label = "boot";
fsType = "ext2";
storage = "partition.boot";
};
fileSystems."/nix" = {
label = "nix";
fsType = "ext3";
storage = "partition.nix";
};
fileSystems."/" = {
label = "root";
fsType = "ext4";
storage = "partition.root";
};
swapDevices = [
{ label = "swap"; storage = "partition.swap"; }
];
}
{
storage = {
disk.vdb.clear = true;
disk.vdb.initlabel = true;
partition.swap1.size = "500M";
partition.swap1.isPartOf = [ "disk.vdb" ];
partition.btrfs1.grow = true;
partition.btrfs1.isPartOf = [ "disk.vdb" ];
disk.vdc.clear = true;
disk.vdc.initlabel = true;
partition.swap2.size = "500M";
partition.swap2.isPartOf = [ "disk.vdc" ];
partition.btrfs2.grow = true;
partition.btrfs2.isPartOf = [ "disk.vdc" ];
btrfs.root.data = 0;
btrfs.root.metadata = 1;
};
fileSystems."/" = {
label = "root";
storage = "btrfs.root";
};
swapDevices = [
{ label = "swap1"; storage = "partition.swap1"; }
{ label = "swap2"; storage = "partition.swap2"; }
];
}
{
storage = {
disk.vdb.clear = true;
disk.vdb.initlabel = true;
partition.swap.size = "500M";
partition.swap.isPartOf = [ "disk.vdb" ];
partition.boot.size = "100M";
partition.boot.isPartOf = [ "disk.vdb" ];
partition.root.grow = true;
partition.root.isPartOf = [ "disk.vdb" ];
};
fileSystems."/boot" = {
label = "boot";
fsType = "f2fs";
storage = "partition.boot";
};
fileSystems."/" = {
label = "root";
fsType = "f2fs";
storage = "partition.root";
};
swapDevices = [
{ label = "swap"; storage = "partition.swap"; }
];
}
{
storage = {
disk.vdb.clear = true;
disk.vdb.initlabel = true;
partition.raid01.size = "200M";
partition.raid01.isPartOf = [ "disk.vdb" ];
partition.swap1.size = "500M";
partition.swap1.isPartOf = [ "disk.vdb" ];
partition.raid11.grow = true;
partition.raid11.isPartOf = [ "disk.vdb" ];
disk.vdc.clear = true;
disk.vdc.initlabel = true;
partition.raid02.size = "200M";
partition.raid02.isPartOf = [ "disk.vdc" ];
partition.swap2.size = "500M";
partition.swap2.isPartOf = [ "disk.vdc" ];
partition.raid12.grow = true;
partition.raid12.isPartOf = [ "disk.vdc" ];
mdraid.boot.level = 1;
mdraid.boot.isPartOf = [ "partition.raid01" "partition.raid02" ];
mdraid.root.level = 1;
mdraid.root.isPartOf = [ "partition.raid11" "partition.raid12" ];
};
fileSystems."/boot" = {
label = "boot";
fsType = "ext3";
storage = "mdraid.boot";
};
fileSystems."/" = {
label = "root";
fsType = "xfs";
storage = "mdraid.root";
};
swapDevices = [
{ label = "swap1"; storage = "partition.swap1"; }
{ label = "swap2"; storage = "partition.swap2"; }
];
}
{
storage = {
disk.vdb.clear = true;
disk.vdb.initlabel = true;
partition.raid1.grow = true;
partition.raid1.isPartOf = [ "disk.vdb" ];
disk.vdc.clear = true;
disk.vdc.initlabel = true;
partition.raid2.grow = true;
partition.raid2.isPartOf = [ "disk.vdc" ];
mdraid.raid.level = 1;
mdraid.raid.isPartOf = [ "partition.raid1" "partition.raid2" ];
luks.volroot.passphrase = "x";
luks.volroot.isPartOf = [ "mdraid.raid" ];
volgroup.nixos.isPartOf = [ "luks.volroot" ];
logvol.boot.size = "200M";
logvol.boot.isPartOf = [ "volgroup.nixos" ];
logvol.swap.size = "500M";
logvol.swap.isPartOf = [ "volgroup.nixos" ];
logvol.root.grow = true;
logvol.root.isPartOf = [ "volgroup.nixos" ];
};
fileSystems."/boot" = {
label = "boot";
fsType = "ext3";
storage = "logvol.boot";
};
fileSystems."/" = {
label = "root";
fsType = "ext4";
storage = "logvol.root";
};
swapDevices = [
{ label = "swap"; storage = "logvol.swap"; }
];
}