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
nano /etc/wpa_supplicant.conf
network={
ssid="mynetwork"
psk="mysecretpassphrase"
}
Die restliche Konfiguration (IP-Adresse, DNS-Server und Gateway) wird automatisch über
DHCP geholt.
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
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
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
Partitionen mounten:
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.
fdisk /dev/sda
n
<ENTER>
<ENTER>
<ENTER>
<ENTER>
t
<ENTER>
8e
p
w
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
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
Konfiguration anpassen
Entweder du bearbeitest die Konfiguration per Hand
nano /mnt/etc/nixos/configuration.nix
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";
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
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.