2018-09-11 21:42:55 +03:00
|
|
|
disko
|
|
|
|
=====
|
|
|
|
|
|
|
|
nix-powered automatic disk partitioning
|
|
|
|
|
|
|
|
Usage
|
|
|
|
=====
|
|
|
|
|
|
|
|
Master Boot Record
|
|
|
|
------------------
|
|
|
|
This is how your iso configuation may look like
|
|
|
|
|
|
|
|
```nix
|
|
|
|
{ pkgs, ... }:
|
|
|
|
let
|
|
|
|
disko = (builtins.fetchGit {
|
|
|
|
url = https://cgit.lassul.us/disko/;
|
|
|
|
rev = "88f56a0b644dd7bfa8438409bea5377adef6aef4";
|
|
|
|
}) + "/lib";
|
|
|
|
cfg = builtins.fromJSON ./tsp-disk.json;
|
|
|
|
in {
|
|
|
|
imports = [
|
|
|
|
<nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix>
|
|
|
|
];
|
|
|
|
environment.systemPackages = with pkgs;[
|
|
|
|
(pkgs.writeScriptBin "tsp-create" (disko.mount cfg))
|
|
|
|
(pkgs.writeScriptBin "tsp-mount" (disko.mount cfg))
|
|
|
|
];
|
|
|
|
# Optional: Automatically creates a service which runs at startup to perform the partitioning
|
|
|
|
systemd.services.install-to-hd = {
|
|
|
|
enable = true;
|
|
|
|
wantedBy = ["multi-user.target"];
|
|
|
|
after = ["getty@tty1.service" ];
|
|
|
|
serviceConfig = {
|
|
|
|
Type = "oneshot";
|
2019-02-02 14:32:06 +03:00
|
|
|
ExecStart = [ (disko.create cfg) (disk.mount cfg) ];
|
2018-09-11 21:42:55 +03:00
|
|
|
StandardInput = "null";
|
|
|
|
StandardOutput = "journal+console";
|
|
|
|
StandardError = "inherit";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
```
|
|
|
|
tsp-disk.json (TODO: find the correct disk)
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"type": "devices",
|
|
|
|
"content": {
|
|
|
|
"sda": {
|
|
|
|
"type": "table",
|
|
|
|
"format": "msdos",
|
|
|
|
"partitions": [
|
|
|
|
{ "type": "partition",
|
|
|
|
"start": "1M",
|
|
|
|
"end": "100%",
|
|
|
|
"bootable": true,
|
|
|
|
"content": {
|
|
|
|
"type": "filesystem",
|
|
|
|
"format": "ext4",
|
|
|
|
"mountpoint": "/"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
GUID Partition Table, LVM and dm-crypt
|
|
|
|
--------------------------------------
|
|
|
|
See `examples/`
|