mirror of
https://github.com/nix-community/disko
synced 2024-11-10 06:14:14 +00:00
Merge pull request #12 from nix-community/flag-support
Add flag support
This commit is contained in:
commit
5bcd94a7ec
6 changed files with 70 additions and 31 deletions
33
example/config-gpt-bios.nix
Normal file
33
example/config-gpt-bios.nix
Normal 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 = "/";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -24,6 +24,7 @@
|
|||
part-type = "primary";
|
||||
start = "1024MiB";
|
||||
end = "100%";
|
||||
flags = [ "bios_grub" ];
|
||||
content = {
|
||||
type = "luks";
|
||||
algo = "aes-xts...";
|
||||
|
|
|
@ -3,11 +3,13 @@
|
|||
let
|
||||
# TODO: get rid of NIX_PATH dependency here
|
||||
pkgs = import <nixpkgs> {};
|
||||
cfg = import ./config.nix;
|
||||
#cfg = import ./config-gpt-bios.nix;
|
||||
in
|
||||
with import ../lib { inherit (pkgs) lib;};
|
||||
|
||||
{
|
||||
config = config (import ./config.nix);
|
||||
create = create (import ./config.nix);
|
||||
mount = mount (import ./config.nix);
|
||||
config = config cfg;
|
||||
create = create cfg;
|
||||
mount = mount cfg;
|
||||
}
|
||||
|
|
|
@ -1,10 +1,32 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
disko = (builtins.fetchGit {
|
||||
url = https://cgit.lassul.us/disko/;
|
||||
rev = "88f56a0b644dd7bfa8438409bea5377adef6aef4";
|
||||
}) + "/lib";
|
||||
cfg = builtins.fromJSON ./tsp-disk.json;
|
||||
disko = import (builtins.fetchGit {
|
||||
url = "https://github.com/nix-community/disko";
|
||||
ref = "master";
|
||||
}) {
|
||||
inherit lib;
|
||||
};
|
||||
cfg = {
|
||||
type = "devices";
|
||||
content = {
|
||||
sda = {
|
||||
type = "table";
|
||||
format = "msdos";
|
||||
partitions = [{
|
||||
type = "partition";
|
||||
part-type = "primary";
|
||||
start = "1M";
|
||||
end = "100%";
|
||||
bootable = true;
|
||||
content = {
|
||||
type = "filesystem";
|
||||
format = "ext4";
|
||||
mountpoint = "/";
|
||||
};
|
||||
}];
|
||||
};
|
||||
};
|
||||
};
|
||||
in {
|
||||
imports = [
|
||||
(disko.config cfg)
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"type": "devices",
|
||||
"content": {
|
||||
"sda": {
|
||||
"type": "table",
|
||||
"format": "msdos",
|
||||
"partitions": [
|
||||
{ "type": "partition",
|
||||
"start": "1M",
|
||||
"end": "100%",
|
||||
"bootable": true,
|
||||
"content": {
|
||||
"type": "filesystem",
|
||||
"format": "ext4",
|
||||
"mountpoint": "/"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -75,6 +75,9 @@ let {
|
|||
${optionalString (x.bootable or false) ''
|
||||
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}
|
||||
'';
|
||||
|
||||
|
|
Loading…
Reference in a new issue