Système de fichiers et gestion des disques

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue dans ce laboratoire consacré au système de fichiers et à la gestion des disques sous Linux ! Ce laboratoire est conçu pour les débutants qui commencent tout juste à explorer le monde de l'administration système Linux. Nous vous guiderons à travers les commandes et concepts essentiels liés à la gestion de l'espace disque, à la création de disques virtuels et à la maintenance des systèmes de fichiers. À la fin de ce laboratoire, vous aurez acquis une expérience pratique des outils fondamentaux de gestion de disque sous Linux.

Visualiser l'utilisation du disque avec df

La commande df (disk free) est votre outil de référence pour vérifier l'utilisation de l'espace disque sur votre système Linux. Explorons comment l'utiliser :

  1. Ouvrez votre terminal. Vous devriez vous trouver dans le répertoire /home/labex/project. Si vous n'êtes pas sûr, vous pouvez toujours vérifier votre répertoire actuel avec la commande pwd.

  2. Exécutez la commande suivante pour afficher l'utilisation du disque :

    df
    

    Vous verrez une sortie similaire à celle-ci :

    Filesystem     1K-blocks      Used Available Use% Mounted on
    overlay         20971520    128744  20842776   1% /
    tmpfs              65536         0     65536   0% /dev
    tmpfs            3995004         0   3995004   0% /sys/fs/cgroup
    shm                65536         0     65536   0% /dev/shm
    /dev/nvme1n1  104806400  57754052  47052348  56% /etc/hosts
    

    Ne vous inquiétez pas si cela semble confus au début ! Décomposons les colonnes :

    • Filesystem : Cette colonne indique le nom du disque ou de la partition.
    • 1K-blocks : Il s'agit de la taille totale du système de fichiers en blocs de 1 kilo-octet.
    • Used : Indique l'espace actuellement utilisé.
    • Available : Indique l'espace libre restant.
    • Use% : Indique le pourcentage du système de fichiers utilisé.
    • Mounted on : Indique l'emplacement dans l'arborescence des répertoires où le système de fichiers est monté.
  3. Maintenant, rendons cette sortie plus lisible pour un humain. Exécutez :

    df -h
    

    L'option -h signifie "human-readable" (lisible par l'humain). Vous verrez une sortie comme celle-ci :

    Filesystem      Size  Used Avail Use% Mounted on
    overlay          20G  126M   20G   1% /
    tmpfs            64M     0   64M   0% /dev
    tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
    shm              64M     0   64M   0% /dev/shm
    /dev/nvme1n1   100G   56G   45G  56% /etc/hosts
    

    C'est bien mieux, n'est-ce pas ? Les tailles sont maintenant exprimées en Go et Mo, ce qui est plus facile à comprendre.

  4. Si vous souhaitez vérifier l'espace utilisé par le système de fichiers contenant un fichier ou un répertoire spécifique, vous pouvez passer ce chemin à df :

    df -h /etc/hosts
    

    Cela affichera uniquement les informations relatives au système de fichiers contenant /etc/hosts. Dans cet environnement, il s'agit généralement de /dev/nvme1n1.

La commande df est extrêmement utile pour vérifier rapidement l'espace disque restant. Si vous rencontrez des problèmes où votre système indique qu'il manque d'espace, df est souvent la première commande à utiliser pour enquêter.

Examiner la taille des répertoires avec du

