content_atlanticaweb.fr/posts/Nixos/nixos-kimsufi.md

104 lines
3.5 KiB
Markdown
Raw Normal View History

2022-07-21 07:17:58 +00:00
---
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