Friday, October 28, 2016

CentOS - 13 : disques et partitions - lsblk et fdisk


Disques et partitions sous CentOS


CentOS est compatible avec toutes sortes de disques : IDE/SATA, SCSI/SAS et les plus récents SSD.

Ce sont des fichiers dans le répertoire /dev qui constituent le lien entre le système d'exploitation et les différents disques disponibles. Il en va de même pour les autres périphériques d'ailleurs.

Ces disques (et les partitions) sont désignés de la manière suivante :

xxyN

  • xx - indique le type de disque dur : hd pour les IDE et sd pour les SCSCI, SATA et SAS.
  • y - indique le disque dur à partir de "a", soit a, b, c, etc..

Un exemple :

sda

C'est le premier disque dur du système

  • N - représente la partition. C'est un chiffre, à compter de 1.

sda1 - C'est la première partition du premier disque dur.


sda2 - Ce serait la seconde partition.


sdb1 - Ce serait la première partition du second disque dur.


Allons jeter un coup d'oeil dans le répertoire /dev afin de voir les différents types de périphériques disponibles et en particulier les disques durs.

Précisons que nous nous servons d'une machine virtuelle avec le matériel suivant pour cet exercice :


Note : il s'agit des propriétés de la machine virtuelle dans VMware Workstation.

 Et voici ce que nous pouvons voir dans le répertoire /dev :



Je ne ferais que quelques remarques...
  • Les objets en bleu sont des dossiers et les objets en jaune de "simples" fichiers. Les fichiers exécutables seraient en vert. Ce sont les fichiers jaune qui nous intéressent.
  • fd0 représente le lecteur de disque "floppy". Je ne m'explique pas sa présence étant donné l'absence d'un tel périphérique dans mon système.
  • Nous avons un seul disque dur - sda - avec deux partitions : sda1 et sda2.
  • sda représente le disque lui-même et contient le MBR (Master Boot Record). Le MBR réside en dehors de toute partition particulière.
  • sr0 représente le lecteur de CD/DVD et cdrom est un lien symbolique vers ce lecteur.

J'ai désigné l'objet "tty1" d'un point rouge parce qu'il m'a intrigué. Je m'aperçois de cette séquence de lettres et de chiffres chaque fois que j'ouvre une session :


De quoi s'agit-il ?

Si j'ai bien compris, il représente la console à laquelle je me suis trouvé lorsque j'ai ouvert la dernière session. Autrefois, il y avait une distinction entre "console" (visible elle aussi d'ailleurs parmi les fichiers contenus dans /dev) et les nombreux fichiers tty*. La console était bien la console et les fichiers tty* représentaient les périphériques en série qu'on pouvait brancher sur le serveur. Aujourd'hui, les fichiers tty* représentent des consoles virtuelles, à compter de tty1.

Si nous voulons cibler un type de périphérique, nous pouvons peaufiner l'affichage avec grep :



Mais comment faire pour obtenir plus d'informations sur les disques en question ? Par exemple, quelle en est la taille ? Et comment faire pour afficher les seuls disques du système au lieu de l'ensemble des périphériques ?


lsblk est une commande susceptible de fournir au moins certaines réponses à ces questions :


Outre fd0 et sr0, nous avons un disque dur (sda) de 20 Go avec une partition de démarrage (sda1) de 500 Mo et une autre partition de 19,5 Go (sda2). Nous avons donc des disques (type = disk), un seul en fait ; des partitions (type = part) et puis quelque chose du type "lvm".

LVM (Logical Volume Manager) permet de rassembler des disques physiques et même des partitions physiques en un "fond commun" à partir duquel on peut tailler de nouvelles "partitions logiques". Suivant l'arborescence dans la capture d'écran ci-dessus, nous constatons que la partition physique sda2 se découpe en deux partitions logiques : centos-root et centos-swap. La première, à 17,5 Go, est la partition principale et la second, à 2 Go, joue le rôle de fichier de pagination (swap file) dans le monde Windows. En fait, Linux peut recourir à un fichier pour la pagination mais l'utilisation d'une partition dédiée est préférée.

Note : je ne traite pas davantage de LVM dans ce billet.


lsblk --fs nous montre le système de fichiers choisi pour les partitions :



xfs est le système de fichiers de CentOS7 / RHEL7 par défaut. ext3 et ext4 figurent parmi les autres options.

***

Mais comment faire pour créer une partition ou en supprimer une? Nous pouvons choisir entre plusieurs outils : fdisk, gdisk et parted. Je me servirai de fdisk dans ce billet.

Note : fdisk est capable de gérer des partitions d'une taille maximale de 2 To. Il faut recourir à gdisk ou parted pour des partitions plus grandes.

De même que lsblk, fdisk est capable d'afficher la liste des disques installés dans le système :

fdisk -l

Cette commande inclut tous les disques. Pour cibler un disque en particulier, nous saisissons cette commande :

fdisk -l /dev/sda

Note : à supposer que ce soit le disque sda qui nous intéresse.


Pour cette expérience, j'ai ajouté un second disque (virtuel) de 20 Go.




Comme je m'y attendais, fdisk et lsblk présentent ce disque sous le nom de "sdb", par exemple :



Alors, comment fait-on pour créer une nouvelle partition sur le disque /dev/sdb ?

D'abord, nous exécutons fdisk en désignant bien /dev/sdb, soit :

fdisk /dev/sdb

Voilà ce qui s'affiche :


Note : vous pouvez cliquer sur les images pour les agrandir.

Nous choisissons les options suivantes :

  • n - pour nouvelle partition
  • p - pour partition primaire
  • 1 - pour la première partition (ou rien, car 1 est la valeur par défaut)

Pour une partition de 1 Go, nous appuyons sur Entrée/Retour pour le premier secteur et +1G pour le dernier secteur.

Et surtout... nous tapons bien "w" ("write") à la fin pour que le changement prenne effet : 



Nous pouvons confirmer la création de la nouvelle partition avec lsblk :



Je répète les mêmes étapes pour la création d'une seconde partition de 1 Go sur /dev/sdb :



Encore une fois, la nouvelle partition est visible dans la sortie de la commande lsblk :



Nous pouvons voir les choses d'une autre perspective avec fdisk qui montre en particulier quelle partition est la partition d'amorçage :



Mais comment supprimer une partition ?

Dans l'exemple ci-dessous, je vais supprimer la seconde partition du second disque dur.

Nous ciblons le second disque dur avec la command suivante :

fdisk /dev/sdb

Et puis...

  • d - pour supprimer ("delete")
  • 2 - pour choisir la seconde partition


Nous pouvons constater (toujours dans la capture d'écran ci-dessus) l'absence de la partition sdb2 que nous venons de supprimer.

Mais surtout, il faut taper "w" pour que la suppression soit effective.

Comme nous pouvons nous y attendre, l'outil lsblk montre la même chose :



***

Et voilà une première incursion dans le monde des disque et partitions sous Linux. J'ai l'intention d'en examiner d'autres aspects ainsi que les systèmes de fichiers dans les billets de blogues à venir.

No comments:

Post a Comment