Sie sind auf Seite 1von 5

NixOS Installation

Installationsmedium erstellen
Lade das neuste minimal ISO-Image von nixos.org runter. Erstelle z.B. mit dd einen
bootbaren USB-Stick wie hier beschrieben oder brenne es auf eine CD. Starte die Live-CD
auf dem Computer, auf dem du NixOS installieren möchtest.

Tastaturlayout umstellen
Mit diesem Befehl wird das deutsche Tastaturlayout aktiviert:

loadkeys de

WLAN einrichten (optional)


Es wird eine Internetverbindung benötigt, um Pakete runterzuladen. Du kannst den Computer
per LAN-Kabel anschließen oder wie folgt WLAN einrichten.

nano /etc/wpa_supplicant.conf

network={
ssid="mynetwork"
psk="mysecretpassphrase"
}

systemctl restart wpa_supplicant.service

Die restliche Konfiguration (IP-Adresse, DNS-Server und Gateway) wird automatisch über
DHCP geholt.

Zugriff per SSH (optional)


Wenn du die Installation von einem anderen Computer durchführen möchtest, auf dem du
z.B. diese Anleitung offen hast, kannst du dich per SSH verbinden.

Dafür muss erstmal der SSH-Server gestartet werden:

systemctl start sshd

Damit du dich einloggen kannst braucht der Benutzer root ein Passwort. Beachte, dass die
Live-CD ein englisches Tastatur-Layout hat.

passwd

Jetzt noch die IP herausfinden und mit einem Terminal per SSH verbinden:

