104 lines
3.5 KiB
Markdown
104 lines
3.5 KiB
Markdown
|
---
|
||
|
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
|
||
|
|