From d603a02ea9d90aafa369aa6d1d3555f93168f503 Mon Sep 17 00:00:00 2001 From: neox Date: Tue, 9 Jul 2024 16:15:18 +0200 Subject: [PATCH] simplification drastique --- config.scm | 4 ++ install.sh | 96 ++++++++++++++++++++++++++++++++++ procédure_installation_guix.md | 75 ++++---------------------- 3 files changed, 111 insertions(+), 64 deletions(-) create mode 100644 install.sh diff --git a/config.scm b/config.scm index 8208011..293bfb3 100644 --- a/config.scm +++ b/config.scm @@ -324,6 +324,10 @@ SUBSYSTEM==\"usb_device\", GROUP=\"spice\", MODE=\"0660\" ;; qui se trouvent ici s'obtiennent en exécutant « blkid » dans un terminal. (file-systems (cons* + (file-system + (mount-point "/boot/efi") + (device "/dev/CHANGE_THIS_DISK") + (type "vfat")) (file-system (mount-point "/") (device "/dev/mapper/ROOT") diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..149e599 --- /dev/null +++ b/install.sh @@ -0,0 +1,96 @@ +#!/bin/bash +# +# Guix Simplified Installer +# +# Copyright (C) 2024 Adrien Bourmault +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +set +x +set -e + +# Définition des couleurs +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[0;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +echo "${RED}Welcome to Guix Simplified Installer${NC}" +echo "${NC}Copyright (C) 2024 Adrien Bourmault ${NC}" +echo "${NC}This program is free software, released under the GNU AGPL version 3 or later.${NC}" + + +# Chemin vers le disque +DISK="$1" + +# Vérification de l'existence du disque +if [ ! -b "$DISK" ]; then + echo "${RED}Creating disk layout...${NC}" + exit 1 +fi + +echo -n "${BLUE}Creating disk layout...${NC}" + +parted -s "$DISK" mklabel gpt +parted -s "$DISK" mkpart primary fat32 1MiB 5% +parted -s "$DISK" mkpart primary ext4 5% 100% +parted -s "$DISK" print + +echo "${GREEN}OK${NC}" +echo -n "${BLUE}Setting up root partition encryption...${NC}" + +cryptsetup luksFormat "${DISK}p2" + +echo "${GREEN}OK${NC}" +echo -n "${BLUE}Unlocking root partition...${NC}" + +cryptsetup open "${DISK}p2" ROOT + +echo "${GREEN}OK${NC}" +echo -n "${BLUE}Formatting disks partitions...${NC}" + +mkfs.vfat "${DISK}p1" +mkfs.ext4 -L ROOT /dev/mapper/ROOT + +echo "${GREEN}OK${NC}" +echo -n "${BLUE}Updating disk configuration...${NC}" + +UUID=$(blkid -o value -s UUID "${DISK}p2") +sed -i "s/CHANGE_THIS_UUID/${UUID}/g" config.scm +UUID2=$(blkid -o value -s UUID "${DISK}p1") +sed -i "s/CHANGE_THIS_DISK/${UUID2}/g" config.scm + +echo "${GREEN}OK${NC}" +echo -n "${BLUE}Mounting disks...${NC}" + +mount LABEL=ROOT /mnt +mkdir -p /mnt/boot/efi +mount "${DISK}p1" /mnt/boot/efi + +echo "${GREEN}OK${NC}" +echo -n "${BLUE}Moving configuration to its final location...${NC}" + +mkdir /mnt/etc +mv config.scm /mnt/etc/config.scm + +echo "${GREEN}OK${NC}" + +echo -n "${BLUE}Installing GNU Guix${NC}" + +herd start cow-store /mnt + +guix system init /mnt/etc/config.scm /mnt + +echo "${GREEN}OK${NC}" \ No newline at end of file diff --git a/procédure_installation_guix.md b/procédure_installation_guix.md index 5ca4bb7..11812bb 100644 --- a/procédure_installation_guix.md +++ b/procédure_installation_guix.md @@ -50,10 +50,15 @@ dhclient wget forge.chalec.org/neox/guix_jerome/raw/branch/master/config.scm ``` +11. Récupérer l'installateur simplifié de Guix pré-préparé : +``` + wget forge.chalec.org/neox/guix_jerome/raw/branch/master/install.sh +``` + ### Préparation du disque -11. Rechercher la liste des disques : +12. Rechercher la liste des disques : ``` lsblk ``` @@ -61,71 +66,13 @@ lsblk Un résultat comme suit apparaît : ![](guix_07.png) -12. Si aucune partition n'existe, on utilisera l'utilitaire `cfdisk` (embarqué dans l'installateur). Pour cela, lancer simplement `cfdisk` et créer au moins une partition. Attention : bien penser à exécuter la commande d'écriture pour que les changements ne soient pas perdus. Redémarrer peut être nécessaire. Si vous avez un nvme (petit disque SSD très rapide ressemblant à une barette) : +13. On cherche alors le nom du disque local. Si vous ne voyez que `sda` c'est la clé USB. Votre disque peut s'appeler `nvme0n1`, et dans ce cas c'est un nvme. Lancez la commande d'installation en indiquant votre disque. Par exemple, avec un nvme : ``` -cfdisk /dev/nvme0n1 +chmod +x install.sh +./install.sh /dev/nvme0n1 ``` -La selection des commandes se fait avec les flèches. - -12. Utilisez la commande _New_, appuyez sur entrée - -13. Utilisez la commande _Write_, appuyez sur entrée, puis tapez 'yes' et appuyez sur entrée - -14. Utiliser la commande _Quit_, appuyez sur entrée. - -15. Dans ce tutoriel on identifie `/dev/vda1` comme le disque cible de l'installation. Si vous avez un nvme, il faudra le remplacer par le bon chemin sur votre machine : par exemple `/dev/nvme0n1p1` - -On commence par formater et chiffrer la partition : - -``` -cryptsetup luksFormat /dev/nvme0n1p1 -``` - -Puis on ouvre le disque chiffré : -``` -cryptsetup open /dev/nvme0n1p1 ROOT -``` - -Puis on formate la partition : -``` -mkfs.ext4 -L ROOT /dev/mapper/ROOT -``` - -16. La partition racine a maintenant un identufuabt On corrige l'identificant de la partition racine dans la configuration : -``` -UUID=$(blkid -o value -s UUID /dev/nvme0n1p1) -sed -i "s/CHANGE_THIS_UUID/${UUID}/g" config.scm -``` - -17. On monte ensuite la partition : -``` -mount LABEL=ROOT /mnt -``` - -18. Déplacer le fichier de configuration à son emplacement final : -``` -mkdir /mnt/etc -mv config.scm /mnt/etc/config.scm -``` - - -### Lancement de l'installation - -19. On active le service du Store : -``` -herd start cow-store /mnt -``` - - -20. On lance l'installation : -``` -guix system init /mnt/etc/config.scm /mnt -``` - - -21. Une fois cela terminé, on peut redémarrer le système. - +14. Redémarrer l'appareil. ### Configuration d'OpenVPN @@ -145,4 +92,4 @@ sudo wget https://www.fdn.fr/ca-vpn-fdn.crt /etc/openvpn/fdn.crt ### Enjoy ? -Pour gérer le VPN, c'est avec la commande `sudo herd openvpn` \ No newline at end of file +Pour gérer le VPN, c'est avec la commande `sudo herd openvpn`