nixos-config/README.md

95 lines
3 KiB
Markdown
Raw Normal View History

2020-08-22 17:44:39 +02:00
# NixOS configuration
## How to install
This guide describes how to install this configuration (or any NixOS
configuration) with GPT and legacy (BIOS) boot.
2020-08-24 11:11:23 +02:00
If you do not have a wired connection, first set up wifi
wpa_passphrase "SSID" "PSK" | sudo wpa_supplicant -B -i wlp4s0 -c/dev/stdin
2020-08-22 17:44:39 +02:00
Create the partition table (enter the indented lines in the repl).
sudo parted /dev/sdX
mktable GPT
mkpart primary 1MiB 2MiB
mkpart primary 2MiB 500MiB
mkpart primary 500MiB 100%
set 1 bios_grub on
disk_toggle pmbr_boot
quit
Format encrypted partition and open it
sudo cryptsetup luksFormat /dev/sdX3
sudo cryptsetup luksOpen /dev/sdX3 HOSTNAME-pv
Create LVM (replace `8G` with desired swap size)
sudo pvcreate /dev/mapper/HOSTNAME-pv
sudo vgcreate HOSTNAME-vg /dev/mapper/HOSTNAME-pv
sudo lvcreate -L 8G -n swap HOSTNAME-vg
sudo lvcreate -l '100%FREE' -n root HOSTNAME-vg
**Hint**: If you have to reboot to the installation system later because
something went wrong and you need access to the LVM (but dont know LVM), do
the following after opening the luks partition: `sudo vgchange -ay`
Create filesystems
sudo mkfs.ext2 /dev/sdX2
sudo mkfs.ext4 -L root /dev/HOSTNAME-vg/root
sudo mkswap -L swap /dev/HOSTNAME-vg/swap
Mount the file systems and activate swap
sudo mount /dev/HOSTNAME-vg/root /mnt
sudo mkdir /mnt/boot
sudo mount /dev/sdX2 /mnt/boot
sudo swapon /dev/HOSTNAME-vg/swap
Create the configuration (see [below](#how-to-add-new-device)) and copy this
repository to your new home directory (e.g. `/mnt/home/simon/nixos`).
Add a symlink as the global configuration
sudo mkdir -p /mnt/etc/nixos/
2020-10-16 15:31:37 +02:00
sudo ln -s ../../home/simon/nixos/machines/nunotaba/configuration.nix /mnt/etc/nixos/configuration.nix
2020-08-22 17:44:39 +02:00
Generate hardware configuration and copy hardware configuration to machine
configuration
2020-08-22 17:44:39 +02:00
sudo nixos-generate-config --root /mnt/
2020-10-16 15:31:37 +02:00
sudo mv /mnt/etc/nixos/hardware-configuration.nix /mnt/home/simon/nixos/machines/nunotaba/hardware-configuration.nix
sudo ln -s ../../home/simon/nixos/machines/nunotaba/hardware-configuration.nix /mnt/etc/nixos/hardware-configuration.nix
2020-08-22 17:44:39 +02:00
2020-10-16 15:31:37 +02:00
Install NixOS
2020-08-22 17:44:39 +02:00
sudo nixos-install --no-root-passwd
2020-10-16 15:31:37 +02:00
Enter the target as a container, set a user password and clone the dotfiles
2020-08-22 17:44:39 +02:00
2020-10-16 15:31:37 +02:00
sudo cp /etc/resolv.conf /mnt/etc/ # see https://github.com/NixOS/nixpkgs/issues/39665
nixos-enter
2020-08-22 17:44:39 +02:00
passwd simon
2020-10-16 15:31:37 +02:00
su simon
2020-08-22 17:44:39 +02:00
# press “q” to get rid of zsh-newuser-install
git clone https://github.com/andsens/homeshick.git $HOME/.homesick/repos/homeshick
source $HOME/.homesick/repos/homeshick/homeshick.sh
homeshick clone https://git.sbruder.de/simon/dotfiles
2020-10-16 15:31:37 +02:00
^D # user
^D # nixos-enter
sudo rm /mnt/etc/resolv.conf
reboot
2020-08-22 17:44:39 +02:00
## How to add new device
* Copy the config from the device that is similar to the new one
* Import profiles/modules you want
* Change settings in `configuration.nix`
* Change secrets
## License
[MIT License](LICENSE)