Compare commits
1 Commits
159cd6f2f2
...
feature/in
| Author | SHA1 | Date | |
|---|---|---|---|
|
d288f6828f
|
@@ -4,7 +4,6 @@
|
|||||||
- For simplicity I'm using device labels rather than uuids
|
- For simplicity I'm using device labels rather than uuids
|
||||||
|
|
||||||
1. the partitioning layout should look somewhat like this after the installation
|
1. the partitioning layout should look somewhat like this after the installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
|
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
|
||||||
nvme0n1 259:0 0 476.9G 0 disk
|
nvme0n1 259:0 0 476.9G 0 disk
|
||||||
@@ -13,25 +12,26 @@ nvme0n1 259:0 0 476.9G 0 disk
|
|||||||
└─cryptroot 254:0 0 474.9G 0 crypt
|
└─cryptroot 254:0 0 474.9G 0 crypt
|
||||||
├─lvmroot-swap 254:1 0 20G 0 lvm [SWAP]
|
├─lvmroot-swap 254:1 0 20G 0 lvm [SWAP]
|
||||||
├─lvmroot-home 254:2 0 250G 0 lvm /home
|
├─lvmroot-home 254:2 0 250G 0 lvm /home
|
||||||
└─lvmroot-root 254:3 0 204.9G 0 lvm /nix/store
|
└─lvmroot-root 254:3 0 204.9G 0 lvm /
|
||||||
```
|
```
|
||||||
|
|
||||||
2. prepare the installation
|
> Note: `lsblk` may additionally show `/nix/store` as a mountpoint on `lvmroot-root`. This is not a separate partition. NixOS mounts the root device a second time at `/nix/store` with `ro,nosuid,nodev` flags to enforce store immutability at runtime.
|
||||||
|
|
||||||
|
2. prepare the installation
|
||||||
```bash
|
```bash
|
||||||
# format the boot partition
|
# format the boot partition
|
||||||
mkfs.fat -F 32 /dev/sda1 -n "nixboot"
|
mkfs.fat -F 32 /dev/nvme0n1p1 -n "nixboot"
|
||||||
# create an encrypted partition
|
# create an encrypted partition
|
||||||
cryptsetup luksFormat -y --label="nixcrypt" /dev/sda2
|
cryptsetup luksFormat -y --label="nixcrypt" /dev/nvme0n1p2
|
||||||
# open the encrypted partition and map it to /dev/mapper/cryptroot
|
# open the encrypted partition and map it to /dev/mapper/cryptroot
|
||||||
cryptsetup luksOpen /dev/sda2 cryptroot
|
cryptsetup luksOpen /dev/nvme0n1p2 cryptroot
|
||||||
|
|
||||||
# create the physical volume
|
# create the physical volume
|
||||||
pvcreate /dev/mapper/cryptroot
|
pvcreate /dev/mapper/cryptroot
|
||||||
# create a volume group inside
|
# create a volume group inside
|
||||||
vgcreate lvmroot /dev/mapper/cryptroot
|
vgcreate lvmroot /dev/mapper/cryptroot
|
||||||
# create the swap volume
|
# create the swap volume
|
||||||
lvcreate --size 8G lvmroot --name nwap
|
lvcreate --size 8G lvmroot --name swap
|
||||||
# if you desire, create a home volume
|
# if you desire, create a home volume
|
||||||
lvcreate --size 150G lvmroot --name home
|
lvcreate --size 150G lvmroot --name home
|
||||||
# create the root volume
|
# create the root volume
|
||||||
@@ -47,7 +47,7 @@ mkswap -L "nixswap" /dev/mapper/lvmroot-swap
|
|||||||
# mount root
|
# mount root
|
||||||
mount /dev/disk/by-label/nixroot /mnt
|
mount /dev/disk/by-label/nixroot /mnt
|
||||||
# mount boot
|
# mount boot
|
||||||
mount --mkdir /dev/sda1 /mnt/boot
|
mount --mkdir /dev/nvme0n1p1 /mnt/boot
|
||||||
# again, if you did the home volume
|
# again, if you did the home volume
|
||||||
mount --mkdir /dev/disk/by-label/nixhome /mnt/home
|
mount --mkdir /dev/disk/by-label/nixhome /mnt/home
|
||||||
# turn on swap
|
# turn on swap
|
||||||
@@ -55,13 +55,12 @@ swapon /dev/disk/by-label/nixswap
|
|||||||
```
|
```
|
||||||
|
|
||||||
3. prepare nixos
|
3. prepare nixos
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# generate templates and update the hardware-configuration.nix
|
# generate templates and update the hardware-configuration.nix
|
||||||
sudo nixos-generate-config --root /mnt
|
nixos-generate-config --root /mnt
|
||||||
|
|
||||||
# add cryptd to the kernelModules
|
# add dm-crypt and dm-mod to the kernelModules
|
||||||
boot.initrd.kernelModules = [ "dm-snapshot" "cryptd" ];
|
boot.initrd.kernelModules = [ "dm-crypt" "dm-mod" ];
|
||||||
|
|
||||||
# add file systems using labels
|
# add file systems using labels
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
@@ -86,25 +85,20 @@ boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-label/nixcrypt";
|
|||||||
```
|
```
|
||||||
|
|
||||||
4. install nixos
|
4. install nixos
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd /mnt
|
nixos-install
|
||||||
sudo nixos-install
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## how to deploy the inital config
|
## how to deploy the initial config
|
||||||
|
|
||||||
- Don't forget to install the bootloader, if you changed it since `nixos-install`
|
- Don't forget to install the bootloader, if you changed it since `nixos-install`
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ sudo nixos-rebuild --install-bootloader switch --flake .#host_name
|
$ sudo nixos-rebuild --install-bootloader switch --flake .#host_name
|
||||||
```
|
```
|
||||||
|
|
||||||
## how to upgrade the system
|
## how to upgrade the system
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ cd /path/to/repo
|
$ cd /path/to/repo
|
||||||
$ sudo nix flake update
|
$ nix flake update
|
||||||
$ sudo nixos-rebuild switch --flake .#host_name
|
$ sudo nixos-rebuild switch --flake .#host_name
|
||||||
$ sudo nix-collect-garbage
|
$ sudo nix-collect-garbage
|
||||||
```
|
```
|
||||||
@@ -114,7 +108,6 @@ $ sudo nix-collect-garbage
|
|||||||
The tool nix-helper is installed by this configuration. It simplifies administrating nixos and adds more output to the rebuild command. It also features a diff after a successful build. The command uses the `NH_FLAKE` environment variable to be able to run from whatever directory.
|
The tool nix-helper is installed by this configuration. It simplifies administrating nixos and adds more output to the rebuild command. It also features a diff after a successful build. The command uses the `NH_FLAKE` environment variable to be able to run from whatever directory.
|
||||||
|
|
||||||
Basic commands with a set `NH_FLAKE` variable are:
|
Basic commands with a set `NH_FLAKE` variable are:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ nh os switch
|
$ nh os switch
|
||||||
$ nh os build
|
$ nh os build
|
||||||
|
|||||||
Reference in New Issue
Block a user