[root@nixos:~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP
group default qlen 1000
link/ether d0:50:99:c0:60:b5 brd ff:ff:ff:ff:ff:ff
inet 10.0.2.95/8 brd 10.255.255.255 scope global enp5s0
valid_lft forever preferred_lft forever
inet6 fe80::d250:99ff:fec0:60b5/64 scope link
valid_lft forever preferred_lft forever

imac:~ davidak$ ssh root@10.0.2.95

Festplatte partitionieren und Dateisystem erstellen


Mit LVM und verschlüsseltem Dateisystem
Bei mobilen Geräten, wie Notebooks, ist es wichtig die persönlichen Daten zu verschlüsseln.
LVM ermöglicht das Vergrößern von Partitionen, wodurch du dein System z.B. auf eine
größere Festplatte umziehen kannst.

Eine 500 MB Partition für /boot und den Rest für LVM.

fdisk /dev/sda
n
<ENTER>
<ENTER>
<ENTER>
+500M
n
<ENTER>
<ENTER>
<ENTER>
<ENTER>
t
<ENTER>
8e
p
w

Verschlüsselte Partition mit LUKS erstellen.

cryptsetup luksFormat /dev/sda2


cryptsetup luksOpen /dev/sda2 enc-pv

Nun werden 2 logical Volumes mit LVM erstellt. 8 GB SWAP und Rest für das root
Dateisystem.

pvcreate /dev/mapper/enc-pv
vgcreate vg0 /dev/mapper/enc-pv
lvcreate -L 8G -n swap vg0
lvcreate -l '100%FREE' -n root vg0

Dateisystem auf Partitionen formatieren.

mkfs.ext4 -L boot /dev/sda1


mkfs.ext4 -L nixos /dev/mapper/vg0-root
mkswap -L swap /dev/mapper/vg0-swap

Partitionen mounten:

mount /dev/disk/by-label/nixos /mnt


mkdir /mnt/boot
mount /dev/disk/by-label/boot /mnt/boot
swapon /dev/disk/by-label/swap

Mit LVM

Wenn du NixOS in einer VM installierst macht es Sinn LVM zu verwenden, da du damit z.B.
Partitionen (zur Laufzeit) vergrößern kannst.

Eine primäre Partition mit dem gesamten Speicherplatz erstellen:

fdisk /dev/sda
n
<ENTER>
<ENTER>
<ENTER>
<ENTER>
t
<ENTER>
8e
p
w

Falls du lieber cfdisk benutzt, kannst du es installieren mit:

nix-env -iA nixos.utillinuxCurses

Dann Volumes für Swap (1 GB) und / (Rest) erstellen und Dateisystem (ext4) formatieren.

pvcreate /dev/sda1
vgcreate vg0 /dev/sda1
lvcreate -L 1G -n lvswap vg0
lvcreate -l 100%FREE -n lvroot vg0
mkswap -L swap /dev/mapper/vg0-lvswap
swapon /dev/disk/by-label/swap
mkfs.ext4 -L nixos /dev/mapper/vg0-lvroot

Ohne LVM

Installierst du NixOS auf Hardware kannst du dir diese Abstraktionsschicht sparen.

Für ein Desktop-System macht es Sinn 4 GB Swap zu verwenden.

Eine Partition für Swap (1 GB) und eine für / (Rest) erstellen:

fdisk /dev/sda
n
<ENTER>
<ENTER>
<ENTER>
+1G
t
<ENTER>
82
n
<ENTER>
<ENTER>
<ENTER>
<ENTER>
p
w

Dann Dateisysteme formatieren:

mkswap -L swap /dev/sda1


swapon /dev/disk/by-label/swap
mkfs.ext4 -L nixos /dev/sda2

Partition mounten und Konfiguration erzeugen


mount /dev/disk/by-label/nixos /mnt
nixos-generate-config --root /mnt

Konfiguration anpassen
Entweder du bearbeitest die Konfiguration per Hand

nano /mnt/etc/nixos/configuration.nix

oder lädst eine Vorbereitete runter:

cd /mnt/etc/nixos/
rm configuration.nix
curl -O https://raw.githubusercontent.com/davidak/nixos-
config/master/minimal/configuration.nix

Es ist trotzdem nötig die Konfiguration im vorherigen Schritt zu erzeugen, da auch die
Hardware-Konfiguration erzeugt wird unter /mnt/etc/nixos/hardware-
configuration.nix.

Du musst in jedem Fall die Festplatte angeben, auf der sich das Dateisystem / (das /boot
enthält) befindet, damit der Bootmanager GRUB darauf installiert werden kann.

boot.loader.grub.device = "/dev/sda";

Bei einem verschlüsselten Dateisystem ist auch dieser Block nötig:

boot.initrd.luks.devices = [
{
name = "root";
device = "/dev/disk/by-uuid/06e7d974-9549-4be1-8ef2-f013efad727e";
preLVM = true;
allowDiscards = true;
}
];
Die UUID der Partition bekommst du mit blkid /dev/sda2.

Mir ist es auch wichtig nach der Installation ein deutsches Tastaturlayout (QWERTZ) zu
haben.

i18n = {
consoleFont = "Lat2-Terminus16";
consoleKeyMap = "de";
defaultLocale = "en_US.UTF-8";
};

Die Locales lasse ich auf englisch, da es bei der Suche nach Fehlermeldungen im Internet auf
englisch mehr Ergebnisse gibt.

Die Zeitzone stelle ich meinem Standort entsprechend ein, damit die Uhrzeit stimmt.

time.timeZone = "Europe/Berlin";

Um mich nach der Installation per SSH verbinden zu können aktiviere ich den SSH-Server
und erlaube Login als root.

services.openssh = {
enable = true;
permitRootLogin = "yes";
};

NixOS installieren
nixos-install
reboot

Eventuell vorhandene Syntax-Fehler in der Konfigurationsdatei werden angezeigt. Nachdem


du sie behoben hast einfach erneut nixos-install ausführen. Am Ende der Installation
musst du das Passwort für den Benutzer root eingeben.

Nach dem Neustart des Systems kannst du die Konfigurationsdatei erweitern, um die
gewünschten Services laufen zu lassen. Eine Übersicht aller Optionen findest auf auf der
NixOS Webseite. Die Konfiguration meiner NixOS-Systeme findest du auf Github.

Das könnte Ihnen auch gefallen