Alors que df nous donne une vue d'ensemble de l'utilisation du disque, nous devons parfois creuser plus profondément. C'est là qu'intervient du (disk usage). Il nous aide à comprendre quels répertoires et fichiers occupent le plus d'espace.

  1. Commençons par utiliser du sous sa forme la plus simple. Exécutez :

    du ~
    

    Vous verrez une longue liste de nombres et de noms de répertoires. Chaque nombre représente la taille du répertoire en kilo-octets. Cela peut être fastidieux, alors rendons cela plus gérable.

  2. Pour une sortie plus lisible, utilisez l'option -h :

    du -h ~
    

    L'option -h, tout comme pour df, rend la sortie lisible par l'humain. Vous verrez les tailles en Ko, Mo ou Go selon le cas.

  3. Souvent, nous voulons simplement connaître la taille totale d'un répertoire. Pour cela, utilisez :

    du -sh ~
    

    Ici, -s signifie "summarize" (résumer) et ~ représente votre répertoire personnel. Cette commande vous indiquera la taille totale de tout ce qui se trouve dans votre répertoire personnel.

  4. Pour afficher la taille des sous-répertoires immédiats de votre répertoire personnel, utilisez :

    du -h --max-depth=1 ~
    

    Cela affiche la taille de chaque sous-répertoire au premier niveau. L'option --max-depth=1 limite la profondeur de récursion de du dans les sous-répertoires.

  5. Vérifions la taille des éléments dans votre répertoire personnel :

    du -sh ~/*
    

    Cela affichera la taille de chaque fichier et répertoire non masqué situé directement sous votre répertoire personnel.

  6. Voici une commande puissante pour trouver les éléments les plus volumineux de votre répertoire personnel :

    du -h ~ | sort -rh | head -n 10
    

    Décomposons cette commande :

    • du -h ~ liste tous les fichiers et répertoires de votre répertoire personnel avec leurs tailles.
    • sort -rh trie cette liste dans l'ordre inverse (du plus grand au plus petit) et dans un format lisible par l'humain.
    • head -n 10 n'affiche que les 10 premières lignes de la sortie.
    • | est un tube (pipe), qui transmet la sortie d'une commande comme entrée à la suivante.

    Cette commande est un excellent exemple de la façon dont nous pouvons combiner des commandes Linux simples pour effectuer des opérations plus complexes.

La commande du est inestimable lorsque vous essayez de libérer de l'espace disque. Elle vous aide à identifier quels répertoires ou fichiers occupent le plus de place, afin que vous sachiez où concentrer vos efforts de nettoyage.

Créer et gérer un disque virtuel

Avant de commencer, comprenons ce qu'est un disque virtuel. Un disque virtuel est simplement un fichier qui agit comme un lecteur de disque physique. Considérez-le comme la création d'un fichier conteneur que le système d'exploitation peut traiter comme s'il s'agissait d'un vrai disque dur. C'est similaire à la façon dont les machines virtuelles utilisent des fichiers de disque virtuel pour stocker leurs données.

Pourquoi voudrions-nous faire cela ? Les disques virtuels sont utiles pour :

  • Tester des opérations sur disque en toute sécurité sans risquer le matériel réel.
  • Créer des espaces de stockage isolés.
  • Apprendre la gestion des disques sans avoir besoin de matériel physique supplémentaire.
  • Créer des images de sauvegarde de disques réels.

Comprendre les concepts clés

Avant de passer à la partie pratique, comprenons quelques concepts importants :

  1. Système de fichiers (Filesystem) : Considérez un système de fichiers comme la manière dont les fichiers et les dossiers sont organisés sur un disque. C'est comme un système de classement dans un bureau : il détermine comment les données sont stockées et récupérées. Les systèmes de fichiers Linux courants incluent ext4 (que nous utiliserons), XFS et btrfs.

  2. Montage (Mounting) : Le montage est le processus consistant à rendre un système de fichiers accessible au système d'exploitation. Lorsque vous montez un système de fichiers, vous dites à Linux : "rend le contenu de ce disque disponible à ce répertoire spécifique". C'est similaire à :

    • Brancher une clé USB (la connexion physique).
    • Puis dire à l'ordinateur où afficher son contenu (le point de montage).
  3. Partitions : Une partition est une section d'un disque traitée comme une unité distincte. Considérez cela comme la division d'un grand disque dur en sections plus petites et indépendantes. Les raisons du partitionnement incluent :

    • Séparer les fichiers système des fichiers utilisateur.
    • Utiliser différents systèmes de fichiers à des fins différentes.
    • Faciliter les sauvegardes.
    • Limiter l'impact des pannes de disque.

Créons et travaillons avec un disque virtuel :

  1. Tout d'abord, créons un disque virtuel de 256 Mo en utilisant la commande dd :

    dd if=/dev/zero of=virtual.img bs=1M count=256
    

    Décomposons cette commande :

    • dd est un utilitaire pour copier et convertir des fichiers.
    • if=/dev/zero signifie "le fichier d'entrée est /dev/zero" (un fichier spécial qui fournit une infinité de zéros).
    • of=virtual.img signifie "le fichier de sortie est virtual.img" (notre nouveau fichier de disque virtuel).
    • bs=1M définit la taille de bloc à 1 mégaoctet (combien de données copier à la fois).
    • count=256 signifie copier 256 blocs (ce qui donne un fichier de 256 Mo).

    Cela crée un fichier vide rempli de zéros que nous utiliserons comme disque virtuel.

  2. Vérifiez la taille du fichier :

    ls -lh virtual.img
    

    Vous devriez voir que virtual.img fait exactement 256 Mo.

  3. Maintenant, formatons ce disque virtuel avec un système de fichiers ext4 :

    sudo mkfs.ext4 virtual.img
    

    Que se passe-t-il ici ? Cette commande :

    • Crée un nouveau système de fichiers ext4 à l'intérieur de notre fichier de disque virtuel.
    • Met en place la structure de base nécessaire pour stocker des fichiers et des répertoires.
    • Est similaire au formatage d'une nouvelle clé USB avant la première utilisation.

    Le système de fichiers ext4 est la valeur par défaut pour de nombreuses distributions Linux car il est fiable et bien testé.

  4. Ensuite, nous devons créer un point de montage. Il s'agit du répertoire où le contenu de notre disque virtuel apparaîtra :

    sudo mkdir /mnt/virtualdisk
    

    Considérez un point de montage comme une "fenêtre" sur votre disque virtuel. Après le montage, lorsque vous regardez dans ce répertoire, vous voyez en réalité le contenu du disque virtuel.

  5. Maintenant, nous pouvons monter le disque virtuel :

    sudo mount -o loop virtual.img /mnt/virtualdisk
    

    Décomposons ce qui se passe :

    • L'option -o loop indique à Linux de traiter notre fichier comme s'il s'agissait d'un véritable périphérique de disque.
    • virtual.img est notre source (le disque virtuel que nous avons créé).
    • /mnt/virtualdisk est l'endroit où nous voulons que le contenu apparaisse.

    C'est similaire à ce qui se passe automatiquement lorsque vous branchez une clé USB, sauf que nous le faisons manuellement avec notre fichier de disque virtuel.

  6. Vérifions que le disque est monté :

    mount | grep virtualdisk
    

    Vous devriez voir une ligne indiquant que virtual.img est monté sur /mnt/virtualdisk.

  7. Maintenant qu'il est monté, nous pouvons l'utiliser comme n'importe quel autre répertoire. Créons un fichier :

    sudo touch /mnt/virtualdisk/testfile
    ls /mnt/virtualdisk
    

    Vous devriez voir testfile listé.

  8. Lorsque vous avez fini d'utiliser le disque virtuel, vous devez le démonter :

    sudo umount /mnt/virtualdisk
    

    Le démontage supprime le système de fichiers de ce répertoire, garantissant que le système d'exploitation termine toutes les opérations de lecture et d'écriture en attente avant de le détacher. Ne pas démonter correctement peut entraîner une corruption des données. Bien que la syntaxe de la commande se concentre sur le démontage du répertoire, en arrière-plan, le système d'exploitation sait que ce répertoire correspond à l'image disque montée.

Ce processus de création, de formatage et de montage d'un disque virtuel est très similaire à ce qui se passe lorsque vous branchez un nouveau disque dur ou une clé USB. La principale différence est que nous faisons tout avec un fichier au lieu d'un périphérique physique.

Monter un système de fichiers signifie l'attacher à un répertoire spécifié afin que le système d'exploitation puisse accéder aux données qu'il contient. Dans ce laboratoire, le fichier image du disque virtuel est traité comme s'il s'agissait d'un disque physique, et le montage rend son contenu disponible dans un répertoire particulier (par exemple, /mnt/virtualdisk).

Gérer les partitions de disque avec fdisk

Dans un système réel, avant de pouvoir créer un système de fichiers, vous devez souvent créer des partitions. Bien que nous ne puissions pas modifier les partitions de disque réelles dans cet environnement virtuel, nous pouvons explorer comment utiliser fdisk pour afficher les informations de partition.

  1. Tout d'abord, affichons les informations sur toutes les partitions de disque :

    sudo fdisk -l
    

    Cela affichera des informations sur tous les périphériques de disque et leurs partitions. Vous verrez des détails sur la taille du disque, le nombre de secteurs et la table de partition.

  2. Maintenant, regardons les informations de partition pour notre disque virtuel :

    sudo fdisk -l virtual.img
    

    Cela vous montrera la table de partition du disque virtuel. Comme nous avons créé le système de fichiers directement sur l'image disque sans partitionnement, vous pourriez voir un message indiquant qu'il ne contient pas de table de partition valide.

Dans un système réel, vous utiliseriez fdisk de manière interactive pour créer, supprimer ou modifier des partitions. Voici un bref aperçu de la façon dont cela fonctionnerait :

  • Vous lanceriez fdisk avec sudo fdisk /dev/sdX (remplacez X par la lettre appropriée pour le disque que vous souhaitez partitionner).
  • Vous utiliseriez la commande 'n' pour créer une nouvelle partition.
  • 'd' supprimerait une partition.
  • 't' modifierait l'identifiant système d'une partition (qui indique l'utilisation prévue de la partition).
  • 'w' écrirait les modifications et quitterait.

N'oubliez pas que la modification des partitions peut entraîner une perte de données, soyez donc toujours prudent et sauvegardez les données importantes avant d'apporter des modifications aux partitions de disque.

Fdisk ne se limite pas à l'affichage des informations de partition. Il peut également créer, supprimer et modifier des partitions de disque de manière interactive. Bien qu'il s'agisse d'un outil essentiel pour le partitionnement de disque, soyez prudent lorsque vous utilisez fdisk pour modifier des partitions sur un système contenant des données critiques ; des modifications inappropriées peuvent entraîner une perte de données.

Résumé

Félicitations ! Dans ce laboratoire, vous avez appris à :

  1. Visualiser l'utilisation du disque avec df.
  2. Examiner la taille des répertoires avec du.
  3. Créer, formater, monter et démonter un disque virtuel.
  4. Afficher les informations de partition avec fdisk.

Ces compétences constituent une base pour des tâches d'administration système Linux plus avancées. Elles sont cruciales pour gérer le stockage, résoudre les problèmes d'espace disque et maintenir la santé du système de fichiers dans les systèmes Linux.

En guise de défi supplémentaire, essayez d'écrire un script shell qui trouve les 10 fichiers ou répertoires les plus volumineux de votre répertoire personnel et affiche leurs tailles dans un format lisible par l'humain. Cela combinera plusieurs des commandes que vous avez apprises dans ce laboratoire.

N'oubliez pas que la pratique est la clé pour maîtriser ces concepts. N'hésitez pas à expérimenter avec ces commandes (dans un environnement sûr) pour approfondir votre compréhension. Bonne chance dans votre parcours d'apprentissage continu de l'administration système Linux !