Mise à jour pour hiver 2026

This commit is contained in:
2026-04-07 17:41:35 -03:00
parent 2ce08c4130
commit a14c778394
6 changed files with 411 additions and 158 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,28 +1,64 @@
#!/bin/bash
export PATH="/usr/sbin:/usr/bin:$PATH"
SOURCE_DIR=$(pwd)
PARENT_DIR=$(dirname "$SOURCE_DIR")
CHAPTER_NAME=$(basename "$SOURCE_DIR")
run_lualatex() {
local jobname=$1
local texinput=$2
local passes=${3:-2}
for i in 1 2 3; do
lualatex -jobname="$jobname" -shell-escape "$texinput"
local tmpdir=$(mktemp -d)
mkdir -p "$tmpdir/$CHAPTER_NAME"
ln -s "$SOURCE_DIR/main.tex" "$tmpdir/$CHAPTER_NAME/main.tex"
[ -d "$SOURCE_DIR/media" ] && ln -s "$SOURCE_DIR/media" "$tmpdir/$CHAPTER_NAME/media"
[ -d "$SOURCE_DIR/libs" ] && ln -s "$SOURCE_DIR/libs" "$tmpdir/$CHAPTER_NAME/libs"
[ -d "$PARENT_DIR/libs" ] && [ ! -e "$tmpdir/$CHAPTER_NAME/libs" ] && ln -s "$PARENT_DIR/libs" "$tmpdir/$CHAPTER_NAME/libs"
[ -d "$SOURCE_DIR/fonts" ] && ln -s "$SOURCE_DIR/fonts" "$tmpdir/$CHAPTER_NAME/fonts"
[ -d "$PARENT_DIR/fonts" ] && [ ! -e "$tmpdir/$CHAPTER_NAME/fonts" ] && ln -s "$PARENT_DIR/fonts" "$tmpdir/$CHAPTER_NAME/fonts"
cd "$tmpdir/$CHAPTER_NAME"
echo "[START] $jobname"
for ((i=1; i<=passes; i++)); do
lualatex -interaction=nonstopmode -jobname="$jobname" -shell-escape "$texinput" > "$tmpdir/$jobname.log" 2>&1
done
if [ ! -f "$jobname.pdf" ]; then
echo "[ERROR] $jobname failed - no PDF produced"
tail -20 "$tmpdir/$jobname.log" 2>/dev/null
rm -rf "$tmpdir"
return 1
fi
cp "$jobname.pdf" "$SOURCE_DIR/"
echo "[DONE] $jobname"
cd "$SOURCE_DIR"
rm -rf "$tmpdir"
}
clean_env() {
rm -f *.aux *.log *.toc *.out *.lof *.lot *.bbl *.blg *.fls *.fdb_latexmk *.synctex.gz *.nav *.snm
}
run_lualatex "$CHAPTER_NAME" "\PassOptionsToClass{handout}{beamer}\input{main.tex}" 3 &
pid1=$!
run_lualatex "$CHAPTER_NAME-presentation" "main.tex" 3 &
pid2=$!
run_lualatex "$CHAPTER_NAME-print-portrait" "\PassOptionsToClass{handout}{beamer}\def\printportrait{1}\input{main.tex}" 3 &
pid3=$!
run_lualatex "$CHAPTER_NAME-print-landscape" "\PassOptionsToClass{handout}{beamer}\def\printlandscape{1}\input{main.tex}" 3 &
pid4=$!
current_dir=$(basename "$(pwd)")
failed=0
for pid in $pid1 $pid2 $pid3 $pid4; do
wait $pid || failed=1
done
run_lualatex "$current_dir" "\PassOptionsToClass{handout}{beamer}\input{main.tex}"
clean_env
if [ $failed -eq 1 ]; then
echo "Some compilations failed."
exit 1
fi
run_lualatex "$current_dir-presentation" "main.tex"
clean_env
run_lualatex "$current_dir-print-portrait" "\PassOptionsToClass{handout}{beamer}\def\printportrait{1}\input{main.tex}"
clean_env
run_lualatex "$current_dir-print-landscape" "\PassOptionsToClass{handout}{beamer}\def\printlandscape{1}\input{main.tex}"
clean_env
echo "All compilations complete."

501
main.tex
View File

