Bravo, vous avez maintenant installé votre premier serveur. Dans cette partie, vous allez approfondir vos compétences de gestion du stockage sous Linux. C’est une partie importante car la fiabilité et les performances de votre système en dépendent.
D’ici la fin de ce cours, vous aimeriez pouvoir utiliser votre nouveau serveur pour partager des fichiers sur votre réseau local. Nous allons pour cela dédier un disque dur au stockage de ces données.
Ajoutez un disque dur à votre serveur
Éteignez la machine vm-serveur
et dans VirtualBox, allez dans “configuration”.
Dans la section “Stockage”, cliquez sur “Ajouter un disque dur” au niveau de votre Contrôleur SATA puis sur “Créer un nouveau disque”. Laissez le type de fichier par défaut, choisissez un fichier de taille fixe, donnez-lui un nom et allouez-lui une taille de 1Go (oui d’accord, on ne stockera pas beaucoup de fichiers avec un disque dur pareil).
Maintenant que votre nouveau disque dur est “physiquement” créé, vous pouvez redémarrer le serveur vm-serveur
.
Pour pouvoir utiliser votre nouveau disque, il vous reste à :
créer au moins une partition sur ce disque,
formater cette partition,
monter cette partition.
Nous allons voir ensemble chacune de ces étapes par la suite.
Partitionnez votre nouveau disque
Vous vous souvenez peut-être que sous Linux les périphériques systèmes sont représentés par des fichiers dans /dev. En particulier, les disques durs SCSI (et en fait maintenant presque tous les disques sont gérés comme des disques SCSI) sont représentés par des fichiers de type /dev/sda
, /dev/sdb
, etc. La dernière lettre correspond à l’ordre dans lequel les disques sont reconnus.
$ ls -l /dev/sd* brw-rw---- 1 root disk 8, 0 avril 19 09:54 /dev/sda brw-rw---- 1 root disk 8, 1 avril 19 09:54 /dev/sda1 brw-rw---- 1 root disk 8, 2 avril 19 09:54 /dev/sda2 brw-rw---- 1 root disk 8, 16 avril 19 09:54 /dev/sd
On voit ici le disque système/dev/sda
sur lequel l’installation par défaut a créé deux partitions /dev/sda1
et/dev/sda2
. Nous voyons également le nouveau disque /dev/sdb
. Sans surprise, on ne trouve pas encore de /dev/sdb1
car nous n’avons pas encore créé de partition sur ce disque. C’est ce que nous allons faire maintenant grâce à l’utilitaire gdisk.
Commençons par obtenir des informations sur nos disques avec l’option -l
suivie du fichier périphérique à examiner. Comme vous avez pu le remarquer, pour avoir accès aux fichiers périphériques, il nous faut utiliser la commande sudo
ou être connecté avec le compte root :
$ sudo gdisk -l /dev/sda #pour les informations sur le disque système de 10Go GPT fdisk (gdisk) version 1.0.5 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/sda: 20971520 sectors, 10.0 GiB Model: VBOX HARDDISK Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): 386C4AE0-8E50-4A4C-B237-B7725DD332C7 Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 20971486 Partitions will be aligned on 2048-sector boundaries Total free space is 4029 sectors (2.0 MiB) Number Start (sector) End (sector) Size Code Name 1 2048 4095 1024.0 KiB EF02 2 4096 20969471 10.0 GiB 8300
$ sudo gdisk -l /dev/sdb #pour les informations sur le disque additionnel de 1Go GPT fdisk (gdisk) version 1.0.5 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Disk /dev/sdb: 2097152 sectors, 1024.0 MiB Model: VBOX HARDDISK Sector size (logical/physical): 512/512 bytes Disk identifier (GUID): 524B7433-5B72-48D0-B0BF-937AFEF7A1DB Partition table holds up to 128 entries Main partition table begins at sector 2 and ends at sector 33 First usable sector is 34, last usable sector is 2097118 Partitions will be aligned on 2048-sector boundaries Total free space is 2097085 sectors (1024.0 MiB) Number Start (sector) End (sector) Size Code Nam
Maintenant que vous êtes sûr que le disque additionnel dédié aux données est bien /dev/sdb
, créez une partition sur ce disque.
$ sudo gdisk /dev/sdb GPT fdisk (gdisk) version 1.0.5 Partition table scan: MBR: not present BSD: not present APM: not present GPT: not present Creating new GPT entries. Command (? for help): ? b back up GPT data to a file c change a partition's name d delete a partition i show detailed information on a partition l list known partition types n add a new partition o create a new empty GUID partition table (GPT) p print the partition table q quit without saving changes r recovery and transformation options (experts only) s sort partitions t change a partition's type code v verify disk w write table to disk and exit x extra functionality (experts only) ? print this men
Sans option, gdisk est un programme interactif.
En tapant?
puis “Entrée”, nous voyons la liste des commandes disponibles.
Entrez n
pour ajouter une nouvelle partition, comme indiqué dans la liste des commandes.
Command (? for help): n Partition number (1-128, default 1): First sector (34-2097118, default = 2048) or {+-}size{KMGTP}: Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem'
Vous pouvez alors accepter toutes les valeurs par défaut. Ce qui nous amène à créer une partition numéro1
qui commence au premier secteur disponible et termine au dernier secteur disponible (tout le disque donc). Un code indique alors que le système de fichiers de la partition sera un "système de fichiers Linux", ce qui nous va très bien.
N’hésitez pas à vérifier que votre nouvelle partition correspond bien à ce que nous voulons par la commande p
puis enregistrez les changements sur le disque avec w
.
Notez que votre système a tout de suite remarqué la création de cette nouvelle partition et a créé un fichier associé /dev/sdb1
.
À ce stade, vous avez juste écrit une table de partition au début de votre disque de données qui indique que ce disque contient une partition. Il vous faut maintenant la formater.
Formatez votre nouveau disque
Pour rappel, le système de fichier est à la partition ce que les étagères et le système de classement des livres sont à la bibliothèque. Nous allons formater cette nouvelle partition au format ext4 qui est actuellement le format par défaut sous Ubuntu et qui est un très bon choix pour la plupart des usages sous Linux. Pour cela, il suffit de taper la commande :
$ sudo mkfs -t ext4 /dev/sdb1
La commande mkfs
permet de créer un système de fichier. Avec -t ext4
, on précise qu’on veut un système ext4 et on donne en argument le fichier device /dev/sdb1
qu’on veut formater.
Votre nouveau disque dur est prêt. Pour l’utiliser, il ne reste plus qu’à le “monter”.
Montez votre nouveau disque
Pour rappel, sous Windows, les disques durs, lecteur cd et autres périphériques de stockage sont identifiés par une lettre. Sous Linux, la racine de notre arborescence se nomme /
puis on trouve des dossiers, des sous-dossiers, des sous-sous-dossiers, etc.
En fait, chaque partition/système de fichier possède sa propre racine /
mais pour pouvoir accéder à cette partition, il vous faut "monter", c’est à dire rattacher cette racine à un dossier de votre arborescence principale.
$ sudo su - #On devient root “à plein temps” # mkdir -p /var/data1/non_monte #Création d’un premier répertoire de montage # mkdir -p /mnt/mes_donnees/ #Création d’un deuxième répertoire de montage # mount -t ext4 /dev/sdb1 /mnt/mes_donnees # mkdir -p /mnt/mes_donnees/repertoire1
Ici, vous allez créer deux répertoires dont vous vous servirez de point de montage : /var/data1/non_monte
et/mnt/mes_donnees
.
Avec la commandemount
, vous allez monter la partition /dev/sdb1
dans le répertoire /mnt/mes_donnees
en précisant que le système de fichier est de type ext4.
Vous pouvez ensuite créer le répertoire repertoire1
à la racine de votre nouveau disque dur (premier niveau après le point de montage).
# umount /dev/sdb1 # ls /mnt/mes_donnees # mount -t ext4 /dev/sdb1 /var/data1 # ls /var/data1 lost+found repertoire1 # umount /var/data1 # ls /var/data1 non_monte
Pour démonter votre disque de données, rien de plus simple : utilisez la commandeumount
.
Comme le fichier de partition/dev/sdb1
et le répertoire de montage /mnt/mes_donnees
sont maintenant associés dans la table de montage, vous n’avez besoin de passer qu’un des deux en argument pour indiquer le lien à défaire.
Le répertoire/mnt/mes_donnees
est maintenant vide car le répertoire repertoire1
est sur le disque de données.
Vous devez ensuite monter /dev/sdb1
dans le répertoire/var/data1
.
Vous allez retrouver votre répertoire repertoire1
(et un mystérieux répertoirelost+found
dont nous parlerons dans le prochain chapitre).
Mais, le répertoire non_monte
qui était dans/var/data1
a disparu. Ce répertoire n’est pas perdu, mais il est inaccessible car “caché” par le montage que vous venez de réaliser par-dessus. Vous pourrez d’ailleurs retrouver ce répertoire dès que vous démonterez /dev/sdb1
.
Vous savez maintenant comment accéder à votre nouveau disque dur mais il serait quand même bien pratique qu’il puisse être monté automatiquement au démarrage du système. Pour ça, vous pouvez rajouter la ligne suivante à la fin du fichier/etc/fstab
:
/dev/sdb1 /var/data1 ext4 defaults 0 0
Chaque ligne du fichier /etc/fstab
comporte six champs séparés par des espaces ou des tabulations et qui indiquent dans l’ordre :
le périphérique à monter,
le point de montage,
le type de système de fichiers,
les options de montage séparées par des virgules (par défaut pour nous).
Je ne rentrerai pas ici dans le détail des deux derniers champs qui peuvent généralement être laissés à0 0
.
Au démarrage, le système va lancer la commandemount -a
qui montera tous les périphériques indiqués dans le fichier /etc/fstab
.
Je vous invite d’ailleurs à lancer cette commande manuellement (en root) pour monter votre disque de données.
En résumé
Vous avez :
ajouté un nouveau disque à votre serveur,
partitionné ce disque grâce à l’utilitaire gdisk,
formaté cette nouvelle partition au format ext4,
appris comment monter et démonter cette partition,
automatisé le montage de cette partition au démarrage du système.
Dans le chapitre suivant, nous en apprendrons plus sur le fichier ext4 et sur la manière de manipuler ce système de fichier.