← Sommaire SkyLinux

Leçon 18 : Gestion des disques et partitions

Dans cette leçon, tu vas maîtriser la gestion des disques et partitions sous Linux : création de partitions, systèmes de fichiers, montage, et surveillance de l'espace disque.


1. Comprendre le stockage sous Linux

Nomenclature des disques

PériphériqueDescription
/dev/sdaPremier disque SATA/SCSI
/dev/sdbDeuxième disque
/dev/nvme0n1Premier NVMe (SSD moderne)
/dev/sda1Première partition du disque sda
/dev/nvme0n1p1Première partition du NVMe

Types de partitions

TypeDescription
**MBR**Ancien format, max 2To, 4 partitions primaires
**GPT**Format moderne, tables

2. Commandes de surveillance

df - Espace disque

df -h # Format lisible (Ko, Mo, Go)

df -H # Format IEC (1000 au lieu de 1024)

df -T # Avec type de filesystem

df -i # Inodes au lieu de blocs

df -x tmpfs # Exclure les tmpfs

df --output=source,size,used,avail,pcent # Colonnes personnalisées

# Exemple de sortie

df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda1 100G 45G 55G 45% /

/dev/sdb1 500G 200G 300G 40% /data

tmpfs 2.0G 0 2.0G 0% /dev/shm

du - Espace utilisé

du -sh dossier/ # Taille totale

du -h --max-depth=1 # Sous-dossiers 1 niveau

du -h --max-depth=2 # Sous-dossiers 2 niveaux

du -ah dossier/ # Tous fichiers + cachés

du -sh */ # Tous les sous-dossiers

du -h | sort -rh | head -10 # Top 10

# Exclure un pattern

du -h --exclude='*.log' dossier/

lsblk - Blocs appareils

lsblk # Liste simple

lsblk -f # Avec filesystem

lsblk -m # Permissions et owner

lsblk -t # Format tableau

lsblk -o NAME,SIZE,TYPE,MOUNTPOINT # Colonnes personnalisées


3. Partitionner un disque

fdisk - Outil classique

# Lister toutes les partitions

sudo fdisk -l

sudo fdisk -l /dev/sda

# Entrer dans le mode interactif

sudo fdisk /dev/sdb

**Commandes interactives fdisk :**

CommandeDescription
pAfficher la table de partitions
nNouvelle partition
dSupprimer une partition
tChanger le type de partition
lLister les types disponibles
wÉcrire et quitter
qQuitter sans enregistrer
mAide

parted - Alternative moderne

# Mode interactif

sudo parted /dev/sdb

# Commandes non-interactives

sudo parted /dev/sdb mklabel gpt

sudo parted /dev/sdb mkpart primary ext4 0% 100%

sudo parted /dev/sdb mkpart primary linux-swap 80% 100%

sudo parted /dev/sdb rm 1

sudo parted /dev/sdb print

gdisk - Pour GPT

sudo gdisk /dev/sdb

# Similaire à fdisk mais pour tables GPT


4. Systèmes de fichiers

Créer un filesystem

# ext4 (le plus courant)

sudo mkfs.ext4 /dev/sdb1

sudo mkfs.ext4 -L "MonDisque" /dev/sdb1 # Avec label

# ext3

sudo mkfs.ext3 /dev/sdb1

# XFS (haute performance)

sudo mkfs.xfs /dev/sdb1

# Btrfs (moderne, copy-on-write)

sudo mkfs.btrfs /dev/sdb1

# VFAT (Windows)

sudo mkfs.vfat /dev/sdb1

# NTFS (, nécessite ntfs-3g)

sudo mkfs.ntfs /dev/sdb1

# Swap

sudo mkswap /dev/sda2

sudo swapon /dev/sda2

Options de mkfs.ext4

# Paramètres avancés

sudo mkfs.ext4 -m 0 -b 4096 -E stride=32,stripe-width=64 /dev/sdb1

# -m 0 : Réserver 0% pour root (au lieu de 5%)

# -b 4096 : Taille de bloc

# -E : Paramètres RAID pour SSD


5. Monter et démonter

Montage manuel

# Monter une partition

sudo mount /dev/sdb1 /mnt/data

# Monter en lecture seule

sudo mount -r /dev/sdb1 /mnt/backup

# Monter avec options

sudo mount -o defaults,noexec,nosuid /dev/sdb1 /mnt/apps

# Monter par UUID

sudo mount UUID="123-456" /mnt/data

# Monter par label

sudo mount LABEL="MonDisque" /mnt/data

Options de montage courantes

OptionDescription
defaultsrw, suid, dev, exec, auto, nouser, async
roLecture seule
rwLecture/Écriture
noexecPas d'exécution de binaires
nosuidIgnorer setuid/setgid
nodevPas de fichiers spéciaux
nosymfollowNe pas suivre les liens symboliques
noatimeNe pas mettre à jour l'accès
nodiratimeNe pas mettre à jour l'accès aux répertoires
nofailNe pas échouer si absent

