Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

NixOS installation guide: Difference between revisions

From posixlycorrect wiki
No edit summary
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 2: Line 2:


= Introduction =
= Introduction =
This is a complete guide on installing NixOs, using flakes.
This is an incomplete guide on installing NixOs, using flakes and home-manager.


Be sure to have an ISO image of NixOS, which can be obtained here: https://nixos.org/download/#nixos-iso.
Be sure to have an ISO image of NixOS, which can be obtained here: https://nixos.org/download/#nixos-iso.
Line 8: Line 8:
= Installation guide =
= Installation guide =
== Partitioning your disk ==
== Partitioning your disk ==
# Boot the installation medium.
# Open a terminal.
# Open a terminal.
# Wipe your disk: {{ic|$ blkdiscard /dev/<installation disk>}}.
# Wipe your disk: {{ic|$ blkdiscard /dev/<installation disk>}}.
Line 45: Line 46:
== Generate and edit config  ==
== Generate and edit config  ==
# {{ic|$ sudo nixos-generate-config --root /mnt}}
# {{ic|$ sudo nixos-generate-config --root /mnt}}
# {{ic|$ nvim /mnt/etc/nixos/configuration.nix}}
# Edit your configuration: {{ic|$ nvim /mnt/etc/nixos/configuration.nix}}
# {{ic|$ nvim /mnt/etc/nixos/hardware-configuration.nix}}
# Checkout your hardware config: {{ic|$ nvim /mnt/etc/nixos/hardware-configuration.nix}}
# Remember to add the following configuration so that grub works with EFI:
# Remember to add the following to {{ic|configuration.nix}} so that grub works with EFI:
<pre>
<pre>
boot.loader.grub.enable = true;
boot.loader.grub.enable = true;
Line 54: Line 55:
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.canTouchEfiVariables = true;
</pre>
</pre>
{{note|This is an example of my configuration: https://git.posixlycorrect.com/fabian/desktop_config}}


== Install ==
== Install ==
Line 61: Line 63:
# Login as root and set a password for your user: {{ic|$ passwd <username>}}
# Login as root and set a password for your user: {{ic|$ passwd <username>}}
# Logout and login as your user
# Logout and login as your user
= Enable flakes and replace your config with your flake =
==== Flake ====
# {{ic|$ mkdir nix}}
# Create your {{ic|$ vim flake.nix}}
# {{ic|$ nixos rebuidl switch}}
==== Home manager ====
# {{ic|$ nix repl .}}
<pre>
home = homeConfigurations.<configuration name>
home.activationPackage
</pre>
# Copy the resulting path and do:
# {{ic|$ build <path>}}
# ./result/activate

Latest revision as of 20:14, 2 September 2024


Introduction

This is an incomplete guide on installing NixOs, using flakes and home-manager.

Be sure to have an ISO image of NixOS, which can be obtained here: https://nixos.org/download/#nixos-iso.

Installation guide

Partitioning your disk

  1. Boot the installation medium.
  2. Open a terminal.
  3. Wipe your disk: $ blkdiscard /dev/<installation disk>.
  4. Create root and boot partitions:
Use parted
$ parted <installation disk>
(parted) mklabel gpt
Boot partition
(parted) mkpart
(parted) Partitoin name? boot
(parted) File system type? fat32
(parted) Start? 0%
(parted) End? 2GB
(parted) set 1 esp on
(parted) set 1 boot on
Root partition
(parted) mkpart
(parted) Partitoin name? root
(parted) File system type? btrfs
(parted) Start? 2GB
(parted) End? 100%
(parted) quit

Configure and mount partitions

  1. $ mkfs.btrfs /dev/<root partition>
  2. $ mkfs.vfat -F32 /dev/<boot partition>
  3. $ mount /dev/<root partition> /mnt
  4. $ mkdir /mnt/boot
  5. $ mount /dev/<boot partition> /mnt/boot

Generate and edit config

  1. $ sudo nixos-generate-config --root /mnt
  2. Edit your configuration: $ nvim /mnt/etc/nixos/configuration.nix
  3. Checkout your hardware config: $ nvim /mnt/etc/nixos/hardware-configuration.nix
  4. Remember to add the following to configuration.nix so that grub works with EFI:
boot.loader.grub.enable = true;
boot.loader.grub.efiSupport = true;
boot.loader.grub.device = "nodev";
boot.loader.efi.canTouchEfiVariables = true;
Note: This is an example of my configuration: https://git.posixlycorrect.com/fabian/desktop_config

Install

  1. $ sudo nixos-install
  2. Set root password when prompted to do so.
  3. Reboot your machine
  4. Login as root and set a password for your user: $ passwd <username>
  5. Logout and login as your user


Enable flakes and replace your config with your flake

Flake

  1. $ mkdir nix
  2. Create your $ vim flake.nix
  3. $ nixos rebuidl switch

Home manager

  1. $ nix repl .
home = homeConfigurations.<configuration name>
home.activationPackage
  1. Copy the resulting path and do:
  2. $ build <path>
  3. ./result/activate