disko: add initial config
This commit is contained in:
parent
38c4f44dc5
commit
616b1154a4
30
README.md
30
README.md
@ -1,2 +1,30 @@
|
|||||||
# nixos-config
|
# nixos-config #
|
||||||
|
|
||||||
|
## Install ##
|
||||||
|
|
||||||
|
### Patitioning ###
|
||||||
|
|
||||||
|
- Easiest is to run [disko](https://git.kabtop.de/Kabbone/nixos-config/raw/branch/main/disko/README.md)
|
||||||
|
- `Classic way:`
|
||||||
|
Partition disk with gdisk:
|
||||||
|
1. EFI Partition, size 512M, type "EF00", Label "NIXBOOT"
|
||||||
|
|
||||||
|
2. Root Partition, size 100%, type "8300", Label "NIXROOT"
|
||||||
|
|
||||||
|
### Installing ###
|
||||||
|
|
||||||
|
1. mount all the partitions and subvolumes to /mnt
|
||||||
|
|
||||||
|
2. generate initial nixos config
|
||||||
|
```# nixos-generate-config --root /mnt```
|
||||||
|
|
||||||
|
3. clone flake and check config
|
||||||
|
```
|
||||||
|
# cd /mnt/etc/nixos/
|
||||||
|
# git clone https://git.kabtop.de/Kabbone/nixos-config.git
|
||||||
|
```
|
||||||
|
|
||||||
|
4. install system
|
||||||
|
```# nixos-install --flake .#<host>```
|
||||||
|
|
||||||
|
5. reboot
|
||||||
|
27
disko/README.md
Normal file
27
disko/README.md
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
##Step by step##
|
||||||
|
1. Boot the [installer](https://nixos.org/download.html#nixos-iso)
|
||||||
|
|
||||||
|
2. Get disk name
|
||||||
|
```$ lsblk```
|
||||||
|
|
||||||
|
3. Get disko config
|
||||||
|
```
|
||||||
|
$ curl https://git.kabtop.de/Kabbone/nixos-config/raw/branch/main/disko/btrfs_luks.nix -o /tmp/disko-config.nix
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Adjust device name
|
||||||
|
|
||||||
|
5. Let disko partition the disk
|
||||||
|
```
|
||||||
|
$ sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/disko-config.nix
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Check if it got mounted
|
||||||
|
```$ mount | grep /mnt```
|
||||||
|
|
||||||
|
7. Continue with NixOS installation
|
||||||
|
Filesystem definitions come from disko, hence "--no-filesystems"
|
||||||
|
`Alternative:` continue with normal hardware-config
|
||||||
|
```
|
||||||
|
$ nixos-generate-config --no-filesystems --root /mnt
|
||||||
|
$ mv /tmp/disko-config.nix /mnt/etc/nixos
|
71
disko/btrfs.nix
Normal file
71
disko/btrfs.nix
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
nvme0n1 = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/nvme0n1";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
ESP = {
|
||||||
|
size = "512M";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
name = "NIXBOOT";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [
|
||||||
|
"defaults"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
name = "NIXROOT";
|
||||||
|
# disable settings.keyFile if you want to use interactive password entry
|
||||||
|
#passwordFile = "/tmp/secret.key"; # Interactive
|
||||||
|
settings = {
|
||||||
|
allowDiscards = true;
|
||||||
|
#keyFile = "/tmp/secret.key";
|
||||||
|
};
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f" ];
|
||||||
|
subvolumes = {
|
||||||
|
"@" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@srv" = {
|
||||||
|
mountpoint = "/srv";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@var" = {
|
||||||
|
mountpoint = "/var";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@swap" = {
|
||||||
|
mountpoint = "/swap";
|
||||||
|
swap.swapfile.size = "8G";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
72
disko/btrfs_luks.nix
Normal file
72
disko/btrfs_luks.nix
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
nvme0n1 = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/nvme0n1";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
ESP = {
|
||||||
|
size = "512M";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
name = "NIXBOOT";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [
|
||||||
|
"defaults"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
luks = {
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "luks";
|
||||||
|
name = "crypted";
|
||||||
|
askPassword = true;
|
||||||
|
# disable settings.keyFile if you want to use interactive password entry
|
||||||
|
#passwordFile = "/tmp/secret.key"; # Interactive
|
||||||
|
settings = {
|
||||||
|
allowDiscards = true;
|
||||||
|
};
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
name = "NIXROOT";
|
||||||
|
extraArgs = [ "-f" ];
|
||||||
|
subvolumes = {
|
||||||
|
"@" = {
|
||||||
|
mountpoint = "/";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@srv" = {
|
||||||
|
mountpoint = "/srv";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@var" = {
|
||||||
|
mountpoint = "/var";
|
||||||
|
mountOptions = [ "compress=zstd" "noatime" "ssd" "discard=async" ];
|
||||||
|
};
|
||||||
|
"@swap" = {
|
||||||
|
mountpoint = "/swap";
|
||||||
|
swap.swapfile.size = "8G";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user