@@ -12,7 +12,7 @@
Contextuals=Alternate,
BoldFont={*-Bold},
UprightFont={*-Regular},
]{Fira Code}
]{FiraCode}
\renewcommand\setmonofont[2][]{}
\usepackage[french]{babel}
@@ -46,6 +46,9 @@ version={4.0},
\keystroke{#2}}
\newcommand{\command}[1]{\texttt{\textcolor{blue}{\$\,#1}}}
\newcommand{\placeholder}[1]{\textcolor{orange}{\texttt{<#1>}}}
\usetikzlibrary{arrows.meta, positioning}
\usepackage{pgfpages}
\usepackage{everypage}
@@ -74,10 +77,19 @@ version={4.0},
\uni{Université de Moncton}
\location{Université de Moncton}
\background{media/background.jpg}
\date{20 mars 2025}
\date{7 avril 2026}
\begin{document}
\maketitle
{
\setbeamertemplate{footline}{}
\begin{frame}[plain,noframenumbering]
\begin{tikzpicture}[remember picture, overlay]
\node[inner sep=0pt] at (current page.center) {%
\includegraphics[width=\paperwidth, height=\paperheight]{media/title-slide.png}%
};
\end{tikzpicture}
\end{frame}
}
\begin{frame}
\begin{wide}
@@ -89,25 +101,35 @@ version={4.0},
\end{wide}
\end{frame}
\begin{frame}{Table des matières}
\tableofcontents
\end{frame}
\section{Pourquoi ?}
\begin{frame} \frametitle{Pourquoi ?}
\begin{wide}
\begin{itemize}[<+->]
\item La plupart des distributions Linux ont un installateur graphique facile d'utilisation. Il existe même des scripts d'installation semi-automatiques pour Arch Linux.
\item Le séminaire proposé consiste à installer Arch Linux manuelle avec des commandes dans un terminal.
\item Mais pourquoi s'infliger des souffrances en installant manuellement Arch Linux ?
\item La plupart des distributions Linux offrent un installateur graphique. Il existe même des scripts semi-automatiques pour Arch Linux.
\item Ce séminaire propose une approche différente~: installer Arch Linux manuellement, commande par commande.
\item Mais pourquoi s'infliger ça ?
\begin{itemize}
\item \textbf{\Rightarrow\:Pour apprendre.}
\end{itemize}
\item Une personne informaticienne explore en profondeur pour comprendre le fonctionnement des systèmes, tandis qu'une personne technicienne se concentre sur leur mise en œuvre et leur maintenance. L'approche scientifique pousse toujours à approfondir la connaissance.
\item En réalisant cette installation, vous allez :
\begin{itemize}
\item Mieux comprendre la structure d'un système d'exploitation.
\item Comprendre le système de partitionnement et sa relation aux systèmes de fichiers.
\item Comprendre le processus de démarrage d'un système d'exploitation.
\item Apprendre à personnaliser et maîtriser votre environnement Linux.
\end{itemize}
\item Comprendre un système en profondeur, c'est ce qui distingue l'approche scientifique de la simple utilisation.
\end{itemize}
\end{wide}
\end{frame}
\begin{frame} \frametitle{Ce que vous allez apprendre}
\begin{wide}
En réalisant cette installation, vous allez~:
\vspace{0.5cm}
\begin{itemize}[<+->]
\item Comprendre la \textbf{structure} d'un système d'exploitation.
\item Comprendre le \textbf{partitionnement} et sa relation aux systèmes de fichiers.
\item Comprendre le \textbf{processus de démarrage} d'un système d'exploitation.
\item Apprendre à \textbf{personnaliser} et maîtriser votre environnement Linux.
\end{itemize}
\end{wide}
\end{frame}
@@ -119,8 +141,8 @@ version={4.0},
\begin{itemize}[<+->]
\item Pour créer une clé USB qui contient l'image d'installation d'Arch Linux~:
\begin{enumerate}
\item Rendez vous à l'adresse \href{https://archlinux.org/download/}{https://archlinux.org/download/}.
\item Choisissez un serveur Canadien dans la liste et cliquez sur son lien.
\item Rendez-vous à l'adresse \href{https://archlinux.org/download/}{https://archlinux.org/download/}.
\item Choisissez un serveur canadien dans la liste et cliquez sur son lien.
\item Via la page d'index du serveur, téléchargez le fichier ISO qui aura un nom comme~: \texttt{archlinux-20XX.XX.01-x86\_64.iso}.
\end{enumerate}
\item Si vous êtes déjà sur Linux~:
@@ -128,7 +150,7 @@ version={4.0},
\item Ouvrez un terminal.
\item Branchez la clé USB qui servira de support d'installation.
\item \command{sudo dmesg} pour identifier le code \texttt{sdX} de la clé USB.
\item Placez vous dans le répertoire où se trouve l'ISO en utilisant \texttt{cd}.
\item Placez-vous dans le répertoire où se trouve l'ISO en utilisant \texttt{cd}.
\item \command{sudo dd bs=32M if=archlinux-20XX.XX.01-x86\_64.iso of=/dev/sdX conv=fsync oflag=direct status=progress}
\end{enumerate}
\item Si vous êtes sur Windows (nos sincères sympathies)~: Vous pouvez utiliser \href{https://rufus.ie/en/}{Rufus}.
@@ -136,23 +158,41 @@ version={4.0},
\end{wide}
\end{frame}
\section{Partitionnement, formatage et montage}
\begin{frame} \frametitle{Table de Partitionnement}
\begin{frame} \frametitle{Démarrer sur la clé USB}
\begin{wide}
\begin{itemize}[<+->]
\item \textbf{Définition:} Une table de partitionnement est une structure située sur un disque décrivant comment l'espace de stockage est divisé en zones distinctes appelées partitions.
\item \textbf{Rôle:} Elle détermine où chaque partition commence et se termine sur le disque et le type de système de fichiers de chaque partition.
\item \textbf{Fonctionnement:}
\item Branchez la clé USB contenant l'ISO d'Arch Linux et redémarrez l'ordinateur.
\item Accédez au \textbf{menu de démarrage} (\textit{boot menu}) en appuyant sur une touche au démarrage. La touche varie selon le fabricant~:
\begin{itemize}
\item Elle est placée généralement à un emplacement fixe sur le disque et est utilisée par l'ordinateur au démarrage pour détecter et gérer les partitions présentes.
\item Elle indique quelles partitions sont amorçables (\textit{«~bootable~»}), aidant ainsi le processus de démarrage du système d'exploitation.
\end{itemize}
\item \textbf{Systèmes de fichiers:}
\begin{itemize}
\item Chaque partition peut être formatée avec un système de fichiers spécifique, permettant de stocker et d'organiser les fichiers.
\item Différents systèmes de fichiers peuvent coexister sur le même disque dans différentes partitions.
\item \keystroke{F12}~: Dell, Lenovo, Acer
\item \keystroke{F9}~: HP
\item \keystroke{Esc}~: ASUS
\item \keystroke{F2} ou \keystroke{Del}~: Accès au BIOS/UEFI si le boot menu n'est pas disponible
\end{itemize}
\item Sélectionnez la clé USB dans la liste des périphériques de démarrage.
\item Si \textbf{Secure Boot} empêche le démarrage, désactivez-le dans les paramètres UEFI.
\end{itemize}
\end{wide}
\end{frame}
\section{Partitionnement, formatage et montage}
\begin{frame} \frametitle{Table de partitionnement}
\begin{wide}
\begin{itemize}[<+->]
\item Une \textbf{table de partitionnement} est une structure située sur un disque qui décrit comment l'espace de stockage est divisé en \textbf{partitions}.
\item Elle détermine où chaque partition commence et se termine, ainsi que le type de système de fichiers de chaque partition.
\item Elle indique quelles partitions sont amorçables (\textit{«~bootable~»}), guidant ainsi le processus de démarrage.
\end{itemize}
\end{wide}
\end{frame}
\begin{frame} \frametitle{Partitions et systèmes de fichiers}
\begin{wide}
\begin{itemize}[<+->]
\item Un \textbf{système de fichiers} est la méthode utilisée pour organiser et stocker les données sur une partition. Il définit comment les fichiers sont nommés, rangés dans des répertoires et retrouvés sur le support de stockage.
\item Chaque partition est formatée avec un système de fichiers spécifique (ex. FAT32, ext4, F2FS). Différents systèmes de fichiers peuvent coexister sur le même disque.
\item La table de partitionnement permet au système d'exploitation de localiser chaque partition, et le système de fichiers de chaque partition lui permet d'en lire et organiser le contenu.
\end{itemize}
\end{wide}
\end{frame}
@@ -161,19 +201,19 @@ version={4.0},
\frametitle{MBR vs GPT}
\begin{wide}
\begin{itemize}[<+->]
\item Il y a deux formats de table de partitionnement possible.
\item Il y a deux formats de table de partitionnement possibles.
\item \textbf{MBR (Master Boot Record)}
\begin{itemize}
\item Taille maximale de disque : 2 TiB.
\item Taille maximale de disque~: 2 TiB.
\item Limité à 4 partitions primaires.
\item Plus ancien, compatible avec BIOS uniquement.
\item Plus ancien, conçu pour le BIOS.
\item Pas de redondance, si le MBR est corrompu, les données peuvent être inaccessibles.
\end{itemize}
\item \textbf{GPT (GUID Partition Table)}
\begin{itemize}
\item Taille maximale de disque : 9.4 ZiB.
\item Taille maximale de disque~: 9.4 ZiB.
\item Supporte jusqu'à 128 partitions primaires.
\item Utilise des identifiants globaux uniques (GUID) qui permettent l'identification précisent des partitions avec un identifiant \texttt{PARTUUID}.
\item Utilise des identifiants globaux uniques (GUID) qui permettent l'identification précise des partitions avec un identifiant \texttt{PARTUUID}.
\item Plus moderne, conçu pour UEFI.
\item Redondance avec deux copies de la table, une au début et une à la fin du disque.
\begin{itemize}
@@ -197,8 +237,8 @@ version={4.0},
\end{center}
\begin{itemize}[<+->]
\item Les mountpoints entre parenthèses seront les mountpoints temporaires des partitions pendant l'installation. Ils se trouveront sur le système de fichier existant du support d'installation.
\item Le type de partition \texttt{ef00} indique qu'il s'agit d'une partition EFI. Cela signifie que le système à un firmware UEFI pour le démarrage.
\item Les mountpoints entre parenthèses seront les mountpoints temporaires des partitions pendant l'installation. Ils se trouveront sur le système de fichiers existant du support d'installation.
\item Le type de partition \texttt{ef00} indique qu'il s'agit d'une partition EFI. Cela signifie que le système a un firmware UEFI pour le démarrage.
\item La taille de 1 GiB est généralement suffisante pour stocker le noyau Linux et les fichiers de démarrage nécessaires.
\item Le type de partition \texttt{8300} est l'identifiant pour une partition Linux standard sous le schéma de partitionnement GPT.
\item La partition racine utilisera le reste de l'espace libre du disque.
@@ -223,7 +263,7 @@ version={4.0},
\item \keystroke{Enter} pour choisir la partition par défaut (2).
\item \keystroke{Enter} pour choisir le secteur de départ par défaut.
\item \keystroke{Enter} pour choisir le secteur de fin par défaut (fin du disque).
\item \keystroke{Enter} pour choisir type de partition par défaut (\texttt{8300}).
\item \keystroke{Enter} pour choisir le type de partition par défaut (\texttt{8300}).
\item \keystroke{p} pour vérifier le partitionnement.
\item \keystroke{w} puis \keystroke{y} pour écrire la table de partitions au disque.
\end{itemize}
@@ -236,35 +276,94 @@ version={4.0},
\begin{wide}
\begin{itemize}[<+->]
\item \command{mkfs.fat -F32 /dev/sdX1}
\item \textbf{Conformité UEFI (Unified Extensible Firmware Interface)} : Le standard UEFI requiert une partition système EFI (ESP) au format FAT32.
\item \textbf{Pilotes UEFI intégrés} : Les firmwares UEFI incluent des pilotes FAT. Sans ce format, lUEFI ne peut ni localiser ni charger le bootloader, rendant le démarrage impossible.
\item \textbf{Compatibilité universelle} : FAT32 est pris en charge nativement par la plupart des systèmes dexploitation, simplifiant la mise à jour de la partition (fichiers EFI, bootloaders, etc.) depuis nimporte quelle plateforme.
\item \textbf{Conformité UEFI (Unified Extensible Firmware Interface)}~: Le standard UEFI requiert une partition système EFI (ESP) au format FAT32.
\item \textbf{Pilotes UEFI intégrés}~: Les firmwares UEFI incluent des pilotes FAT. Sans ce format, l'UEFI ne peut ni localiser ni charger le bootloader, rendant le démarrage impossible.
\item \textbf{Compatibilité universelle}~: FAT32 est pris en charge nativement par la plupart des systèmes d'exploitation, simplifiant la mise à jour de la partition (fichiers EFI, bootloaders, etc.) depuis n'importe quelle plateforme.
\end{itemize}
\end{wide}
\end{frame}
\begin{frame}
\frametitle{Formatage de la partition racine}
\small
\begin{wide}
\begin{itemize}[<+->]
\item \command{mkfs.f2fs /dev/sdX2}
\item \textbf{F2FS (Flash-Friendly File System)} a été conçu spécifiquement pour les supports de stockage à base de mémoire flash (SSD, eMMC, clés USB, cartes SD).
\item \textbf{Log-structured file system} : Les données modifiées sont toujours inscrites dans de nouveaux blocs, au lieu de les réécrire directement au même endroit. Cela permet au système de grouper plusieurs écritures aléatoires en flux décritures séquentielles. Cela réduit la fragmentation, améliore considérablement les performances d'écriture et permet une répartition plus uniforme des écritures ce qui prolonge la durée de vie du support (wear-leveling).
\item \textbf{Garbage collection} : Lespace est divisé en segments, et ceux contenant des données obsolètes sont régulièrement regroupés en blocs contigus. Ce processus limite lamplification décriture, maintient un stockage homogène et préserve durablement les performances.
\item \textbf{TRIM} : Le TRIM indique au contrôleur flash quels blocs sont libres (fichiers supprimés), lui permettant de les utiliser pour répartir uniformément les écritures, ce qui prolonge la durée de vie du support (wear-leveling).
\item \textbf{F2FS (Flash-Friendly File System)} est un système de fichiers conçu spécifiquement pour les supports à base de mémoire flash~: SSD, eMMC, clés USB, cartes SD.
\item Contrairement aux systèmes de fichiers traditionnels (ex. ext4), F2FS tient compte des particularités de la mémoire flash pour offrir de meilleures performances et prolonger la durée de vie du support.
\end{itemize}
\end{wide}
\end{frame}
\begin{frame}
\frametitle{Pourquoi la mémoire flash est différente}
\begin{wide}
\begin{itemize}[<+->]
\item La mémoire flash ne peut pas \textbf{réécrire} directement une cellule~: elle doit d'abord l'\textbf{effacer}, puis écrire les nouvelles données.
\item Chaque cellule a un nombre limité de cycles d'effacement avant de s'user.
\item Un système de fichiers classique, qui réécrit souvent au même endroit, accélère cette usure.
\item F2FS résout ces problèmes grâce à une conception \textbf{log-structured} et des mécanismes comme le \textbf{garbage collection} et le \textbf{TRIM}.
\end{itemize}
\end{wide}
\end{frame}
\begin{frame}
\frametitle{F2FS~: fonctionnement}
\begin{wide}
\begin{itemize}[<+->]
\item \textbf{Log-structured}~: F2FS écrit les données modifiées dans de nouveaux blocs au lieu de réécrire au même endroit. Cela évite les cycles d'effacement inutiles et réduit l'usure.
\item \textbf{Écriture séquentielle}~: Les écritures dans de nouveaux blocs sont organisées en flux séquentiels plutôt qu'aléatoires, ce qui correspond mieux au fonctionnement interne de la mémoire flash et améliore les performances.
\item \textbf{Garbage collection}~: F2FS récupère l'espace occupé par les anciennes données devenues obsolètes en regroupant les données valides et en libérant les segments inutilisés.
\item \textbf{TRIM}~: F2FS informe le contrôleur flash des blocs qui ne sont plus utilisés, lui permettant d'optimiser ses opérations internes d'effacement.
\end{itemize}
\end{wide}
\end{frame}
\begin{frame} \frametitle{Montage des partitions}
\begin{wide}
\centering
\begin{tikzpicture}[
nd/.style={draw, rounded corners=3pt, minimum height=0.65cm, align=center, font=\small\ttfamily},
prt/.style={nd, fill=base-color!15},
title/.style={font=\normalsize\bfseries},
lbl/.style={font=\scriptsize\itshape, text=darkgray},
arr/.style={-{Stealth[length=3mm]}, thick, base-color!70!black},
]
% Avant
\node<1->[title] at (-4.5, 2.2) {Avant};
\node<1->[nd, dashed, minimum width=2cm] (mnt-before) at (-4.5, 1) {/mnt};
\node<1->[lbl] at (-4.5, 0.2) {(vide)};
% Flèche
\draw<2->[arr] (-2.5, 1) -- (-1, 1) node[midway, above, font=\footnotesize] {mount};
% Après
\node<2->[title] at (2.5, 2.2) {Après};
\node<2->[prt] (mnt) at (2.5, 1) {/mnt};
\node<2->[prt] (boot) at (0.5, -0.3) {boot};
\node<2->[nd] (etc) at (2.5, -0.3) {etc};
\node<2->[nd] (home) at (4.5, -0.3) {home};
\node<2->[nd] (dots) at (6, -0.3) {\ldots};
\draw<2->[thick] (mnt) -- (boot);
\draw<2->[thick] (mnt) -- (etc);
\draw<2->[thick] (mnt) -- (home);
\draw<2->[thick] (mnt) -- (dots.north west);
% Labels partitions
\node<2->[lbl, right=0.15cm of mnt, font=\scriptsize] {$\leftarrow$ \texttt{/dev/sdX2}};
\node<2->[lbl, below=0.1cm of boot, font=\scriptsize, xshift=0.5cm] {$\uparrow$ \texttt{/dev/sdX1}};
\end{tikzpicture}
\end{wide}
\end{frame}
\begin{frame} \frametitle{Montage des partitions}
\begin{wide}
\begin{itemize}[<+->]
\item Le montage des partitions sous Linux est le processus qui rend un système de fichiers prêt à être utilisé par le système d'exploitation. Cela implique d'associer un système de fichiers situé sur une partition à un répertoire spécifique du système de fichiers global appelé point de montage (mountpoint).
\item \command{mount /dev/sdX2 /mnt} : On monte la partition racine dans le système de fichiers temporaire fourni par lenvironnement dinstallation.
\item \command{mkdir /mnt/boot} : Création du répertoire \texttt{/mnt/boot} pour accueillir la partition de démarrage.
\item \command{mount /dev/sdX1 /mnt/boot} : On monte la partition de démarrage dans le répertoire \texttt{boot} du système de fichiers racine.
\item Ces opérations intègrent ainsi larborescence de fichier de \texttt{/dev/sdX1} et de \texttt{/dev/sdX2} dans celle du support dinstallation, ce qui permet daccéder à la structure complète du futur système.
\item \command{mount /dev/sdX2 /mnt}~: On monte la partition racine dans le système de fichiers temporaire fourni par l'environnement d'installation.
\item \command{mkdir /mnt/boot}~: Création du répertoire \texttt{/mnt/boot} pour accueillir la partition de démarrage.
\item \command{mount /dev/sdX1 /mnt/boot}~: On monte la partition de démarrage dans le répertoire \texttt{boot} du système de fichiers racine.
\item Ces opérations intègrent ainsi l'arborescence de fichiers de \texttt{/dev/sdX1} et de \texttt{/dev/sdX2} dans celle du support d'installation, ce qui permet d'accéder à la structure complète du futur système.
\end{itemize}
\end{wide}
\end{frame}
@@ -272,10 +371,9 @@ version={4.0},
\begin{frame} \frametitle{Fichier fstab}
\begin{wide}
\begin{itemize}[<+->]
\item \command{mkdir /mnt/etc} : Création du répertoire des configurations du système.
\item \command{genfstab -t PARTUUID /mnt > /mnt/etc/fstab} : Scanne les partitions montées et crée un fichier \texttt{/mnt/etc/fstab} en utilisant les \textbf{PARTUUID} pour identifier de manière unique chaque partition.
\item Le fichier \texttt{/mnt/etc/fstab} spécifie les partitions à monter, leurs points de montage, les types de systèmes de fichiers, les options de montage, et les paramètres de dump et de vérification.
\item Le fichier \texttt{/mnt/etc/fstab} est utilisé pour indiquer au système quelles partitions monter et comment procéder.
\item \command{mkdir /mnt/etc}~: Création du répertoire des configurations du système.
\item \command{genfstab -t PARTUUID /mnt > /mnt/etc/fstab}~: Scanne les partitions montées et crée un fichier \texttt{/mnt/etc/fstab} en utilisant les \textbf{PARTUUID} pour identifier de manière unique chaque partition.
\item Le fichier \texttt{/mnt/etc/fstab} indique au système quelles partitions monter, leurs points de montage, les types de systèmes de fichiers et les options de montage.
\item \textbf{Pourquoi \texttt{PARTUUID} ?}
\begin{itemize}
\item Les noms de périphériques comme \texttt{/dev/sda}, \texttt{/dev/sdb} peuvent changer d'un démarrage à l'autre, surtout si des supports amovibles sont connectés.
@@ -290,9 +388,9 @@ version={4.0},
\begin{frame} \frametitle{Paquets}
\begin{wide}
\begin{itemize}[<+->]
\item Lune des plus grandes forces de Linux réside dans son système de paquets. Chaque logiciel est distribué sous forme de paquet avec une signature cryptographique qui garantie son authenticité et son intégrité.
\item Grâce à la vérification cryptographique des paquets, il nest pas nécessaire de faire confiance au serveur qui distribue les logiciels (miroir) lui-même, puisquun paquet non-signé ou altéré sera rejeté automatiquement par le gestionnaire de paquets du système (pacman).
\item Nimporte qui peut héberger un miroir des dépôts Arch Linux, c'est-à-dire un serveur qui contient une copie de tous les paquets officiels crées par les développeurs dArch Linux.
\item L'une des plus grandes forces de Linux réside dans son système de paquets. Chaque logiciel est distribué sous forme de paquet avec une signature cryptographique qui garantit son authenticité et son intégrité.
\item Grâce à la vérification cryptographique des paquets, il n'est pas nécessaire de faire confiance au serveur qui distribue les logiciels (miroir) lui-même, puisqu'un paquet non-signé ou altéré sera rejeté automatiquement par le gestionnaire de paquets du système (pacman).
\item N'importe qui peut héberger un miroir des dépôts Arch Linux, c'est-à-dire un serveur qui contient une copie de tous les paquets officiels créés par les développeurs d'Arch Linux.
\end{itemize}
\end{wide}
\end{frame}
@@ -301,9 +399,9 @@ version={4.0},
\begin{wide}
\begin{itemize}[<+->]
\item L'écosystème des miroirs d'Arch Linux comprend plus de 800 serveurs répartis à travers le monde. Parmi ceux-ci, certains serveurs sont géographiquement plus proches, offrant ainsi une latence réduite ainsi qu'une bande passante souvent supérieure.
\item Avant dinstaller le système, il est donc préférable doptimiser la liste des miroirs pour télécharger les paquets plus rapidement.
\item \command{pacman --noconfirm -Syy reflector} : Installe et met à jour la base de données des paquets, puis installe \texttt{reflector} un outil d'optimisation des miroirs.
\item \command{reflector --verbose --sort rate --country Canada --protocol http,https --save /etc/pacman.d/mirrorlist} : Met à jour la liste des miroirs en utilisant ceux au Canada et trié du plus rapide au plus lent.
\item Avant d'installer le système, il est donc préférable d'optimiser la liste des miroirs pour télécharger les paquets plus rapidement.
\item \command{pacman --noconfirm -Syy reflector}~: Installe et met à jour la base de données des paquets, puis installe \texttt{reflector}, un outil d'optimisation des miroirs.
\item \command{reflector --verbose --sort rate --country Canada --protocol http,https --save /etc/pacman.d/mirrorlist}~: Met à jour la liste des miroirs en utilisant ceux au Canada et triée du plus rapide au plus lent.
\end{itemize}
\end{wide}
\end{frame}
@@ -316,12 +414,12 @@ version={4.0},
Décommentez la ligne \texttt{ParallelDownloads} puis définissez sa valeur à \textbf{32} (ou un autre nombre selon vos préférences).
\begin{block}{}
\texttt{\#ParallelDownloads = 5}
\texttt{\#ParallelDownloads = 5} \quad \textcolor{ForestGreen}{\textit{(Décommentez et modifiez)}}
\texttt{ParallelDownloads = 32}
\end{block}
\item Cette modification permet deffectuer plusieurs téléchargements en parallèle, réduisant significativement le temps total de mise à jour ou dinstallation des paquets.
\item Cette modification permet d'effectuer plusieurs téléchargements en parallèle, réduisant significativement le temps total de mise à jour ou d'installation des paquets.
\end{itemize}
\end{wide}
\end{frame}
@@ -329,26 +427,26 @@ version={4.0},
\begin{frame} \frametitle{Installation du système}
\begin{wide}
\begin{itemize}[<+->]
\item \command{pacstrap /mnt base base-devel linux linux-headers linux-firmware xorg-drivers nvidia-open intel-ucode amd-ucode zram-generator git} \Leftarrow\: Ajouter un éditeur de texte (ex. nano, vim).
\item \command{pacstrap /mnt base base-devel linux linux-headers linux-firmware xorg-drivers nvidia-open intel-ucode amd-ucode zram-generator git} \textcolor{red}{\Leftarrow\: Ajouter un éditeur de texte (ex. nano, vim).}
\begin{itemize}
\item \textbf{\texttt{base}} : Paquets essentiels pour un système Arch minimal.
\item \textbf{\texttt{base-devel}} : Ensemble d'outils de développement pour la compilation de logiciels.
\item \textbf{\texttt{linux} et \texttt{linux-headers}} : Noyau Linux et ses en-têtes nécessaires pour le développement de modules.
\item \textbf{\texttt{linux-firmware}} : Collection de firmwares pour divers matériels pour assurer un bon support matériel.
\item \textbf{\texttt{xorg-drivers} et \texttt{nvidia-open}} : Pilotes graphiques (Intel, AMD, Nvidia) pour assurer un bon support matériel.
\item \textbf{\texttt{intel-ucode} et \texttt{amd-ucode}} : Microcodes pour les processeurs Intel et AMD, permettant l'installation des mises à jour critiques du microprogramme.
\item \textbf{\texttt{zram-generator}} : Utilitaire permettant de configurer zram pour la compression de la mémoire vive.
\item \textbf{\texttt{git}} : Système de gestion de versions distribué qui sera utile pour installer des paquets plus tard.
\item \textbf{\texttt{base}}~: Paquets essentiels pour un système Arch minimal.
\item \textbf{\texttt{base-devel}}~: Ensemble d'outils de développement pour la compilation de logiciels.
\item \textbf{\texttt{linux} et \texttt{linux-headers}}~: Noyau Linux et ses en-têtes nécessaires pour le développement de modules.
\item \textbf{\texttt{linux-firmware}}~: Collection de firmwares pour divers matériels pour assurer un bon support matériel.
\item \textbf{\texttt{xorg-drivers} et \texttt{nvidia-open}}~: Pilotes graphiques (Intel, AMD, Nvidia) pour assurer un bon support matériel.
\item \textbf{\texttt{intel-ucode} et \texttt{amd-ucode}}~: Microcodes pour les processeurs Intel et AMD, permettant l'installation des mises à jour critiques du microprogramme.
\item \textbf{\texttt{zram-generator}}~: Utilitaire permettant de configurer zram pour la compression de la mémoire vive.
\item \textbf{\texttt{git}}~: Système de gestion de versions distribué qui sera utile pour installer des paquets plus tard.
\end{itemize}
\end{itemize}
\end{wide}
\end{frame}
\begin{frame} \frametitle{Transfère des optimisations}
\begin{frame} \frametitle{Transfert des optimisations}
\begin{wide}
\begin{itemize}[<+->]
\item \command{cp /etc/pacman.conf /mnt/etc/pacman.conf} : Copie la configuration de \texttt{pacman} dans le nouveau système, préservant les optimisations précédemment définies.
\item \command{cp /etc/pacman.d/mirrorlist /mnt/etc/pacman.d/mirrorlist} : Transfère la liste des miroirs optimisée dans le nouveau système, afin de conserver la liste de miroirs optimisés.
\item \command{cp /etc/pacman.conf /mnt/etc/pacman.conf}~: Copie la configuration de \texttt{pacman} dans le nouveau système, préservant les optimisations précédemment définies.
\item \command{cp /etc/pacman.d/mirrorlist /mnt/etc/pacman.d/mirrorlist}~: Transfère la liste des miroirs optimisée dans le nouveau système, afin de conserver la liste de miroirs optimisés.
\end{itemize}
\end{wide}
\end{frame}
@@ -358,11 +456,47 @@ version={4.0},
\begin{frame}
\frametitle{Chroot}
\begin{wide}
\begin{itemize}[<+->]
\item \command{arch-chroot /mnt}
\item La commande \texttt{arch-chroot} permet de « rentrer » dans lenvironnement du nouveau système installé sur le point de montage \texttt{/mnt}.
\item Elle modifie la racine du système de fichiers, faisant de \texttt{/mnt} le nouveau \texttt{/}.
\item Une fois à lintérieur, vous pouvez gérer votre système comme sil était démarré, par exemple installer des paquets, configurer des services ou éditer des fichiers de configuration, sans avoir à démarrer immédiatement le nouveau système.
\centering
\begin{tikzpicture}[
nd/.style={draw, rounded corners=3pt, minimum height=0.55cm, align=center, font=\small\ttfamily},
root/.style={nd, fill=base-color!15},
title/.style={font=\small\bfseries},
arr/.style={-{Stealth[length=2.5mm]}, thick, base-color!70!black},
]
% Avant
\node<1->[title] at (-4, 1.6) {Avant chroot};
\node<1->[root] (r1) at (-4, 0.8) {/};
\node<1->[nd] (mnt1) at (-4, -0.15) {mnt};
\node<1->[nd] (boot1) at (-6, -1.1) {boot};
\node<1->[nd] (etc1) at (-4, -1.1) {etc};
\node<1->[nd] (home1) at (-2, -1.1) {home};
\node<1->[nd] (dots1) at (-0.5, -1.1) {\ldots};
\draw<1->[thick] (r1) -- (mnt1);
\draw<1->[thick] (mnt1) -- (boot1);
\draw<1->[thick] (mnt1) -- (etc1);
\draw<1->[thick] (mnt1) -- (home1);
\draw<1->[thick] (mnt1) -- (dots1.north west);
% Flèche
\draw<2->[arr] (-0.2, 0.3) -- (1.3, 0.3) node[midway, above, font=\footnotesize] {chroot /mnt};
% Après
\node<2->[title] at (4, 1.6) {Après chroot};
\node<2->[root] (r2) at (4, 0.8) {/};
\node<2->[nd] (boot2) at (2, -0.15) {boot};
\node<2->[nd] (etc2) at (4, -0.15) {etc};
\node<2->[nd] (home2) at (6, -0.15) {home};
\node<2->[nd] (dots2) at (7.5, -0.15) {\ldots};
\draw<2->[thick] (r2) -- (boot2);
\draw<2->[thick] (r2) -- (etc2);
\draw<2->[thick] (r2) -- (home2);
\draw<2->[thick] (r2) -- (dots2.north west);
\end{tikzpicture}
\vspace{0.3cm}
\begin{itemize}
\item<3-> \command{arch-chroot /mnt}
\item<3-> La commande \texttt{arch-chroot} change la racine du système de fichiers~: \texttt{/mnt} devient \texttt{/}. Vous pouvez alors gérer le nouveau système comme s'il était démarré (installer des paquets, configurer des services, etc.).
\end{itemize}
\end{wide}
\end{frame}
@@ -371,22 +505,55 @@ version={4.0},
\frametitle{Étapes du processus de démarrage}
\begin{wide}
\begin{enumerate}[<+->]
\item \textbf{Firmware} : Le firmware (UEFI) initialise le matériel minimal, localise la partition système EFI (ESP) et charge le bootloader se trouvant dessus.
\item \textbf{Bootloader} : Le bootloader (systemd-boot) sélectionne le noyau et charge également linitramfs en mémoire, puis passe la main au noyau en lui fournissant les paramètres nécessaires.
\item \textbf{Initramfs} : Chargé avant lexécution complète du noyau, linitramfs sert de système de fichiers temporaire. Il contient les pilotes et outils indispensables pour trouver et monter la véritable racine du système.
\item \textbf{Noyau Linux} : Utilisant l'initramfs, le noyau s'initialise, configure les périphériques, monte le système de fichiers racine, et lance le processus init.
\item \textbf{Processus init} : Le premier processus est \texttt{systemd} (PID 1). Il lance les services, monte les partitions complémentaires, configure le réseau, met en place et lance lenvironnement utilisateur final.
\item \textbf{Firmware}~: Le firmware (UEFI) initialise le matériel minimal, localise la partition système EFI (ESP) et charge le bootloader se trouvant dessus.
\item \textbf{Bootloader}~: Le bootloader (systemd-boot) charge le noyau et l'initramfs en mémoire, puis passe la main au noyau en lui fournissant les paramètres nécessaires.
\item \textbf{Noyau Linux}~: Le noyau commence à s'exécuter, décompresse l'initramfs et le monte comme système de fichiers racine temporaire.
\item \textbf{Initramfs}~: L'initramfs fournit les pilotes et outils indispensables pour trouver et monter la véritable racine du système. Une fois la racine montée, le noyau lance le processus init.
\item \textbf{Processus init}~: Le premier processus est \texttt{systemd} (PID 1). Il lance les services, monte les partitions complémentaires, configure le réseau, met en place et lance l'environnement utilisateur final.
\end{enumerate}
\end{wide}
\end{frame}
\begin{frame}
\frametitle{Processus de démarrage}
\begin{wide}
\centering
\vspace{0.5cm}
\begin{tikzpicture}[
box/.style={draw, rounded corners=4pt, fill=base-color!15, minimum width=2cm, minimum height=1.1cm, align=center, font=\small\bfseries},
arr/.style={-{Stealth[length=3mm]}, thick, base-color!70!black},
desc/.style={font=\scriptsize, align=center, text width=2.5cm},
]
% Tous les nœuds (visibles quand leur slide arrive)
\node<1->[box] (fw) at (0,0) {Firmware\\[-2pt]{\footnotesize(UEFI)}};
\node<2->[box] (bl) at (2.8,0) {Bootloader\\[-2pt]{\footnotesize(systemd-boot)}};
\node<3->[box] (kern) at (5.6,0) {Noyau\\[-2pt]{\footnotesize Linux}};
\node<4->[box] (initr) at (8.4,0) {Initramfs};
\node<5->[box] (sysd) at (11.2,0) {systemd\\[-2pt]{\footnotesize(PID 1)}};
% Descriptions
\node<1->[desc, below=0.4cm of fw] {Initialise le matériel,\\trouve l'ESP};
\node<2->[desc, below=0.4cm of bl] {Charge le noyau\\et l'initramfs};
\node<3->[desc, below=0.4cm of kern] {Décompresse et\\monte l'initramfs};
\node<4->[desc, below=0.4cm of initr] {Monte la vraie\\racine du système};
\node<5->[desc, below=0.4cm of sysd] {Lance les services\\et le bureau};
% Flèches
\draw<2->[arr] (fw) -- (bl);
\draw<3->[arr] (bl) -- (kern);
\draw<4->[arr] (kern) -- (initr);
\draw<5->[arr] (initr) -- (sysd);
\end{tikzpicture}
\end{wide}
\end{frame}
\section{Bootloader}
\begin{frame} \frametitle{Bootloader}
\begin{wide}
\begin{itemize}[<+->]
\item \command{bootctl install} : Installe le chargeur de démarrage (\textit{bootloader}) systemd-boot sur la partition EFI.
\item Créer le fichier \texttt{/boot/loader/loader.conf} avec le contenu suivant~:\\
\item \command{bootctl install}~: Installe le chargeur de démarrage (\textit{bootloader}) systemd-boot sur la partition EFI.
\item Créez le fichier \texttt{/boot/loader/loader.conf} avec le contenu suivant~:\\
\begin{block}{}
\texttt{default arch.conf} \\
\texttt{timeout 0}
@@ -399,15 +566,15 @@ version={4.0},
\begin{frame} \frametitle{Bootloader}
\begin{wide}
\begin{itemize}[<+->]
\item \command{blkid -s PARTUUID -o value /dev/sdX2 > /boot/loader/entries/arch.conf} : Insère la PARTUUID de la partition racine dans \texttt{arch.conf} pour éviter de devoir la retaper manuellement.
\item Éditer le fichier \texttt{/boot/loader/entries/arch.conf} avec le contenu suivant~:\\
\item \command{blkid -s PARTUUID -o value /dev/sdX2 > /boot/loader/entries/arch.conf}~: Insère la PARTUUID de la partition racine dans \texttt{arch.conf} pour éviter de devoir la retaper manuellement.
\item Éditez le fichier \texttt{/boot/loader/entries/arch.conf} avec le contenu suivant~:\\
\begin{block}{}
\texttt{title Arch Linux} \\
\texttt{linux /vmlinuz-linux} \\
\texttt{initrd /intel-ucode.img} \\
\texttt{initrd /amd-ucode.img} \\
\texttt{initrd /initramfs-linux-fallback.img} \\
\texttt{options root=PARTUUID=<PARTUUID> rw}
\texttt{options root=PARTUUID=}\placeholder{PARTUUID}\texttt{ rw}
\end{block}
\end{itemize}
\end{wide}
@@ -416,12 +583,12 @@ version={4.0},
\begin{frame} \frametitle{Bootloader}
\begin{wide}
\begin{itemize}[<+->]
\item \textbf{\texttt{title Arch Linux}} : Définit le nom qui apparaîtra dans le menu de démarrage.
\item \textbf{\texttt{linux /vmlinuz-linux}} : Indique le chemin vers le noyau Linux.
\item \textbf{\texttt{initrd /intel-ucode.img}} : Charge le microcode des processeurs Intel.
\item \textbf{\texttt{initrd /amd-ucode.img}} : Charge le microcode des processeurs AMD. Ces fichiers ne sont appliqués que si le matériel correspondant est utilisé.
\item \textbf{\texttt{initrd /initramfs-linux-fallback.img}} : Charge une image de système de fichier minimal en mémoire (initramfs) qui fournit les pilotes essentiels au noyau. La version \texttt{fallback} contient tous les pilotes disponibles, contrairement à la version standard qui est générée selon la configuration matérielle de l'ordinateur où a été réalisée l'installation.
\item \textbf{\texttt{options root=PARTUUID=<PARTUUID> rw}} : Spécifie les options de démarrage du noyau, en particulier la partition racine (root) et l'option \texttt{rw} pour un accès en lecture-écriture.
\item \textbf{\texttt{title Arch Linux}}~: Définit le nom qui apparaîtra dans le menu de démarrage.
\item \textbf{\texttt{linux /vmlinuz-linux}}~: Indique le chemin vers le noyau Linux.
\item \textbf{\texttt{initrd /intel-ucode.img}}~: Charge le microcode des processeurs Intel.
\item \textbf{\texttt{initrd /amd-ucode.img}}~: Charge le microcode des processeurs AMD. Ces fichiers ne sont appliqués que si le matériel correspondant est utilisé.
\item \textbf{\texttt{initrd /initramfs-linux-fallback.img}}~: Charge une image de système de fichiers minimal en mémoire (initramfs) qui fournit les pilotes essentiels au noyau. La version \texttt{fallback} contient tous les pilotes disponibles, contrairement à la version standard qui est générée selon la configuration matérielle de l'ordinateur où a été réalisée l'installation.
\item \textbf{\texttt{options root=PARTUUID=}\placeholder{PARTUUID}\texttt{ rw}}~: Spécifie les options de démarrage du noyau, en particulier la partition racine (root) et l'option \texttt{rw} pour un accès en lecture-écriture.
\end{itemize}
\end{wide}
\end{frame}
@@ -429,7 +596,7 @@ version={4.0},
\section{Initramfs}
\begin{frame}
\frametitle{Initramfs}
\frametitle{Initramfs -- Modules USB}
\begin{wide}
\begin{itemize}[<+->]
\item Pour permettre à l'initramfs de monter une partition racine se trouvant sur une clé USB, éditez le fichier de configuration \texttt{/etc/mkinitcpio.conf} comme suit~:
@@ -437,7 +604,23 @@ version={4.0},
\texttt{MODULES=(usbhid xhci\_hcd)}
\end{block}
\item Ce sont les modules nécessaires pour s'assurer que les pilotes USB requis sont chargés pendant le processus d'initialisation.
\item \command{mkinitcpio -P} : Reconstruit les images initramfs en applicant les modifications.
\end{itemize}
\end{wide}
\end{frame}
\begin{frame}
\frametitle{Initramfs -- Image fallback}
\begin{wide}
\begin{itemize}[<+->]
\item L'image initramfs \texttt{default} est générée uniquement avec les pilotes détectés sur la machine où elle a été créée. L'image \texttt{fallback} inclut \textbf{tous} les pilotes disponibles, ce qui permet de démarrer sur n'importe quel ordinateur. Arch Linux a désactivé la génération de l'image \texttt{fallback} par défaut~: il faut la réactiver manuellement.
\item Éditez le fichier \texttt{/etc/mkinitcpio.d/linux.preset} comme suit~:
\begin{block}{}
\small
\texttt{\#PRESETS=('default')} \quad \textcolor{red}{\textit{(Commentez cette ligne)}} \\
\texttt{PRESETS=('default' 'fallback')} \quad \textcolor{ForestGreen}{\textit{(Décommentez)}} \\
\mbox{\texttt{fallback\_image="/boot/initramfs-linux-fallback.img"} \quad \textcolor{ForestGreen}{\textit{(Décommentez)}}}
\end{block}
\item \command{mkinitcpio -P}~: Reconstruit les images initramfs en appliquant les modifications.
\end{itemize}
\end{wide}
\end{frame}
@@ -448,13 +631,13 @@ version={4.0},
\frametitle{Compression de la mémoire}
\begin{wide}
\begin{itemize}[<+->]
\item Pour activer la compression de la mémoire avec Zram, éditez le fichier de configuration \texttt{/etc/systemd/zram-generator.conf} comme suit :
\item Pour activer la compression de la mémoire avec Zram, éditez le fichier de configuration \texttt{/etc/systemd/zram-generator.conf} comme suit~:
\begin{block}{}
\texttt{[zram0]} \\
\texttt{zram-size = ram / 2} \\
\texttt{compression-algorithm = zstd}
\end{block}
\item Ces paramètres réservent la moitié de la RAM physique pour les pages compressées en mémoire, augmentant la capacité de mémoire disponible sans recourir à la pagination sur le disque (\textit{swap}). L'algorithme \texttt{zstd} offre un bon équilibre entre vitesse et taux de compression.
\item Ces paramètres configurent un périphérique zram dont la capacité décompressée correspond à la moitié de la RAM physique. Grâce à la compression, la mémoire réellement consommée est bien moindre, augmentant ainsi la capacité de mémoire disponible sans recourir à la pagination sur le disque (\textit{swap}). L'algorithme \texttt{zstd} offre un bon équilibre entre vitesse et taux de compression.
\end{itemize}
\end{wide}
\end{frame}
@@ -464,8 +647,8 @@ version={4.0},
\begin{frame} \frametitle{Horloge et fuseau horaire}
\begin{wide}
\begin{itemize}[<+->]
\item \command{ln -sf /usr/share/zoneinfo/Canada/Atlantic /etc/localtime} : Configure le fuseau horaire du Canada atlantique.
\item \command{systemctl enable systemd-timesyncd} : Active le service de synchronisation périodique de l'horloge fourni par systemd pour qu'il démarre automatiquement au démarrage.
\item \command{ln -sf /usr/share/zoneinfo/Canada/Atlantic /etc/localtime}~: Configure le fuseau horaire du Canada atlantique.
\item \command{systemctl enable systemd-timesyncd}~: Active le service de synchronisation périodique de l'horloge fourni par systemd pour qu'il démarre automatiquement au démarrage.
\end{itemize}
\end{wide}
\end{frame}
@@ -474,11 +657,11 @@ version={4.0},
\frametitle{Langue du système}
\begin{wide}
\begin{itemize}[<+->]
\item Pour configurer la langue du système à l'anglais canadien, modifiez le fichier de configuration \texttt{/etc/locale.gen} comme suit :
\item Pour configurer la langue du système à l'anglais canadien, modifiez le fichier de configuration \texttt{/etc/locale.gen} comme suit~:
\begin{block}{}
\texttt{\#en\_CA.UTF-8 UTF-8} \quad \text{(Décommentez cette ligne)}
\texttt{\#en\_CA.UTF-8 UTF-8} \quad \textcolor{ForestGreen}{\textit{(Décommentez cette ligne)}}
\end{block}
\item \command{locale-gen} : Génère les locales sélectionnées pour le système.
\item \command{locale-gen}~: Génère les locales sélectionnées pour le système.
\item Ensuite, configurez la locale système par défaut dans le fichier \texttt{/etc/locale.conf} :
\begin{block}{}
\texttt{LANG=en\_CA.UTF-8}
@@ -488,20 +671,30 @@ version={4.0},
\end{wide}
\end{frame}
\begin{frame} \frametitle{Fichier hosts et hostname}
\begin{frame} \frametitle{Hostname}
\begin{wide}
\begin{itemize}[<+->]
\item Pour configurer le nom d'hôte (nom de la machine), éditez le fichier \texttt{/etc/hostname} et insérez le nom d'hôte de votre choix :
\item Le \textbf{hostname} est le nom de votre machine sur le réseau.
\item Caractères permis~: lettres minuscules, chiffres et tirets (\texttt{-}). Pas d'accents, pas d'espaces. Le nom ne peut pas commencer ni finir par un tiret.
\item Éditez le fichier \texttt{/etc/hostname}. Remplacez \placeholder{nom\_hote\_choisi} par le nom d'hôte de votre choix~:
\begin{block}{}
\texttt{<nom\_hote\_choisi>}
\placeholder{nom\_hote\_choisi}
\end{block}
\item Ensuite, mettez à jour \texttt{/etc/hosts}. Remplacez \texttt{<nom\_hote\_choisi>} par votre nom d'hôte choisi :
\end{itemize}
\end{wide}
\end{frame}
\begin{frame} \frametitle{Fichier hosts}
\begin{wide}
\begin{itemize}[<+->]
\item Mettez à jour \texttt{/etc/hosts} pour associer le nom d'hôte à l'adresse locale~:
\begin{block}{}
\texttt{127.0.0.1 \quad localhost} \\
\texttt{127.0.1.1 \quad <nom\_hote\_choisi>} \\
\texttt{::1 \quad <nom\_hote\_choisi>.localdomain <nom\_hote\_choisi>}
\small
\mbox{\texttt{127.0.0.1 \quad localhost}} \\
\mbox{\texttt{127.0.1.1 \quad }\placeholder{nom\_hote\_choisi}} \\
\mbox{\texttt{::1 \quad localhost }\placeholder{nom\_hote\_choisi}\texttt{.localdomain }\placeholder{nom\_hote\_choisi}}
\end{block}
\item Ces entrées permettent de mapper le nom d'hôte à l'adresse locale, facilitant ainsi la résolution locale des noms de domaines.
\item Ces entrées permettent au système de résoudre le nom d'hôte localement, sans avoir besoin d'un serveur DNS.
\end{itemize}
\end{wide}
\end{frame}
@@ -512,14 +705,14 @@ version={4.0},
\frametitle{Comptes utilisateurs}
\begin{wide}
\begin{itemize}[<+->]
\item \command{useradd -m -g users <nom\_utilisateur>} : Crée un nouveau compte utilisateur. Remplacez \texttt{<nom\_utilisateur>} par le nom d'utilisateur de votre choix.
\item \command{usermod -G wheel <nom\_utilisateur>} : Ajoute le nouveau compte utilisateur au group \texttt{wheel} qui permettera à l'utilisateur d'utiliser la commande \texttt{sudo}.
\item Pour permettre aux membres du groupe \texttt{wheel} d'utiliser \texttt{sudo}, éditez \texttt{/etc/sudoers} comme suit :
\item \command{useradd -m -g users }\placeholder{nom\_utilisateur}~: Crée un nouveau compte utilisateur. Remplacez \placeholder{nom\_utilisateur} par le nom d'utilisateur de votre choix.
\item \command{usermod -aG wheel }\placeholder{nom\_utilisateur}~: Ajoute le nouveau compte utilisateur au groupe \texttt{wheel} qui permettra à l'utilisateur d'utiliser la commande \texttt{sudo}.
\item Pour permettre aux membres du groupe \texttt{wheel} d'utiliser \texttt{sudo}, éditez \texttt{/etc/sudoers} comme suit~:
\begin{block}{}
\texttt{\# \%wheel ALL=(ALL) ALL} \quad \text{(Décommentez cette ligne)}
\texttt{\# \%wheel ALL=(ALL) ALL} \quad \textcolor{ForestGreen}{\textit{(Décommentez cette ligne)}}
\end{block}
\item \command{passwd} : Crée le mot de passe du compte \texttt{root}.
\item \command{passwd <nom\_utilisateur>} : Crée le mot de passe de l'utilisateur.
\item \command{passwd}~: Crée le mot de passe du compte \texttt{root}.
\item \command{passwd }\placeholder{nom\_utilisateur}~: Crée le mot de passe de l'utilisateur.
\end{itemize}
\end{wide}
\end{frame}
@@ -531,13 +724,13 @@ version={4.0},
\begin{wide}
\begin{itemize}[<+->]
\item L'Arch User Repository (AUR) est un dépôt communautaire pour Arch Linux qui permet le partage et l'accès à des paquets créés par les utilisateurs, étendant l'offre logicielle au-delà des dépôts officiels.
\item Cela fait d'Arch Linux la distribution en existance avec le plus grand nombre de paquets disponibles, et ce, de manière très accessible par rapport à d'autres distributions (par ex. PPA sur Ubuntu).
\item \command{su <nom\_utilisateur>} : Entrer dans le compte utilisateur non privilégié.
\item \command{cd} : Naviguer vers le répertoire \texttt{home} de l'utilisateur pour avoir l'accès en écriture.
\item \command{git clone https://aur.archlinux.org/yay-bin.git} : Récupérer les fichiers nécessaires pour construire Yay, un gestionnaire de paquets pour l'AUR.
\item \command{cd yay-bin} : Naviguer dans le répertoire contenant les fichiers.
\item \command{makepkg -sri} : Construire et installer le paquet de Yay.
\item \keycombo{Ctrl}{D} ou \command{exit} : Sortir du compte utilisateur non privilégié.
\item Cela fait d'Arch Linux l'une des distributions avec le plus grand nombre de paquets disponibles, et ce, de manière très accessible par rapport à d'autres distributions (par ex. PPA sur Ubuntu).
\item \command{su }\placeholder{nom\_utilisateur}~: Entrer dans le compte utilisateur non privilégié.
\item \command{cd}~: Naviguer vers le répertoire \texttt{home} de l'utilisateur pour avoir l'accès en écriture.
\item \command{git clone https://aur.archlinux.org/yay-bin.git}~: Récupérer les fichiers nécessaires pour construire Yay, un gestionnaire de paquets pour l'AUR.
\item \command{cd yay-bin}~: Naviguer dans le répertoire contenant les fichiers.
\item \command{makepkg -sri}~: Construire et installer le paquet de Yay.
\item \keycombo{Ctrl}{D} ou \command{exit}~: Sortir du compte utilisateur non privilégié.
\end{itemize}
\end{wide}
\end{frame}
@@ -546,10 +739,34 @@ version={4.0},
\begin{frame} \frametitle{Terminologie}
\begin{wide}
\begin{itemize}[<+->]
\item \textbf{Display Manager (Gestionnaire d'affichage)} : C'est le logiciel qui gère l'écran de connexion et l'authentification des utilisateurs, lançant ensuite l'environnement de bureau choisi. Exemples : GDM, LightDM.
\item \textbf{Window Manager (Gestionnaire de fenêtres)} : Il gère le positionnement et l'apparence des fenêtres sur l'écran, permettant des actions comme minimiser ou redimensionner. Exemples : KWin, Mutter.
\item \textbf{Desktop Environment (Environnement de bureau)} : C'est un ensemble intégré d'applications et d'outils qui fournit une interface utilisateur graphique complète, comprenant un gestionnaire de fenêtres et des applications de base. Exemples : KDE Plasma, GNOME.
\centering
\begin{tikzpicture}[
box/.style={draw, rounded corners=4pt, align=center, font=\small},
arr/.style={-{Stealth[length=2.5mm]}, thick},
]
% DE (grande boîte)
\node<1->[box, fill=base-color!10, minimum width=7.5cm, minimum height=2.8cm] (de) at (0,0) {};
\node<1->[font=\small\bfseries, anchor=north] at (de.north) {Desktop Environment};
\node<1->[font=\scriptsize\itshape] at (0, -1.15) {KDE Plasma, GNOME, Xfce, Cinnamon, MATE};
% WM (à l'intérieur)
\node<2->[box, fill=orange!15, minimum width=4cm, minimum height=1.4cm] (wm) at (0, -0.15) {};
\node<2->[font=\small\bfseries] at (0, 0.1) {Window Manager};
\node<2->[font=\scriptsize\itshape] at (0, -0.4) {KWin, Mutter, Xfwm};
% DM (séparé)
\node<3->[box, fill=ForestGreen!15, minimum width=3.5cm, minimum height=1.8cm] (dm) at (6.3, 0) {};
\node<3->[font=\small\bfseries] at (6.3, 0.35) {Display Manager};
\node<3->[font=\scriptsize\itshape] at (6.3, -0.25) {SDDM, GDM, LightDM};
% Flèche DM -> DE
\draw<3->[arr] (dm.west) -- (de.east) node[midway, above, font=\scriptsize] {lance};
\end{tikzpicture}
\vspace{0.4cm}
\begin{itemize}
\item<3-> Le \textbf{Display Manager} gère l'écran de connexion et lance l'environnement de bureau.
\item<1-> Le \textbf{Desktop Environment} fournit l'interface graphique complète et inclut un \textbf{Window Manager} qui gère le positionnement et l'apparence des fenêtres.
\end{itemize}
\end{wide}
\end{frame}
@@ -566,7 +783,7 @@ version={4.0},
\end{wide}
\end{frame}
\begin{frame} \frametitle{Gnome}
\begin{frame} \frametitle{GNOME}
\begin{wide}
\centering
\includegraphics[height=6.1cm]{media/gnome.jpg}
@@ -619,9 +836,9 @@ version={4.0},
\begin{frame} \frametitle{Redémarrage}
\begin{wide}
\begin{itemize}
\item \keycombo{Ctrl}{D} ou \command{exit} : Sortir du chroot.
\item \command{umount -R /mnt} : Démonter les paritions \texttt{/mnt/boot} et \texttt{/mnt}.
\item \command{reboot} : Redémarer le système.
\item \keycombo{Ctrl}{D} ou \command{exit}~: Sortir du chroot.
\item \command{umount -R /mnt}~: Démonter les partitions \texttt{/mnt/boot} et \texttt{/mnt}.
\item \command{reboot}~: Redémarrer le système.
\end{itemize}
\end{wide}
\end{frame}
@@ -632,15 +849,15 @@ version={4.0},
\frametitle{Mise à jour du système}
\begin{wide}
\begin{itemize}[<+->]
\item Pour synchroniser la base de données des paquets et mettre à jour l'ensemble du système à partir des dépôts officiels, exécutez :
\item Pour synchroniser la base de données des paquets et mettre à jour l'ensemble du système à partir des dépôts officiels, exécutez~:
\begin{itemize}
\item \command{sudo pacman -Syu}
\end{itemize}
\item Si vous avez installé des paquets du AUR, vous pouvez mettre à jour tous les paquets (officiels et AUR) avec :
\item Si vous avez installé des paquets de l'AUR, vous pouvez mettre à jour tous les paquets (officiels et AUR) avec~:
\begin{itemize}
\item \command{yay -Syu}
\end{itemize}
\item Si le paquel \texttt{linux} a été mis à jour, il est recommandé de redémarrer le système, mais cela est optionnel.
\item Si le paquet \texttt{linux} a été mis à jour, il est recommandé de redémarrer le système, mais cela est optionnel.
\item Ces commandes garantissent que vous disposez des dernières versions, bénéficiant ainsi des correctifs de sécurité et des améliorations récentes.
\item Il est recommandé de réaliser cette opération régulièrement afin de maintenir un système stable, sécurisé et performant.
\end{itemize}
@@ -650,8 +867,8 @@ version={4.0},
\begin{frame}[fragile]{Amélioration du look de LightDM}
\begin{wide}
\begin{itemize}[<+->]
\item Installer le greeter webkit2 et le thème litarvan : \command{pacman -S lightdm-webkit2-greeter lightdm-webkit-theme-litarvan}.
\item Éditez le fichier \texttt{/etc/lightdm/lightdm.conf} et, sous la section \texttt{[Seat:*]}, ajoutez :
\item Installer le greeter webkit2 et le thème litarvan~: \command{pacman -S lightdm-webkit2-greeter lightdm-webkit-theme-litarvan}.
\item Éditez le fichier \texttt{/etc/lightdm/lightdm.conf} et, sous la section \texttt{[Seat:*]}, ajoutez~:
\begin{block}{}
\texttt{greeter-session=lightdm-webkit2-greeter}
\end{block}
@@ -671,18 +888,18 @@ version={4.0},
\begin{itemize}
\item \command{sudo pacman -S openssh}
\end{itemize}
\item Activez et démarrez le service SSH pour qu'il se lance automatiquement au démarrage :
\item Activez et démarrez le service SSH pour qu'il se lance automatiquement au démarrage~:
\begin{itemize}
\item \command{systemctl enable sshd}
\item \command{systemctl start sshd}
\end{itemize}
\item Vérifiez que le service fonctionne correctement avec :
\item Vérifiez que le service fonctionne correctement avec~:
\begin{itemize}
\item \command{systemctl status sshd}
\end{itemize}
\item Par la suite, pour se connecter en SSH \textbf{depuis une autre machine}, utilisez :
\item Par la suite, pour se connecter en SSH \textbf{depuis une autre machine}, utilisez~:
\begin{itemize}
\item \command{ssh nom\_utilisateur@adresse\_ip}
\item \command{ssh }\placeholder{nom\_utilisateur}\texttt{@}\placeholder{adresse\_ip}
\end{itemize}
\end{itemize}
\end{wide}