La gestion des disques sous Linux

Lister les disques

Pour afficher les disques durs, SSD et autre périphériques de stockage attachés au système, il existe différentes commandes (avec chacune leurs spécificités) :

 fdisk -l 

ou

 lsblk 

blkid permet d'afficher les systèmes de fichiers utilisés sur les partitions :

 blkid 

Pour obtenir des informations sur un périphérique en particulier, on utilisera plutôt la commande fdisk suivie du nom du matériel :

 fdisk /dev/sdx 

Pour voir l'utilisation des disques, la commande df est très pratique :

 df -h 

L'argument -h permet d'afficher les informations de façon plus lisibles.

Partitionner un disque

Pour créer des volumes sur un disque, on utilise la commande fdisk en précisant le périphérique :

 fdisk /dev/sdx 

Les informations relatives au disque sélectionné vont alors s'afficher et un menu va s'ouvrir. Pour naviguer dans le menu fdisk, il faut entrer la touche correspondant à l'action souhaitée et valider par ENTREE.

touche p Montre les partitions existantes sur le disque
touche n Permet de créer de nouvelles partitions
touche t Permet de choisir le type de système de fichier qui sera utilisé sur une partition nouvellement créée
touche d Permet de supprimer une partition du disque

Formatter une partition

Pour formatter une partition, on se sert de la commande “mkfs” qui va permettre de choisir le système de fichiers à créer sur le disque. Par exemple :

Commande Système de fichiers installé
mkfs.ext4ext4
mkfs.ext3ext3
mkfs.ext2ext2
mkfs.ntfsNTFS
mkfs.fatfat32

Exemple pour formatter une partition en ext4 :

mkfs.ext4 /dev/sdb1

Monter une partition

Pour utiliser une partition comme espace de stockage, il faut la monter au niveau de l'arborescence Linux. Pour cela on va utiliser mount :

mount <partition> <point de montage>

A l'inverse pour démonter :

umount <partition>

:!: Le montage d'une partition de cette façon n'est pas persistante.

Montage automatique

Afin d'éviter d'avoir à remonter une partition à chaque redémarrage de la machine, on peut configurer le montage automatique d'une partition au démarrage. Pour cela, il faut ajouter une ligne pour chaque partition concernée dans le fichier /etc/fstab, de cette manière (avec des tabs entre les mots-clés) :

<partition>   <point de montage>   <type>   <options>   <dump>   <pass>

Exemple pour monter la partition ayant l'UUID fd0587f2-d0d0-404c-b4c3-aa358b8dacd6 formattée en ext4 en tant que partition système :

UUID=fd0587f2-d0d0-404c-b4c3-aa358b8dacd6 / ext4 noatime 0 1

Explications :

  • partition : chemin absolu, UUID ou PARTUUID de la partition à monter
  • point de montage : répertoire dans l'arborescence Linux où sera montée la partition
  • type : système de fichiers de la partition (ext4, ntfs, fat32…)
  • options : options diverses (précisées plus bas)
  • dump : utilisé par l'utilitaire dump pour activer ou non la sauvegarde de la partition. Généralement laissé à 0.
  • pass : priorité lors de la vérification du disque par fsck au démarrage du système. Priorité haute : 1, faible : 2, désactiver le check : 0

Une partition peut être désignée soit par son chemin absolu (type /dev/sdxX), soit par un identifiant (UUID ou PARTUUID). La seconde option est recommandée puisqu'elle permet d'identifier précisément un disque ou une partition, au contraire du chemin absolu qui peut changer après un redémarrage de la machine ou lors du débranchement du disque.

Liste des options que l'on peut utiliser :

  • defaults : paramètres de montage par défaut (équivalent à rw,suid,dev,exec,auto,nouser,async).
  • auto : le système de fichiers sera monté automatiquement au démarrage, ou quand la commande 'mount -a' sera joué.
  • noauto : le système de fichiers est monté que quand on lui demande de le faire.
  • discard : Active la fonctionnalité TRIM sur un disque SSD à la volée (déconseillé)
  • nofail : si la partition n'est pas disponible au démarrage, elle n'est pas montée et ne bloque pas le démarrage
  • rw : monte le système de fichiers en lecture et en écriture.
  • ro : monte le système de fichiers en lecture seulement.
  • relatime : mettre à jour la date d'accès sur l'inode par rapport au modification ou au changement de date.
  • noatime : ne pas mettre à jour la date d'accès sur l'inode pour le système de fichier
  • user : permet à n'importe quel utilisateur de monter le système de fichiers (cela implique noexec,nosuid,nodev).
  • nouser : autorise seulement le compte root à monter le fichier système (par défaut).
  • sync : Les entrées/sorties (I/O) devraient être faites de manière synchrone.
  • async : Les entrées/sorties (I/O) devraient être faites de manière asynchrone.
  • suid : autorise les opérations sur les bits suid et sgid. Le plus souvent cela permet d'autoriser un utilisateur sur un ordinateur à exécuter un binaire avec une élévation temporaire des privilèges dans le but d'effectuer une tache spécifique.
  • nosuid - bloque les opérations sur les bits suid et sgid.
  • exec : autorise l'exécution de binaire qui sont sur cette partition (par défaut).
  • noexec : n'autorise pas l'exécution de binaires sur le système de fichier.
  • acl : autorise la gestion des acl sur cette partition.

fstab est un fichier sensible du système car la moindre erreur peut empêcher le système de démarrer !

Le site suivant permet de générer automatiquement la ligne fstab adéquate en fonction de la configuration que l'on souhaite faire : fstab generator.

L'ajout de l'option nofail est recommandée pour permettre au système de démarrer quand même en cas d'erreur ou s'il détecte un problème avec une partition non-système

Pour tester que le montage automatique des partitions est bien configuré, utiliser la commande suivante, qui va tenter de monter instantanément toutes les partitions indiquées dans /etc/fstab :

mount -a

Vérification du bon fonctionnement avec la commande df -h.

Vérifier l'intégrité d'une partition et la réparer

fsck (File System Check) permet de vérifier l'intégrité d'une partition et de réparer d'éventuelles erreurs.

Procédure à suivre :

  1. Identifier la partition défaillante et la démonter
    lsblk -fe7 -o +size

    Ici, on suppose que la partition est /dev/sdx1 :

    umount /dev/sdx1
  2. Lancer le scan avec fsck :
    fsck /dev/sdx1

Sources