fix: Fixes disco configuration

This commit is contained in:
Tera << 8 2025-05-05 15:19:38 -04:00
parent c3eab3b1ae
commit 86c41180b8
Signed by: imterah
GPG key ID: 8FA7DD57BA6CEA37
4 changed files with 67 additions and 54 deletions

View file

@ -5,3 +5,46 @@ Work-in-progress NixOS Server Infrastructure based on [valerie's NixOS setup](ht
## WARNING ## WARNING
This is a work-in-progress and currently DOES NOT WORK. Please check back later. This is a work-in-progress and currently DOES NOT WORK. Please check back later.
## Setup
### Bootstrapping a New Device
This guide assumes you have a somewhat sane sops setup.
1. First, boot the NixOS live environment (minimal ISO is recommended).
2. Then, get the harddrive ID using `lsblk` or `fdisk -l`:
```bash
sudo fdisk -l
ls -lah /dev/disk/by-id | grep -i <drive disk ID ie. sda>
```
Example output:
```bash
[nix-shell:~]$ sudo fdisk -l
Disk /dev/loop0: 1.14 GiB, 1221455872 bytes, 2385656 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[nix-shell:~]$ ls -lah /dev/disk/by-id | grep -i sda
lrwxrwxrwx 1 root root 9 May 5 13:20 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0 -> ../../sda
[nix-shell:~]$ # disk path: /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0
```
3. Manually create a host configuration by modifying/duplicating `hosts/<target_host_to_base_off_of>` to `hosts/<new_host_name>`. Be sure to modify the hostname in `hosts/<new_host_name>/configuration.nix`.
4. Add the host to `flake.nix`.
5. Modify the disko configuration for our host to use the correct disk ID that we found earlier.
6. Make any other additional modifications if needed.
7. Copy/clone the configuration over to the host to install.
8. Run `sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount -f "$PWD#hostname"` to prepare the disk, replacing `hostname` with the host you want to switch to (ex. `andromeda`).

View file

@ -1,38 +1 @@
# Bootstrapping a New Device
This guide assumes you have a somewhat sane sops setup.
1. First, boot the NixOS live environment (minimal ISO is recommended).
2. Then, get the harddrive ID using `lsblk` or `fdisk -l`:
```bash
sudo fdisk -l
ls -lah /dev/disk/by-id | grep -i <drive disk ID ie. sda>
```
Example output:
```bash
[nix-shell:~]$ sudo fdisk -l
Disk /dev/loop0: 1.14 GiB, 1221455872 bytes, 2385656 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 256 GiB, 274877906944 bytes, 536870912 sectors
Disk model: QEMU HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[nix-shell:~]$ ls -lah /dev/disk/by-id | grep -i sda
lrwxrwxrwx 1 root root 9 May 5 13:20 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0 -> ../../sda
[nix-shell:~]$ # disk path: /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0
```
3. Manually create a host configuration by modifying/duplicating `hosts/<target_host_to_base_off_of>` to `hosts/<new_host_name>`. Be sure to modify the hostname in `hosts/<new_host_name>/configuration.nix`.
4. Add the host to `flake.nix`.
5. Modify the disko configuration for our host to use the correct disk ID that we found earlier.
6. Make any other additional modifications if needed.

View file

@ -39,7 +39,7 @@
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
inputs.disko.nixosModules.default inputs.disko.nixosModules.default
(import ./hosts/andromeda/disko.nix {device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0";}) (import ./system/disko.nix {device = "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0";})
inputs.impermanence.nixosModules.impermanence inputs.impermanence.nixosModules.impermanence
./hosts/andromeda/configuration.nix ./hosts/andromeda/configuration.nix
]; ];

View file

@ -19,23 +19,30 @@
}; };
rootfs = { rootfs = {
size = "100%"; size = "100%";
name = "NixOS";
content = { content = {
"/root" = { type = "btrfs";
mountpoint = "/"; extraArgs = ["-f"];
# mountOptions = ["compress=zstd" "noatime"]; subvolumes = {
}; root = {
"/persist" = { name = "root";
mountpoint = "/persist"; mountpoint = "/";
# mountOptions = ["compress=zstd" "subvol=persist" "noatime"]; };
mountOptions = ["subvol=persist" "noatime"]; persist = {
}; name = "persist";
"/home" = { mountpoint = "/persist";
mountpoint = "/home"; mountOptions = ["subvol=persist" "noatime"];
mountOptions = ["compress=zstd" "subvol=home" "noatime"]; };
}; home = {
"/nix" = { name = "home";
mountpoint = "/nix"; mountpoint = "/home";
mountOptions = ["compress=zstd" "subvol=nix" "noatime"]; mountOptions = ["subvol=home" "noatime"];
};
nix = {
name = "nix";
mountpoint = "/nix";
mountOptions = ["compress=zstd" "subvol=nix" "noatime"];
};
}; };
}; };
}; };