nix/devices: implement disk-prepare
This commit is contained in:
parent
1f14b36557
commit
afd4bb95f9
5 changed files with 136 additions and 83 deletions
|
@ -1,5 +1,5 @@
|
|||
{ keys ? import ../../variables/keys.nix
|
||||
, passwords ? import ../../variables/passwords.crypt.nix
|
||||
, passwords ? import ../../variables/passwords.crypt.nix
|
||||
}:
|
||||
|
||||
{
|
||||
|
@ -25,4 +25,27 @@
|
|||
];
|
||||
openssh.authorizedKeys.keys = keys.users.steveej.openssh;
|
||||
} // args;
|
||||
|
||||
disk = rec {
|
||||
# TODO: verify the GPT PARTLABEL cap at 36 chars
|
||||
shortenGptPartlabel = partlabel: (builtins.substring 0 36 partlabel);
|
||||
|
||||
# LVM doesn't allow most characters in VG names
|
||||
# TODO: replace this with a whitelist for: [a-zA-Z0-9.-_+]
|
||||
volumeGroup = diskId: builtins.replaceStrings [ ":" ] [ "" ] diskId;
|
||||
|
||||
# This is important at install-time
|
||||
bootGrubDevice = diskId: "/dev/disk/by-id/" + diskId;
|
||||
|
||||
# These are guaranteed by LVM
|
||||
rootFsDevice = diskId: "/dev/" + (volumeGroup diskId) + "/root";
|
||||
swapFsDevice = diskId: "/dev/" + (volumeGroup diskId) + "/swap";
|
||||
|
||||
# Cannot use the disk ID here because might be different at install vs. runtime.
|
||||
# Example: MMC card which is used in the internal reader vs. USB reader
|
||||
bootFsDevice = diskId: "/dev/disk/by-partlabel/" + (shortenGptPartlabel ("2-"+diskId));
|
||||
bootLuksDevice = diskId: "/dev/disk/by-partlabel/" + (shortenGptPartlabel ("3-"+diskId));
|
||||
luksName = diskId: (volumeGroup diskId)+"pv";
|
||||
luksPhysicalVolume = diskId: "/dev/mapper/" + (luksName diskId);
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue