diff --git a/howto/systemd.org b/howto/systemd.org index 93e2a50..f8ef173 100644 --- a/howto/systemd.org +++ b/howto/systemd.org @@ -1,6 +1,6 @@ -*- mode: org; org-hide-emphasis-markers: t; -*- -#+TITLE: Description de normes autour des emails. +#+TITLE: Description de ~systemd~ et comment l'utiliser? #+AUTHOR: Des nounous quelconques. #+EMAIL: contact@crans.org #+SEQ_TODO: TODO | in_progress | DONE @@ -74,6 +74,50 @@ de s'y préparer. Pour les deux exemples susmentionnés, cela a été annoncé p d'un an à l'avance. +* Rappel : processus de démarrage d'un ordinateur /systemd/GNU/Linux/ + +Ce paragraphe présente la manière dont les machines démarrent. Cette +présentation se veut rapide, mais suffisante pour que chacun·e puisse comprendre +à quelle étape de ce processus les disques d'un ordinateur sont déchiffrés, +montés, /etc./ + +/Note/ : Je me concentrerai que sur les systèmes (U)EFI utilisant une table de +partitions ~gpt~ (/i.e./ le disque sur lequel se trouvent les fichiers de démarrage +contient un partitionnement ~gpt~). + +Procédé de démarrage : + +1. le logiciel de la carte mère est le premier élément à démarrer. Il charge + vos paramètres (/e.g./ secure boot activé ou non) ; + +2. le logiciel cherche à démarrer ou bien votre système d'exploitation + directement, ou bien un /système d'amorçage/ (/bootloader/ en, anglais) ; + +3. supposons qu'il lance ~systemd-boot~. + ~systemd-boot~ va constituer un menu avec + - une ou plusieurs entrées pour lancer le(s) système(s) d'exploitation + disponible(s) sur votre machine (ou en réseau), + - une entrée pour redémarrer dans le panneau de configuration du logiciel + UEFI, + - une entrée pour redémarrer ; + +4. Supposons que l'utilisateurice (ou ~systemd-boot~) choisisse un système sous + ~systemd~. + ~systemd~, qui est actuellement lancé dans un petit environnement (appelé + /initrd/) va chercher à initialiser le système, noramment en : + 1. déchiffrant la partition racine du système (si nécessaire), + 2. montant la partition racine du sysème, + 3. pivotant sur le système final dont ~systemd~ vient de monter ~/~. + +5. Nous sommes sur la bonne voie : le système de fichier principal est monté. + ~systemd~ monte les partitions/disques/resources réseaux supplémentaires + requis, met en place les sous-systèmes nécessaires (journalisation, réseau, + ...). + + L'un des derniers services démarré permet aux utilisateurices de + s'authentifier. Le sysème a fini de démarrer. + + * TODO Configuration ** TODO Unité de configuration (~man systemd.unit~) @@ -89,8 +133,60 @@ d'un an à l'avance. ** TODO Chiffrement (mots de passe, recovery key, FIDO2 ou TMP2) +L'utilitaire principal pour gérer le chiffrement de disques est +~systemd-cryptenroll~. + ** TODO Reconnaissance automatique de partitions +Lors de l'installation d'un système d'exploitation (avec UEFI), il y a au moins +deux partitions : +- une ESP (/EFI System Partition/), laquelle stocke les images de démarrage (dont + l'éventuel boot loader) ; +- une partition racine (root, ou ~/~), laquelle correspond au chemin ~/~ pour le + système. C'est ici que sont généralement stockées vos applications, la + configuration système, /etc/. + +Pour ~systemd~, touts les points de montage sont des /unités de montage/ et le +déchiffrement des disques est effectué via des /unités de services/. Ces unités +sont /générées/ (/Cf./ plus bas). + + +Lors du démarrage, il faut mettre le système de fichiers en place, /i.e./ monter +les disques. Lors de l'installation du système d'exploitation, deux choix +s'offrent à vous : +- /OU BIEN/ Décrire les blocks à déchiffrer dans ~/etc/crypttab~ (/crypt table/) et + les points de montage dans ~/etc/fstab~ (/file systems table/). + + Ces fichiers seront inclus dans l'image de démarrage (qui est souvent appellée + /initrd/ ou /initramfs/), afin que ~systemd~ sache quels disques déchiffrer et + monter (et comment). + +- /OU BIEN/ Indiquer le type de chaque partition ("X est ~/~", "Y est ~/boot~", "Z est + ~/home~", /etc./). Si tel est le cas, il n'est plus nécessaire d'inclure les + partitions concernées dans ~/etc/fstab~. + /Note/ : Si vous utilisez LUKS2 pour chiffrer vos disques, il n'est pas non plus + nécessaire d'indiquer ces éléments dans ~/etc/crypttab~. + + /Exemple/ : Partition ~/home~, troisième partition du disque ~/dev/nvme0n1~. + Il suffit : + - de changer le type de partition de ~/dev/nvme0n1p3~ : + #+begin_src fdisk + fdisk /dev/nvme0n1 + + t # change le type de partition + 3 # numéro de la partition à mettre à jour + home # (ou 43) abbréviation pour "933ac7e1-2eb4-4f13-b844-0e14e2aef915" + w # écrit les changements à la table de partitions + #+end_src + - retirer la ligne correspondant à ~/home~ dans ~/etc/fstab~ (et si la partition + est chiffrée, de ~/etc/crypttab~ aussi), + - régénrer les images de démarrage, + - redémarrer et tester. + + /Note/ : se référer à ~man systemd-gpt-auto-generator(8)~ pour une liste complète + des tags ~gpt~ reconnus par ~systemd~. + + ** TODO Redimension automatique de partitions ** TODO UKI et Secure boot