--- Date: 2022-05-26 Author: Alexandre LUCAZEAU Title: Installation de Nixos sur un serveur Kimsufi Slug: categories: Nixos Tags: - nixos - documentation - kimsufi --- # Kimsufi mais pas totalement Dans un précèdent article, on a parlé du script **nixos-infect** qui permet de remplacer un système existant par Nixos. Mais parfois ça suffit pas. J'ai un serveur KS-16, et ce dernier ne boot pas quand j'utilise le script. Nous allons donc faire une installation manuelle. Pour ce faire, je me suis basé sur la doc de https://mgdm.net/weblog/nixos-on-kimsufi/ On commence donc par booter en mode rescue. Ce serveur possède 3 disques de 2To Je vais utiliser les disques en RAID 1. Cela me mettra à l'abris de la perte de 2 disques simultanées. On commence par supprimer le volume logique lvremove /dev/vg/dat puis le VG vgremove vg puis le PV pvremove /dev/md127 puis on supprime le RAID existant dadm --stop /dev/md125 mdadm --stop /dev/md12 mdadm --stop /dev/md127 Enfin on supprime les superblock des partitions existantes : mdadm --zero-superblock /dev/sda2 mdadm --zero-superblock /dev/sda3 Enfin on supprime la table des partitions wipefs -a /dev/sda # Phase 2 : partitionnement Le disque sera partitionné en 3 parties. Une partition de boot en ext4 pour éviter toutes prises de tête, une seconde partition contenant tout l'espace disponible sauf 32Go et un swap de 32Go. Sur un PC de bureau et encore plus sur un laptop, je mets un swap équivalent à la RAM pour l'hibernation. Sur un serveur perso, 8Go c'est largement suffisant. On commence par stocker dans des variables le nom de nos disques : DISK1=/dev/disk/by-id/ata-HGST_HUS724020ALA640_PN1134P6KV8PKW DISK2=/dev/disk/by-id/ata-HGST_HUS726020ALA610_N4G3SPDY DISK3=/dev/disk/by-id/ata-HGST_HUS726020ALA610_N4G3SR1Y Partionnement : parted /dev/sda -- mklabel msdos parted /dev/sda -- mkpart primary 1MiB 512MiB # /boot parted /dev/sda -- mkpart primary 512MiB -32GiB # / en ZFS parted /dev/sda -- mkpart primary linux-swap -32GiB 100% # swap On format la partition de boot, le raid et on charge le module zfs et on crée le spool ainsi que les partitions zfs mkfs.ext4 -L boot $DISK1-part1 mdadm --create /dev/md0 --level=0 --raid-devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2 /sbin/modprobe zfs zpool create -f -O mountpoint=none rpool $DISK1-part2 zfs create -o mountpoint=legacy rpool/root zfs create -o mountpoint=legacy rpool/root/nixos Je n'ai pas besoins de partition pour /home je préfère avoir 1 seule partition racine. Maintenant que les partitions sont prêtes, on va les mounter et installer nixos. ## Mount des partitions mount -t zfs rpool/root/nixos /mnt mkdir /mnt/boot mount $DISK1-part1 /mnt/boot # Installation de Nixos sfdisk --dump $DISK1 | sfdisk $DISK2 sfdisk --dump $DISK1 | sfdisk $DISK3 maddm --create /dev/md0 --level=0 --raid-devices=3 /dev/sda2 /dev/sdb2 /dev/sdc2 mkfs.ext4 -L nix /dev/md0 chroot . /$INIT mount /dev/md0 /mnt mount /dev/sda1 /mnt/boot mkdir /mnt/boot nixos-generate-config --root /mnt Editer /mnt/df création des répertoirs temporaires mkdir -p inst host/nix wget https://channels.nixos.org/nixos-21.11/latest-nixos-minimal-x86_64-linux.iso modprobe loop mount -o loop latest-nixos-minimal-x86_64-linux.iso inst apt install squashfs-tool unsquashfs -d host/nix/store inst/nix-store.squashfs '*' chroot . /$INIT mount -t zfs rpool/root/nixos /mnt mount /dev/sda1 /mnt/boot nixos-generate-config --root /mnt NIX_PATH="nixpkgs=channel:nixos-21.11" nixos-install passwd