dernière modification : 2025

L’espace de stockage

On voit ici comment assembler les partitions pour obtenir l’espace disque.

1. Partition

Une partition est une unité de stockage, qui possède ses propres caractéristiques : un type, une taille (donc un taux de remplissage), etc. Physiquement, elle repose sur un support (disque, clé, DVD, etc.) ayant lui aussi ses propres caractéristiques : temps d’accès aux données, taux de transfert, etc.

Pour qu’une partition soit utilisable par Unix, elle doit contenir un système de fichiers (filesystem). Celui-ci est créé lors du formatage de la partition.

1.1. Assembler les partitions

Soit 2 partitions avec sur chacune d’elles un système de fichiers. La première :

/
├── ...
├── ...
└── var

dans lequel le répertoire /var est vide, et la seconde :

/
├── lib
├── log
└── tmp

L’opération de raccordement s’appelle un montage. Quand la seconde partition est montée dans le répertoire /var de la première, cela donne :

/
├── ...
├── ...
└── var
    ├── lib
    ├── log
    └── tmp

On dit alors que le répertoire var est un point de montage. La commande df permet de voir les partitions constituant l’espace de stockage, leurs volumes et taux de remplissage, ainsi que les points de montage.

Pour des raisons historiques, /usr a longtemps été une partition à part. Pour des raisons techniques, /boot l’est souvent aujourd’hui encore. Et il peut être judicieux que /home, /var et /tmp le soient également.

1.2. Type de partition

Il existe plusieurs types de partition, chacun ayant ses spécificités, comme par exemple le format des noms de fichiers : 8.3 (format MS/DOS), noms de fichiers longs, noms de fichiers contenant des caractères nationaux (éèêàù…​), etc.

Linux utilise couramment le type ext4, correspondant à des partitions sur disques durs, ainsi que tmpfs, un type de partition en RAM. Il sait aussi exploiter fat32 (MS/DOS et Windows avant Windows NT), exfat (clés USB) et ntfs (Windows), ainsi que ISO9660 (CD) et UDF (supports optiques réinscriptibles).

1.3. Initialisation

Les opérations d’initialisation d’un disque avant de pouvoir l’intégrer à un système sont :

  1. le partitionnement : fdisk, cfdisk, parted

  2. le formatage de chaque partition, ce qui crée un filesystem sur chacune d’elles : mkfs

La cohérence d’un filesystem peut être vérifiée avec fsck, qui peut aussi corriger quelques problèmes de corruption si besoin.

2. Périphériques

La commande lsblk liste les devices actuellement connectés à la machine, ainsi que leurs partitions:

$ lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
zram0                252:0    0     8G  0 disk  [SWAP]
nvme0n1            259:0    0 238,5G  0 disk
├─nvme0n1p1        259:1    0   600M  0 part  /boot/efi
├─nvme0n1p2        259:2    0     1G  0 part  /boot
└─nvme0n1p3        259:3    0 236,9G  0 part
  ├─almalinux-root 253:0    0    70G  0 lvm   /
  ├─almalinux-swap 253:1    0   7,8G  0 lvm   [SWAP]
  └─almalinux-home 253:2    0 159,1G  0 lvm   /home

3. Montage

Pour accéder aux données situées sur une partition, il faut la monter dans un répertoire. Cela se réalise avec la commande mount :

$ sudo mount /dev/nvme0n1p4 /mnt

On visualise la composition de l’espace disque avec la commande df :

$ df -h
Sys. de fichiers           Taille Utilisé Dispo Uti% Monté sur
efivarfs                     256K     73K  179K  29% /sys/firmware/efi/efivars
/dev/nvme0n1p1                50G    3,5G   47G   5% /
/dev/nvme0n1p4                 1T    128K    1T   0% /mnt

