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 :
-
le partitionnement :
fdisk,cfdisk,parted -
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.