diff --git a/src/SUMMARY.md b/src/SUMMARY.md index de48580..7da5722 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -3,11 +3,14 @@ [Introduction](./introduction.md) - [Installation](./installation/index.md) +- [Nix basics](./nixbasics/index.md) + - [Attributes](./nixbasics/attributes.md) - [Configuration](./configuration/index.md) - [Users](./configuration/users.md) - [Drivers](./configuration/drivers.md) - [GUI](./configuration/GUI.md) - [Home-manager](./configuration/hm.md) + - [How to find new software](./configuration/new.md) --- diff --git a/src/configuration/new.md b/src/configuration/new.md new file mode 100644 index 0000000..e740802 --- /dev/null +++ b/src/configuration/new.md @@ -0,0 +1 @@ +# How to find new software diff --git a/src/installation/index.md b/src/installation/index.md index 25267fe..7e922ea 100644 --- a/src/installation/index.md +++ b/src/installation/index.md @@ -1 +1,89 @@ # Installation + +The first part of starting the installation is getting an install media. +For this guide, the minimal will be assumed, and can be found [here](https://nixos.org/download/), at the bottom of the page. + +Booting it, you will get a TTY. +To be able to run all the commands without any issues, please run `sudo -i` to have root privileges. +We are then able to setup some pleasantries, such as `loadkeys sv-latin1` for a Swedish keyboard layout (Please lookup your own layout for other languages) and `setfont ter-v32n` for a larger font. + + +If you want WIFI, run `systemctl start wpa_supplicant` and then `wpa_cli`. +This is then followed by something like the following +```bash +> add_network +0 + +> set_network 0 ssid "myhomenetwork" +OK + +> set_network 0 psk "mypassword" +OK + +> enable_network 0 +OK + +> quit +``` +You should now have network, if you used the right `ssid` and `psk`. + +It is now time to setup your disks. +I prefer to use `cfdisk`, since it is a nice way to see all the current allocations. +In `cfdisks` TUI, follow the following steps, for the disk that you want to partition +- gpt +- New 512M +- Type (EFI System) +- New (Size left minus amount of ram) +- New (Rest) +- Type (Linux Swap) +- Write +- Quit + +The disk have now been partitioned, but need to be formatted. +To get the names of the disk you can run `lsblk`. +In my case, when I was installing it in a VM, I was able to see that it was `vda` that was the relevant part. +Usually, installations on hardware care about `sdx` or `nvme0nX`. +```bash +> lsblk +NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS +loop0 7:0 0 1.5G 1 loop /nix/.ro-store +sr0 11:0 1 1.6G 1 rom /iso +sr1 11:1 1 1024M 0 loop +vda 253:0 0 32G 0 disk +├─vda1 253:1 0 512M 0 part +├─vda2 253:2 0 28G 0 part +└─vda3 253:3 0 3.5G 0 part +``` + +With the devices known, run the following commands. +```bash +> mkfs.fat -F 32 -n boot /dev/vda1 +> mkfs.ext4 -L nixos /dev/vda2 +> mkswap -L swap /dev/vda3 +``` + +`mkfs.fat` is to make the boot disk, and ensure that it is Fat32, with the name boot. +Similarly, `mkfs.ext4` creates the root file system, with the name nixos, and `mkswap` to create the swap. + +We are now able to mount the future system, using +```bash +> mount /dev/disk/by-label/nixos /mnt +> mkdir -p /mnt/boot +> mount -o umask=077 /dev/disk/by-label/boot /mnt/boot +> swapon /dev/disk/by-label/swap +``` + +With the system mounted, you can install using the following +```bash +> nixos-generate-config --root /mnt --flake +writing /mnt/etc/nixos/hardware-configuration.nix... +writing /mnt/etc/nixos/flake.nix... +writing /mnt/etc/nixos/configuration.nix... +For more hardware-specific settings, see https://github.com/NixOS/nixos-hardware. +> nixos-install --flake /mnt/etc/nixos/.#nixos +... +``` + +With this you have an installed system, with a root user, but not much more. +How to configure the system, to add users, software, drivers and such, will be covered in [Configuration](../configuration/index.md). +But, you might need to understand some aspects of the nix language in order to fully understand how to do configuration, so that will be covered in [Nix basics](../nixbasics/index.md). diff --git a/src/introduction.md b/src/introduction.md index e10b99d..dd9729f 100644 --- a/src/introduction.md +++ b/src/introduction.md @@ -1 +1,8 @@ # Introduction + +Hi. +So you want to install NixOS, from the ground? +Welcome, I am here to try and make that a bit simpler, than the current guides. +I have some issues with how the manual explains it, and want a bit simpler guide going through the steps, and doing some conventions that I feel is a good way to approach building up a new system. +I also wanted to separate multiple steps, and introduce them into different parts. + diff --git a/src/nixbasics/attributes.md b/src/nixbasics/attributes.md new file mode 100644 index 0000000..78a7385 --- /dev/null +++ b/src/nixbasics/attributes.md @@ -0,0 +1 @@ +# Attributes diff --git a/src/nixbasics/index.md b/src/nixbasics/index.md new file mode 100644 index 0000000..e6642e5 --- /dev/null +++ b/src/nixbasics/index.md @@ -0,0 +1 @@ +# Nix basics