Linux avancé : disques et systèmes de fichiers
Voir les disques
Section intitulée « Voir les disques »lsblk -f # arbre : périphériques, systèmes de fichiers, UUID, points de montagelsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS,MODELsudo blkid # UUID et typessudo fdisk -l # partitionsfindmnt # arbre des montagesfindmnt /var # d'où vient /vardf -hT # espace par système de fichiersdf -i # inodes| Nom | Type |
|---|---|
/dev/sda, /dev/sdb |
Disques SATA, SAS, USB, ou virtuels |
/dev/nvme0n1, nvme0n1p1 |
Disques NVMe (partitions : p1, p2) |
/dev/vda |
Disque virtuel (KVM, VPS) |
/dev/mapper/… |
Volumes LVM, chiffrés, RAID |
/dev/md0 |
RAID logiciel |
Utiliser les UUID (ou les étiquettes) plutôt que /dev/sdb1 : l’ordre des noms peut changer d’un démarrage à l’autre.
Partitionner
Section intitulée « Partitionner »sudo parted /dev/sdX --script mklabel gpt mkpart donnees ext4 1MiB 100% # une partition GPTsudo fdisk /dev/sdX # interactif (g, n, w)sudo gdisk /dev/sdX # GPT, interactifsudo partprobe /dev/sdX # relire la tablelsblk /dev/sdXUn disque d’amorçage moderne est en GPT (avec partition EFI) ; MBR seulement pour de très anciens matériels ou de petits disques. Alignement : commencer à 1MiB.
Créer un système de fichiers
Section intitulée « Créer un système de fichiers »sudo mkfs.ext4 -L donnees /dev/sdX1sudo mkfs.xfs -L donnees /dev/sdX1sudo mkfs.btrfs -L donnees /dev/sdX1| Système | Points forts | À savoir |
|---|---|---|
| ext4 | Éprouvé, robuste, réparable (fsck), réductible |
Défaut d’Ubuntu |
| XFS | Très bon avec de gros fichiers et le parallélisme | Non réductible (agrandissement seulement) |
| Btrfs | Instantanés, compression, sommes de contrôle | Plus complexe, à connaître avant usage |
| tmpfs | En mémoire (/tmp, /run) |
Perdu au redémarrage |
sudo mkdir -p /srv/donneessudo mount /dev/disk/by-label/donnees /srv/donneessudo mount -o ro,noexec /dev/sdX1 /mnt # lecture seule, sans exécutionsudo umount /srv/donnees # ou : umount -l (démontage « paresseux »)sudo mount -o remount,rw /srv/donnees/etc/fstab
Section intitulée « /etc/fstab »Montage permanent :
# <fichier> <point> <type> <options> <dump> <fsck>UUID=3e6be9de-8139-11e1-a1d8-0050568e0001 /srv/donnees ext4 defaults,noatime,nofail 0 2UUID=8b0c2b8e-… none swap sw 0 0//nas.exemple.com/partage /mnt/nas cifs credentials=/root/.nas,uid=1000,_netdev,nofail 0 0sudo blkid /dev/sdX1 # obtenir l'UUIDsudo findmnt --verify # vérifier fstab AVANT de redémarrersudo mount -a # monter tout ce qui est dans fstabsudo systemctl daemon-reload| Option | Effet |
|---|---|
defaults |
Options usuelles (rw, suid, dev, exec, auto, nouser, async) |
noatime |
Pas de mise à jour de l’heure d’accès (moins d’écritures) |
nofail |
Le démarrage continue si le disque est absent |
ro |
Lecture seule |
nosuid,nodev,noexec |
Durcissement des partitions de données |
_netdev |
Disque réseau : monter après le réseau |
x-systemd.automount |
Montage à la demande |
Espace disque : analyser
Section intitulée « Espace disque : analyser »df -hT -x tmpfs -x devtmpfssudo du -xh --max-depth=1 / 2>/dev/null | sort -h | tail -15sudo du -sh /var/log/* | sort -h | tailsudo ncdu -x / # (paquet ncdu) navigation interactivesudo journalctl --disk-usagesudo apt clean; sudo apt autoremove --purgedocker system df # si Docker est utilisédfplein maisdune trouve pas : fichiers supprimés encore ouverts (lsof | grep deleted: Processus et ressources).dfindique de l’espace mais « No space left » : inodes épuisés (df -i) : très nombreux petits fichiers (sessions, courriers, caches).
LVM : volumes redimensionnables
Section intitulée « LVM : volumes redimensionnables »LVM ajoute une couche souple entre disques et systèmes de fichiers : volumes physiques (PV) → groupe de volumes (VG) → volumes logiques (LV).
sudo apt install lvm2sudo pvcreate /dev/sdX1sudo vgcreate vg_donnees /dev/sdX1sudo lvcreate -n lv_site -L 20G vg_donneessudo mkfs.ext4 /dev/vg_donnees/lv_sitesudo mount /dev/vg_donnees/lv_site /srv/site
sudo pvs; sudo vgs; sudo lvs # étatssudo lvdisplay /dev/vg_donnees/lv_siteAgrandir un volume
Section intitulée « Agrandir un volume »sudo lvextend -r -L +10G /dev/vg_donnees/lv_site # +10 Gio ET système de fichiers (-r)sudo lvextend -r -l +100%FREE /dev/vg_donnees/lv_site # tout l'espace libresudo vgextend vg_donnees /dev/sdY1 # ajouter un disque au groupeL’agrandissement se fait à chaud (volume monté) pour ext4 et XFS. Réduire est risqué (ext4 seulement, démonté, sauvegarde préalable) : lvreduce -r -L 10G ….
Sur Ubuntu Server
Section intitulée « Sur Ubuntu Server »L’installation par défaut crée souvent un volume logique ubuntu-lv plus petit que le disque :
sudo lvextend -r -l +100%FREE /dev/ubuntu-vg/ubuntu-lvdf -h /Instantanés LVM
Section intitulée « Instantanés LVM »sudo lvcreate -s -n instantane -L 5G /dev/vg_donnees/lv_sitesudo mount -o ro /dev/vg_donnees/instantane /mnt/instantane# sauvegarder depuis /mnt/instantane (état cohérent), puis supprimer :sudo umount /mnt/instantanesudo lvremove /dev/vg_donnees/instantaneL’instantané fige l’état à un instant : sauvegarde cohérente sans arrêter le service (Sauvegarde et automatisation). Un instantané trop petit se remplit et devient inutilisable : le surveiller.
RAID logiciel
Section intitulée « RAID logiciel »sudo apt install mdadmsudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdX1 /dev/sdY1cat /proc/mdstatsudo mdadm --detail /dev/md0sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.confsudo update-initramfs -usudo mdadm /dev/md0 --fail /dev/sdX1 --remove /dev/sdX1 # retirer un disque défaillantsudo mdadm /dev/md0 --add /dev/sdZ1 # ajouter son remplaçant| Niveau | Disques minimum | Tolère | Remarque |
|---|---|---|---|
| RAID 0 | 2 | Aucune panne | Performances, aucune redondance |
| RAID 1 | 2 | 1 panne | Miroir |
| RAID 5 | 3 | 1 panne | Capacité (n−1) |
| RAID 6 | 4 | 2 pannes | Capacité (n−2) |
| RAID 10 | 4 | 1 par miroir | Performances et redondance |
Chiffrement : LUKS
Section intitulée « Chiffrement : LUKS »sudo apt install cryptsetupsudo cryptsetup luksFormat /dev/sdX1 # détruit les données ; demande une phrase secrètesudo cryptsetup open /dev/sdX1 donnees_chiffreessudo mkfs.ext4 /dev/mapper/donnees_chiffreessudo mount /dev/mapper/donnees_chiffrees /srv/privesudo umount /srv/prive && sudo cryptsetup close donnees_chiffreessudo cryptsetup luksDump /dev/sdX1Montage automatique : /etc/crypttab (avec un fichier de clé protégé, ou une saisie au démarrage). Sauvegarder l’en-tête LUKS (cryptsetup luksHeaderBackup) : un en-tête corrompu rend les données irrécupérables.
swapon --showfree -hsudo fallocate -l 2G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfileecho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstabsudo sysctl vm.swappiness=10 # 60 par défaut ; plus bas : moins d'échangeecho 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.confsudo swapoff /swapfileUn petit swap évite qu’un pic de mémoire déclenche l’OOM killer ; un système qui échange en permanence manque de mémoire (Processus et ressources).
Santé des disques
Section intitulée « Santé des disques »sudo apt install smartmontoolssudo smartctl -H /dev/sdX # verdict globalsudo smartctl -a /dev/sdX | grep -E "Reallocated|Pending|Uncorrectable|Power_On_Hours|Temperature|Percentage Used"sudo smartctl -t short /dev/sdX # test courtsudo nvme smart-log /dev/nvme0n1 # NVMe (paquet nvme-cli)sudo iostat -xz 1 # saturation (paquet sysstat)dmesg -T | grep -iE "i/o error|ata[0-9]|nvme|blk_update_request"Des secteurs réalloués ou en attente qui augmentent, des erreurs d’entrée-sortie dans dmesg : remplacer le disque et vérifier les sauvegardes.
Vérifier et réparer un système de fichiers
Section intitulée « Vérifier et réparer un système de fichiers »sudo umount /srv/donneessudo fsck -f /dev/sdX1 # ext4 : démonté obligatoirementsudo e2fsck -fn /dev/sdX1 # simulation sans modificationsudo xfs_repair -n /dev/sdX1 # XFS : simulationsudo tune2fs -l /dev/sdX1 | head -30sudo tune2fs -c 0 -i 0 /dev/sdX1 # désactiver les contrôles périodiquesNe jamais lancer fsck sur un système de fichiers monté en écriture. La racine se vérifie au démarrage (fsck.mode=force sur la ligne de commande du noyau) ou depuis un système de secours (Noyau et démarrage).
Dépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
| Démarrage en mode d’urgence après modification de fstab | Erreur de syntaxe ou disque absent : corriger depuis le mode d’urgence, ajouter nofail |
mount: wrong fs type, bad option, bad superblock |
Mauvais type, système de fichiers corrompu : fsck, dmesg |
target is busy au démontage |
Un processus utilise le point de montage : lsof +D, fuser -vm |
| Disque plein en apparence vide | Inodes (df -i), fichiers supprimés ouverts |
Volume LVM agrandi mais df inchangé |
Système de fichiers non étendu : -r, ou resize2fs/xfs_growfs |
| Disque absent après redémarrage | Noms changés : UUID dans fstab ; câblage |
Lenteurs, processus en D |
iostat -xz 1, smartctl, dmesg |
device is busy à la fermeture de LUKS |
Démonter avant (umount) |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »Les outils de cette page sont identiques sur les deux versions ; sur 26.04, /tmp est en mémoire (tmpfs) : ne pas y stocker de gros fichiers. Les paquets lvm2, mdadm, cryptsetup, smartmontools, ncdu s’installent par apt.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Manuels :
man fstab,man lvm,man mdadm,man cryptsetup - Suite : Réseau avancé