Le montage est une opération globale à la machine, impactant tous les utilisateurs (dont nécessitant des privilèges administrateur). Un montage est effectif jusqu’au shutdown de l’ordinateur. Pour qu’il soit persistant, il faut le déclarer dans le fichier /etc/fstab.

Déclarer la composition de l’espace de stockage dans /etc/fstab était la procédure historique sur tout Unix, avant l’avènement de systemd. Aujourd’hui, systemd prend en charge les montages et propose une procédure alternative.

Exemple

Voici par exemple les périphériques d’un ordinateur :

$ lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
zram0                252:0    0     8G  0 disk  [SWAP]
nvme0n1            259:0    0 238,5G  0 disk
├─nvme0n1p1        259:1    0   600M  0 part  /boot/efi
├─nvme0n1p2        259:2    0     1G  0 part  /boot
└─nvme0n1p3        259:3    0 236,9G  0 part
  ├─almalinux-root 253:0    0    70G  0 lvm   /
  ├─almalinux-swap 253:1    0   7,8G  0 lvm   [SWAP]
  └─almalinux-home 253:2    0 159,1G  0 lvm   /home

et son espace de stockage :

$ df -h
Sys. de fichiers           Taille Utilisé Dispo Uti% Monté sur
efivarfs                     256K     73K  179K  29% /sys/firmware/efi/efivars
/dev/mapper/almalinux-root    70G    3,5G   67G   5% /
/dev/nvme0n1p2              1014M    469M  546M  47% /boot
/dev/mapper/almalinux-home   160G    140G   20G  88% /home
/dev/nvme0n1p1               599M    7,1M  592M   2% /boot/efi

On branche un disque externe sur cette machine. On voit alors apparaitre un nouveau periphérique sda avec une partition sda1 :

$ lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
zram0                252:0    0     8G  0 disk  [SWAP]
sda                  8:0    0   1,8T  0 disk
└─sda1               8:1    0   7,4G  0 part
nvme0n1            259:0    0 238,5G  0 disk
├─nvme0n1p1        259:1    0   600M  0 part  /boot/efi
├─nvme0n1p2        259:2    0     1G  0 part  /boot
└─nvme0n1p3        259:3    0 236,9G  0 part
  ├─almalinux-root 253:0    0    70G  0 lvm   /
  ├─almalinux-swap 253:1    0   7,8G  0 lvm   [SWAP]
  └─almalinux-home 253:2    0 159,1G  0 lvm   /home

Mais cette partition n’apparait pas dans l’espace de stockage :

$ df -h
Sys. de fichiers           Taille Utilisé Dispo Uti% Monté sur
efivarfs                     256K     73K  179K  29% /sys/firmware/efi/efivars
/dev/mapper/almalinux-root    70G    3,5G   67G   5% /
/dev/nvme0n1p2              1014M    469M  546M  47% /boot
/dev/mapper/almalinux-home   160G    140G   20G  88% /home
/dev/nvme0n1p1               599M    7,1M  592M   2% /boot/efi

On monte la partition sda1 dans le répertoire /mnt :

$ mount /dev/sda1 /mnt

ce qui la rend opérationnelle :

$ df -h
Sys. de fichiers           Taille Utilisé Dispo Uti% Monté sur
efivarfs                     256K     73K  179K  29% /sys/firmware/efi/efivars
/dev/mapper/almalinux-root    70G    3,5G   67G   5% /
/dev/nvme0n1p2              1014M    469M  546M  47% /boot
/dev/mapper/almalinux-home   160G    140G   20G  88% /home
/dev/nvme0n1p1               599M    7,1M  592M   2% /boot/efi
/dev/sda1                    1,8T    153G  1,6T   9% /mnt

4. NFS

NFS (Network File System) permet de créer un espace de stockage distribué sur le réseau. Le serveur NFS exporte des répertoires, qui sont susceptibles d’être montés par un ou plusieurs ordinateurs clients. Les répertoires exportés sont listés dans /etc/exports. Le client monte les répertoires exportés avec la commande mount.