Démonter

# Démonter proprement

sudo umount /mnt/data

# Forcer (peut causer des erreurs)

sudo umount -f /mnt/data

# Lazy unmount (quand pas occupé)

sudo umount -l /mnt/data

# Démonter tous les points de montage d'un périphérique

sudo umount -l /dev/sdb1


6. Configuration automatique (/etc/fstab)

Format du fichier

# <périphérique> <point de montage> <type> <options> <dump> <pass>

UUID=xxx /data ext4 defaults 0 2

/dev/sdb1 /backup ext4 nofail,noatime 0 2

tmpfs /tmp tmpfs defaults 0 0

Trouver UUID et type

# Lister tous les UUID

sudo blkid

# UUID d'un spécifique

sudo blkid /dev/sda1

# Vérifier le filesystem

sudo file -s /dev/sda1

Options fstab courantes

OptionDescription
defaultsrw, suid, dev, exec, auto, nouser, async
nofailNe pas bloquer le boot si absent
noatimePerformance améliorée
nobootwaitAttendre ou non le montage

7. Swap

Créer du swap

# Créer un fichier swap

sudo fallocate -l 2G /swapfile

sudo chmod 600 /swapfile

sudo mkswap /swapfile

sudo swapon /swapfile

# Ajouter au fstab

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Commandes swap

swapon -s # Voir le swap actif

sudo swapon /swapfile # Activer

sudo swapoff /swapfile # Désactiver


8. Vérification et réparation

fsck - Vérifier le filesystem

# Vérifier (NE JAMAIS sur mounted !)

sudo fsck /dev/sdb1

# Avec réparation automatique

sudo fsck -y /dev/sdb1

# Type spécifique

sudo fsck -t ext4 /dev/sdb1

# Forcer même si propre

sudo fsck -f /dev/sdb1

⚠️ **IMPORTANT** : Ne jamais exécuter fsck sur un filesystem monté !

tune2fs - Paramètres ext

# Voir les paramètres

sudo tune2fs -l /dev/sda1

# Changer le label

sudo tune2fs -L "NouveauLabel" /dev/sda1

# Journaling (ajouter si manquant)

sudo tune2fs -O ^has_journal /dev/sda1 # Retirer

sudo tune2fs -O has_journal /dev/sda1 # Ajouter

# Fréquence de vérification

sudo tune2fs -c 30 /dev/sda1 # Tous les 30 mounts

sudo tune2fs -i 30d /dev/sda1 # Tous les 30 jours


9. Gestion LVM (Logical Volume Manager)

Concepts

Commandes LVM

# Créer un PV

sudo pvcreate /dev/sdb1

# Créer un VG

sudo vgcreate mon_vg /dev/sdb1

# Créer un LV

sudo lvcreate -L 10G -n mon_lv mon_vg

# Formater le LV

sudo mkfs.ext4 /dev/mon_vg/mon_lv

# Agrandir le LV

sudo lvextend -L +5G /dev/mon_vg/mon_lv

sudo resize2fs /dev/mon_vg/mon_lv

# Réduire le LV (attention !)

sudo resize2fs /dev/mon_vg/mon_lv 5G

sudo lvreduce -L 5G /dev/mon_vg/mon_lv

# État

sudo pvs # Physical volumes

sudo vgs # Volume groups

sudo lvs # Logical volumes


10. SSD et TRIM

Activer TRIM

# Vérifier si actif

sudo hdparm -I /dev/sda | grep TRIM

# TRIM manuel

sudo fstrim /

# Activer discard dans fstab

/dev/sda1 / ext4 defaults,discard 0 1


11. Exercices pratiques

Exercice 1 : Surveillance

# Voir l'utilisation

df -h

# Les plus gros dossiers

du -sh /* 2>/dev/null | sort -rh | head -10

# Espace inode

df -i

Exercice 2 : Créer une partition

# Voir les disques

lsblk

# Partitionner (ATTENTION au bon disque !)

sudo fdisk /dev/sdb

# n (nouveau), p (primaire), 1, default, default, w

# Créer filesystem

sudo mkfs.ext4 /dev/sdb1

# Monter

sudo mkdir /mnt/backup

sudo mount /dev/sdb1 /mnt/backup

Exercice 3 : Configuration fstab

# Trouver UUID

sudo blkid

# Éditer fstab

sudo nano /etc/fstab

# Ajouter ligne:

# UUID=xxx /mnt/data ext4 defaults,nofail 0 2


12. Tableau résumé

CommandeDescription
df -hEspace disque
du -shTaille dossiers
lsblkLister blocs
fdiskPartitionner (MBR)
partedPartitionner (GPT)
mkfsCréer filesystem
mountMonter
umountDémonter
blkidUUIDs
fsckVérifier
swapon/swapoffGérer swap
pvs/vgs/lvsLVM

Maîtrise la gestion des disques pour administrer Linux comme un pro ! 💾