diff options
-rw-r--r-- | README.md | 71 | ||||
-rw-r--r-- | example/stand-alone/configuration.nix | 17 | ||||
-rw-r--r-- | example/stand-alone/tsp-disk.json | 22 |
3 files changed, 110 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..70058f1 --- /dev/null +++ b/README.md @@ -0,0 +1,71 @@ +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"; + ExecStart = [ (disko.create cfg) (disk.mount cfg) (]; + 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/` diff --git a/example/stand-alone/configuration.nix b/example/stand-alone/configuration.nix new file mode 100644 index 0000000..2ee1597 --- /dev/null +++ b/example/stand-alone/configuration.nix @@ -0,0 +1,17 @@ +{ pkgs, ... }: +let + disko = (builtins.fetchGit { + url = https://cgit.lassul.us/disko/; + rev = "88f56a0b644dd7bfa8438409bea5377adef6aef4"; + }) + "/lib"; + cfg = builtins.fromJSON ./tsp-disk.json; +in { + imports = [ + (disko.config cfg) + ]; + environment.systemPackages = with pkgs;[ + (pkgs.writeScriptBin "tsp-create" (disko.create cfg)) + (pkgs.writeScriptBin "tsp-mount" (disko.mount cfg)) + ]; +} + diff --git a/example/stand-alone/tsp-disk.json b/example/stand-alone/tsp-disk.json new file mode 100644 index 0000000..1d82c13 --- /dev/null +++ b/example/stand-alone/tsp-disk.json @@ -0,0 +1,22 @@ +{ + "type": "devices", + "content": { + "sda": { + "type": "table", + "format": "msdos", + "partitions": [ + { "type": "partition", + "start": "1M", + "end": "100%", + "bootable": true, + "content": { + "type": "filesystem", + "format": "ext4", + "mountpoint": "/" + } + } + ] + } + } +} + |