Paquets, systemd, stockage LVM, reseau : le coeur operationnel de l'administrateur LPIC-1.
.deb, outil bas niveau dpkg, outil haut niveau apt (resout les dependances)..rpm, outil bas niveau rpm, outil haut niveau dnf (ex-yum).# Debian / Ubuntu
sudo apt update # synchronise les index (ne met rien a jour !)
sudo apt upgrade # met a jour les paquets installes
sudo apt install nginx # installe + dependances
sudo apt remove nginx # desinstalle (garde la config)
sudo apt purge nginx # desinstalle + config
apt search ssh # recherche
apt show openssh-server # fiche detaillee
dpkg -l | grep nginx # inventaire des installes
dpkg -i /tmp/outil.deb # installe un .deb local
# RHEL / Fedora
sudo dnf check-update
sudo dnf install httpd
sudo dnf remove httpd
sudo dnf search ssh
rpm -qa | grep httpd
rpm -qi httpd
update et upgrade ou qui installe un .deb avec dpkg sans gérer les dépendances casse la production au lieu de la sauver.dpkg et rpm sont des monteurs qui posent une seule pièce, tandis que apt et dnf sont des chefs de chantier : ils commandent la pièce, toutes ses dépendances et vérifient que l'ensemble tient debout avant de visser.apt update lit /etc/apt/sources.list et /etc/apt/sources.list.d/ ; sans update regulier, apt install propose des versions perimees. Les cles des depots sont dans /etc/apt/trusted.gpg.d/. Sur RHEL, les depots sont des fichiers .repo dans /etc/yum.repos.d/.
ls /etc/apt/sources.list.d/
sudo apt update && sudo apt upgrade -y
sudo dnf update -y
sudo apt update && sudo apt upgrade -y — update synchronise les index depuis sources.list et affiche le nombre de paquets actualisables ; upgrade télécharge et installe vraiment. apt show openssh-server détaille version et dépendances, dpkg -l | grep nginx vérifie l'installation. Si update échoue, upgrade travaillerait sur un catalogue périmé.apt update seul ne met rien à jour, et apt upgrade sans update installe des versions périmées. remove garde la configuration, seul purge la supprime. dpkg -i échoue sur les dépendances manquantes là où apt install les résout. À l'examen, cite les dépôts Debian dans sources.list et les dépôts RHEL en .repo dans /etc/yum.repos.d/.apt remove nginx et apt purge nginx ?remove désinstalle en conservant les fichiers de configuration, purge supprime aussi la configuration. Pour repartir de zéro, utilise purge.
update (index) vs upgrade (paquets), remove vs purge, dpkg -l/-i/-s, rpm -qa/-qi, emplacement des listes de depots, pendant dnf de apt install.systemd pilote des unites (.service, .target, .timer, .mount...). Reflexes : status (etat), start/stop/restart (immediat), enable/disable (au boot), is-enabled/is-active (verification).
systemctl status sshd
sudo systemctl start nginx
sudo systemctl enable nginx
# Created symlink .../multi-user.target.wants/nginx.service
systemctl is-enabled nginx # enabled
systemctl is-active nginx # active
sudo systemctl restart sshd
sudo systemctl disable apache2
start mais jamais activé avec enable. Comprendre systemd, c'est garantir que les services survivent au redémarrage.start demande à un musicien de jouer maintenant, enable l'inscrit sur la partition du prochain concert, et la target choisit entre formation réduite en texte ou grand orchestre graphique.multi-user.target = ex-runlevel 3 (texte + reseau).graphical.target = ex-runlevel 5 (graphique).rescue.target / emergency.target = maintenance.poweroff / reboot = arret / redemarrage.systemctl get-default
sudo systemctl set-default multi-user.target
sudo systemctl isolate rescue.target # bascule immediate (maintenance)
systemctl list-units --type=service --state=running
journalctl -b # boot courant
journalctl -u sshd # uniquement le service sshd
journalctl -u nginx -f # suivi temps reel (-f comme tail -f)
journalctl --since "2026-01-12 08:00" --until "2026-01-12 09:00"
journalctl -p err -b # erreurs du boot
sudo journalctl --vacuum-time=7d # menage du journal
systemctl status sshd affiche active (running) avec le PID et les dernières lignes du journal : le service tourne. sudo systemctl enable nginx crée un lien dans multi-user.target.wants, preuve qu'il partira au boot. journalctl -u nginx -f suit ensuite les logs en direct : chaque redémarrage y laisse sa trace horodatée.start agit tout de suite mais s'oublie au reboot, enable programme le boot mais ne démarre rien maintenant : en production, il faut souvent les deux. isolate rescue.target coupe les services sans prévenir. journalctl sans -u noie dans tous les services, et -p err seul cache les avertissements qui annoncent la panne.sudo systemctl enable nginx : elle crée le lien de démarrage automatique. Vérifie avec systemctl is-enabled nginx qui doit répondre enabled.
enable (boot) vs start (immediat), correspondance targets/runlevels, get-default / set-default / isolate, filtres journalctl -u/-b/-f/-p/--since.lsblk
# sda 30G : sda1 20G (/) sda2 10G (/home)
sudo fdisk -l /dev/sda # table de partitions
blkid # UUID + types FS
df -h # partitions MONTEES + espace
du -sh /var/log # taille d'un dossier
/data affiche 100 % et l'application refuse les écritures. Sans LVM, il faut déplacer des données un dimanche entier. Avec LVM, tu étends le volume logique en quelques minutes et la production repart sans réinstallation.LVM decouple le stockage physique du decoupage logique : on empile des PV (physical volumes = partitions/disques), on les regroupe en VG (volume group = reservoir), on y taille des LV (logical volumes = partitions logiques extensibles), puis mkfs + mount.
sudo pvcreate /dev/sdb1
sudo vgcreate vgdata /dev/sdb1
sudo lvcreate -L 5G -n lvdata vgdata
sudo mkfs.ext4 /dev/vgdata/lvdata
sudo mkdir -p /data
sudo mount /dev/vgdata/lvdata /data
pvdisplay && vgdisplay && lvdisplay
Format : peripherique point type options dump pass. On prefere l'UUID au nom (/dev/sda1 peut changer). Apres edition : mount -a pour tester avant de rebooter (un fstab faux = boot en maintenance).
cat /etc/fstab
UUID=aaa-111 / ext4 defaults 0 1
UUID=bbb-222 /home ext4 defaults 0 2
/dev/vgdata/lvdata /data ext4 defaults 0 2
sudo mount -a && echo "fstab OK"
pvcreate /dev/sdb1 marque le disque comme brique LVM ; vgcreate vgdata /dev/sdb1 crée le réservoir vgdata ; lvcreate -L 5G -n lvdata vgdata y taille une cloison de 5 Go ; mkfs.ext4 /dev/vgdata/lvdata pose le système de fichiers ; mount /dev/vgdata/lvdata /data le rend visible. mount -a après édition de fstab confirme que le montage survivra au reboot.mkfs avant mount produit une erreur obscure. Utiliser /dev/sda1 au lieu de l'UUID dans fstab expose à un montage sur le mauvais disque après ajout matériel. Rebooter sans mount -a de test envoie la machine en mode maintenance. À l'examen : df ne voit que le monté, du mesure un dossier, lsblk montre l'arbre, et l'ordre PV puis VG puis LV est intangible.pvcreate puis vgcreate puis lvcreate, ensuite mkfs et mount, enfin entrée en fstab validée par mount -a.
pvcreate/vgcreate/lvcreate + mkfs + mount, les 6 champs de fstab, pourquoi l'UUID, mount -a comme test, df (monte) vs du (dossier) vs lsblk (arbre).ifconfig et netstat sont obsoletes : utilisez ip et ss. Examen piege classique.
ip addr # adresses IPv4/IPv6 des interfaces
ip -4 addr show eth0
ip route # table de routage
sudo ip route add default via 192.168.1.1
ip link # etat des interfaces (UP/DOWN)
ss -tlnp # ports TCP en ecoute + processus
ss -tupn # TCP + UDP
ip route révèle une passerelle perdue et ss -tlnp montre que le port 443 n'écoute plus. Le réseau se diagnostique, il ne se devine pas.ip addr donne l'adresse de chaque maison, ip route la carte des carrefours, /etc/resolv.conf l'annuaire qui traduit les noms en adresses, et ss la liste des guichets ouverts avec le service qui tient derrière chacun./etc/hostname : nom de la machine./etc/hosts : resolutions locales prioritaires (127.0.0.1 localhost)./etc/resolv.conf : serveurs DNS (nameserver 8.8.8.8)./etc/nsswitch.conf : ordre de resolution (files dns).cat /etc/hostname /etc/hosts /etc/resolv.conf
ping -c 4 8.8.8.8 # connectivite IP
ping -c 4 exemple.fr # + resolution DNS
getent hosts exemple.fr
dig exemple.fr / host exemple.fr
curl -I https://exemple.fr
# UFW (Debian/Ubuntu)
sudo ufw allow 22/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo ufw status verbose
# firewalld (RHEL)
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload
ss -tlnp | grep :80 — -t filtre TCP, -l les ports en écoute, -n évite la résolution lente, -p affiche le processus. Si la ligne 0.0.0.0:80 manque, le serveur web n'écoute pas. ping -c 4 8.8.8.8 teste la connectivité IP pure, ping -c 4 exemple.fr ajoute le DNS : si le premier passe et le second échoue, le coupable est resolv.conf, pas le câble.ifconfig et netstat sont obsolètes : l'examen attend ip et ss. ping vers une IP qui répond ne prouve pas que le DNS fonctionne. ufw enable sans avoir autorisé le port 22 coupe ton propre SSH. Sur firewalld, oublier --permanent puis --reload rend la règle éphémère.ss -tlnp : t pour TCP, l pour listening, n pour numérique, p pour processus. Le port apparaît dans la colonne locale.
ip addr/route/link vs vieux outils, lecture de ss -tlnp (colonne Local = port en ecoute), role de chaque fichier (hosts/hostname/resolv.conf/nsswitch.conf), ports 22/80/443/53, ufw allow/enable/status.Vous installez et mettez a jour des paquets sur les deux familles, pilotez systemd et ses targets, deployez un volume LVM monte via fstab, et diagnostiquez le reseau avec ip et ss. Validez les missions 4 a 8 dans le terminal.