fix: Fixes disco configuration
This commit is contained in:
parent
c3eab3b1ae
commit
86c41180b8
4 changed files with 67 additions and 54 deletions
43
README.md
43
README.md
|
@ -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`).
|
||||||
|
|
37
SETUP.md
37
SETUP.md
|
@ -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.
|
|
||||||
|
|
|
@ -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
|
||||||
];
|
];
|
||||||
|
|
|
@ -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"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue