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