add flag support

This commit is contained in:
Jörg Thalheim 2022-08-17 17:52:12 +02:00
parent c40b0dc031
commit fc568cf797
4 changed files with 42 additions and 3 deletions

View file

@ -0,0 +1,33 @@
# Example to create a bios compatible gpt partition
{
type = "devices";
content = {
sda = {
type = "table";
format = "gpt";
partitions = [
{
type = "partition";
start = "0";
end = "1M";
part-type = "primary";
flags = ["bios_grub"];
content.type = "noop";
}
{
type = "partition";
# leave space for the grub aka BIOS boot
start = "1M";
end = "100%";
part-type = "primary";
bootable = true;
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
}
];
};
};
}

View file

@ -24,6 +24,7 @@
part-type = "primary"; part-type = "primary";
start = "1024MiB"; start = "1024MiB";
end = "100%"; end = "100%";
flags = [ "bios_grub" ];
content = { content = {
type = "luks"; type = "luks";
algo = "aes-xts..."; algo = "aes-xts...";

View file

@ -3,11 +3,13 @@
let let
# TODO: get rid of NIX_PATH dependency here # TODO: get rid of NIX_PATH dependency here
pkgs = import <nixpkgs> {}; pkgs = import <nixpkgs> {};
cfg = import ./config.nix;
#cfg = import ./config-gpt-bios.nix;
in in
with import ../lib { inherit (pkgs) lib;}; with import ../lib { inherit (pkgs) lib;};
{ {
config = config (import ./config.nix); config = config cfg;
create = create (import ./config.nix); create = create cfg;
mount = mount (import ./config.nix); mount = mount cfg;
} }

View file

@ -75,6 +75,9 @@ let {
${optionalString (x.bootable or false) '' ${optionalString (x.bootable or false) ''
parted -s ${q.device} set ${toString q.index} boot on parted -s ${q.device} set ${toString q.index} boot on
''} ''}
${concatMapStringsSep "" (flag: ''
parted -s ${q.device} set ${toString q.index} ${flag} on
'') (x.flags or [])}
${create-f { device = q.device + toString q.index; } x.content} ${create-f { device = q.device + toString q.index; } x.content}
''; '';