Installation de Nixos sur un serveur 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

Généré avec Hugo
Thème Stack conçu par Jimmy