12 - Gestion des disques

Introduction

En Linux il n’existe qu’un seul système de fichier: /.

Les autres systèmes de fichiers ne seront pas des racines comme dans Windows.

Tous les périphériques matériels, incluant les disques, se retrouvent dans le répertoire /dev.

Les disques seront présents sous forme de fichier de type bloc.

Il n’est pas possible de les utiliser directement, il faudra:

  • Créer un ou plusieurs partitions

  • Formater la partition (création d’un système de fichiers)

  • Monter la partition (lui donner un chemin d’accès)

Ajout de disques

Lorsque vous ajoutez un disque dans une machine Linux (disque réel ou virtuel), un nouvel objet apparait dans le répertoire /dev.

Il sera nommé sd[x] pour les disques SCSI ou hd[x] pour les disques IDE.

La 3eme lettre sera assignée dans l’ordre. Si “a” est pris alors ce sera “b”, si “b” est pris ce sera “c”.

Attention: un disque ne possède pas de numéro à la fin.

Pour voir tous vos disques, vous pouvez utiliser:

$ ls /dev/sd*
$ ls /dev/hd*

Avec VMWare, la règle d’assignation des noms de disques dans les VMs est la suivante:

  • Un disque sera nommé sd[a-z] sauf si le pilote utilisé est SCSI.

  • Un disque sera nommé hd[a-z] si le pilote utilisé est IDE.

Les partitions sont ensuite numérotées pour chaque disque:

  • sda1, sda2,…

  • hda1, hda2,…

Création de partitions

Après l’ajout de disques, ils doivent être partitionnés.

La commande fdisk permet de manipuler et afficher les partitions.

fdisk -l permet d’afficher toutes les partitions de tous les disques présents.

$ fdisk -l

Disque /dev/sda : 64.4 Go, 64424509440 octets, 125829120 secteurs
Unités = secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0x00011277

Périphérique Amorçage  Début         Fin      Blocs    Id. Système
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   125829119    61864960   8e  Linux LVM

Disque /dev/mapper/centos-root : 41.1 Go, 41120956416 octets, 80314368 secteurs
Unités = secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets


Disque /dev/mapper/centos-swap : 2147 Mo, 2147483648 octets, 4194304 secteurs
Unités = secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets


Disque /dev/mapper/centos-home : 20.1 Go, 20073938944 octets, 39206912 secteurs
Unités = secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets

On voit les tailles (en blocs), le type, s’il s’agit de la partition d’amorçage.

Il est possible de créer un maximum de 4 partitions principales sur un disque ou alors une partition principale, une partition étendue dans laquelle on peut créer autant de partitions que l’on souhaite.

La création de partition se fait grâce à fdisk.

Pour créer des partitions, on utilise le disque, pas les partitions (jamais de numéro à la fin):

$ fdisk /dev/sdb

Ensuite plusieurs options sont disponibles mais la création standard se fait avec les commandes suivantes:

  • n Nouvelle partition

  • p Partition principale

  • Entrée Accepter le numéro de partition par défaut (s’il y en a un sinon le spécifier)

  • Entrée Numéro du bloc de départ (peut être accepté ou spécifier)

  • Entrée Numéro du bloc de fin(peut être accepté ou spécifier)

  • w Sauvegarder et quitter (avant ça aucune modification n’a eu lieu)

Une fois les partitions créées, elles apparaissent dans /dev.

Les partitions de /dev/sda seront donc:

  • /dev/sda1

  • /dev/sda2

C’est sur ces partitions que nous pourrons travailler: création de systèmes de fichiers et montage.

Création du système de fichiers

Une fois les partitions créées, elles ne sont toujours pas utilisables car il n’y a pas système de fichier dessus.

Il faudra en créer un grâce à la commande mkfs.

Chaque partition du disque peut avoir un système de fichier différent: FAT, FAT32, EXT2, EXT3, EXT4, BTRFS, XFS… (Linux ne gère pas NTFS).

Deux façons existent de créer un système de fichier:

$ mkfs -t ext4 /dev/sdb1
$ mkfs.ext4 /dev/sdb1

Les deux commandes sont équivalentes.

Maintenant les partitions sont utilisables, il ne reste qu’à leur donner un chemin d’accès pour pouvoir y accéder.

Montage des systèmes de fichiers

Maintenant que nous avons des partitions utilisables, il faut pouvoir y accéder.

Il faut les placer quelque part, leur donner un chemin d’accès.

Pour ceci nous allons les placer dans un répertoire vide (n’importe où dans l’arborescence).

Si le répertoire n’est pas vide, les données disparaitront jusqu’à ce que vous démontiez le système de fichiers.

Chaque partition doit avoir son propre chemin d’accès.

Vous ne pouvez pas placer plusieurs partitions dans le même répertoire.

Une fois la partition montée dans le répertoire, tout ce que vous écrirez dans le répertoire sera placé dans la partition.

Deux méthodes existent pour monter un système de fichier:

  • Une méthode manuelle mais non persistante (au prochain redémarrage la partition ne sera plus montée).

  • Une méthode automatique et permanente.

La méthode manuelle

$ mount  
$ mount /dev/sdb1 /root/data

Pour valider l’opération:

$ df -h

Maintenant, lorsque vous accédez au répertoire dans lequel est montée la partition, vous écrirez dans la nouvelle partition.

Dans notre exemple, il suffira d’écrire dans le répertoire: /root/data.

Vous pouvez monter autant de partitions que vous le souhaitez mais dans des répertoires différents.

La commande mount permet de monter un système de fichiers mais ce montage ne sera pas permanent et il aura disparu en cas de redémarrage de la machine.

La méthode automatique

Pour le rendre permanent, il faudra modifier le fichier /etc/fstab qui contient les partitions à monter au démarrage.

ATTENTION: une erreur dans le fichier /etc/fstab empêche le système de démarrer au-delà du niveau d’exécution 1.

Il faudra alors corriger le problème pour pouvoir aller plus loin.

Voici comment modifier le fichier /etc/fstab, en ajoutant la ligne suivante:

/dev/sdb1 	/root/data	ext4     defaults        0 0

Exercice

Ajoutez un disque à votre VM et trouvez le dans /dev.

Créez deux partitions de taille égale sur ce disque.

Formatez une des partitions en ext4 et l’autre en FAT 32.

Montez la partition en ext4 dans le répertoire /mnt.

Montez la partition en FAT 32 dans /home/<vous>/disk.

Rendez ces deux montages permanents.