Gestion des disques

De The Linux Craftsman
Aller à la navigation Aller à la recherche

fdisk

fdisk est un utilitaire qui permet de manipuler les tables de partitions, c'est à dire de les créer, supprimer ou lister.

Lister les partitions

Commençons par lister les partitions présentes:

fdisk -l

Disque /dev/sda: 8589 Mo, 8589934592 octets
255 têtes, 63 secteurs/piste, 1044 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x000dca47

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sda1   *           1          64      512000   83  Linux
La partition 1 ne se termine pas sur une frontière de cylindre.
/dev/sda2              64        1045     7875584   8e  Linux LVM

Disque /dev/sdb: 536 Mo, 536870912 octets
64 têtes, 32 secteurs/piste, 512 cylindres
Unités = cylindres de 2048 * 512 = 1048576 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x00000000

Disque /dev/mapper/VolGroup-lv_swap: 855 Mo, 855638016 octets
255 têtes, 63 secteurs/piste, 104 cylindres
Unités = cylindres de 16065 * 512 = 8225280 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x00000000

Sur cette machine virtuelle, il y a 5 disques durs:

  • sda → pour le système et qui contient deux partitions;
  • sdb → vide.


Création d'une partition

Nous allons créer une partition sur le disque sdb. Pour cela, il faut lancer fdisk en précisant le nom du disque:

fdisk /dev/sdb

Le périphérique ne contient pas une table de partitions DOS ou Sun, SGI, OSF valide
Création d'une nouvelle étiquette DOS avec id de disque 0x48e43534.
Les modifications restent en mémoire jusqu'à ce que vous les écriviez.
Après quoi, bien sûr, le contenu précédent sera irrécupérable.

AVERTISSEMENT: fanion 0x0000 non valide dans la table de partitions 4, sera corrigé par w(écriture)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Commande (m pour l'aide):

Grâce à l'option m on peut lister les différentes commandes de fdisk:

Commande d'action
   a   bascule le fanion d'amorce
   b   éditer l'étiquette BSD du disque
   c   basculer le fanion de compatibilité DOS
   d   supprimer la partition
   l   lister les types de partitions connues
   m   afficher ce menu
   n   ajouter une nouvelle partition
   o   créer une nouvelle table vide de partitions DOS
   p   afficher la table de partitions
   q   quitter sans enregistrer les changements
   s   créer une nouvelle étiquette vide pour disque de type Sun
   t   modifier l'id de système de fichiers d'une partition
   u   modifier les unités d'affichage/saisie
   v   vérifier la table de partitions
   w   écrire la table sur le disque et quitter
   x   fonctions avancées (pour experts seulement)

Nous allons utiliser l'option n (new) pour ajouter une nouvelle partition:

Commande (m pour l'aide): n
Commande d'action
   e   étendue
   p   partition primaire (1-4)
p
Numéro de partition (1-4): 1
Premier cylindre (1-512, par défaut 1):
Utilisation de la valeur par défaut 1
Dernier cylindre, +cylindres or +taille{K,M,G} (1-512, par défaut 512):
Utilisation de la valeur par défaut 512

Commande (m pour l'aide):

Nous avons créé une partition principale (p) puis entré son numéro (1) et ensuite laissé les choix par défauts.

Maintenant que la partition est créée, il faut sauvegarder les changements en écrivant les nœuds d'index (inodes).

Commande (m pour l'aide): w
La table de partitions a été altérée!

Appel de ioctl() pour relire la table de partitions.
Synchronisation des disques.

Vous pouvez constater que le disque /dev/sdb possède bien une nouvelle partition (/dev/sdb1):

# fdisk -l /dev/sdb

Disque /dev/sdb: 536 Mo, 536870912 octets
64 têtes, 32 secteurs/piste, 512 cylindres
Unités = cylindres de 2048 * 512 = 1048576 octets
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identifiant de disque : 0x48e43534

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdb1               1         512      524272   83  Linux

Formatage

Avant de pouvoir écrire le quelconque fichier sur ce disque, il faut formater la partition et pour cela nous allons utiliser l'utilitaire mkfs.

# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Étiquette de système de fichiers=
Type de système d'exploitation : Linux
Taille de bloc=1024 (log=0)
Taille de fragment=1024 (log=0)
« Stride » = 0 blocs, « Stripe width » = 0 blocs
131072 i-noeuds, 524272 blocs
26213 blocs (5.00%) réservés pour le super utilisateur
Premier bloc de données=1
Nombre maximum de blocs du système de fichiers=67633152
64 groupes de blocs
8192 blocs par groupe, 8192 fragments par groupe
2048 i-noeuds par groupe
Superblocs de secours stockés sur les blocs :
        8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Écriture des tables d'i-noeuds : complété
Création du journal (8192 blocs) : complété
Écriture des superblocs et de l'information de comptabilité du système de
fichiers : complété

Le système de fichiers sera automatiquement vérifié tous les 38 montages ou
après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i
pour écraser la valeur.

mount

Maintenant que la partition est créée et formatée, il faut préciser le point de montage pour pouvoir y accéder depuis le système de fichier.

Pour cela nous allons utiliser mount:

# mount /dev/sdb1 /opt/

On monte la partition sur le dossier /opt. On peut maintenant vérifier que la partition est bien montée:

  • soit en listant le contenu du répertoire /opt
# ll /opt/
total 12
drwx------. 2 root root 12288  2 oct.  22:18 lost+found

Le dossier lost+found sert à fsck, utilitaire de récupération des fichiers, pour stocker les blocs utilisés mais non attribués ou se chevauchants.

  • Soit en utilisant la commande mount
# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
/dev/sdb1 on /opt type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

Info utile: Si vous voulez monter une image ISO, vous pouvez utiliser la commande suivante:

mount -o loop mon_image.iso /opt

fstab

Le problème de la commande mount est qu'elle ne résiste pas au redémarrage et pour que le disque soit monté à chaque démarrage, il faut modifier le fichier /etc/fstab.

C'est dans ce fichier que sont renseigné les informations à propos des systèmes de fichiers et des points de montage.

# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Tue Sep 30 10:57:02 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=27817ca8-2890-4b91-8a7b-4b2023499633 /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

Notre partition /dev/sdb1 n'y figure pas mais nous allons remédier à cela. Avant d'aller plus loin, il faut savoir qu'il y a deux façons de désigner les partitions:

  • soit par le périphérique qui les contients: /dev/sda1, /dev/sdb1
  • soit par leurs noms ou UUID: 27817ca8-2890-4b91-8a7b-4b2023499633

Pour avoir les UUID de vos partitions utilisez la commande blkid:

# blkid
/dev/sda1: UUID="27817ca8-2890-4b91-8a7b-4b2023499633" TYPE="ext4"
/dev/sda2: UUID="Q3JwEa-iLF2-3v9D-Gh8J-OeO6-uKid-zJXKnL" TYPE="LVM2_member"
/dev/sdb1: UUID="4632d498-204d-43de-9bd1-f5fcf807118f" TYPE="ext4"
/dev/mapper/VolGroup-lv_root: UUID="05ac331c-df97-4ab0-aaa6-fc71b34c14c3" TYPE="ext4"
/dev/mapper/VolGroup-lv_swap: UUID="de0162fd-9cd7-4d6a-823a-f67e0ed61906" TYPE="swap"

On peut maintenant ajouter la ligne suivante à la fin du fichier:

UUID="4632d498-204d-43de-9bd1-f5fcf807118f" /opt ext4 defaults 0 2

ou bien :

/dev/sdb1 /opt ext4 defaults 0 2

mdadm

Maintenant que l'on sait créer une partition, formater un disque et le monter, nous allons aller un peu plus loin en manipulant non pas un disque mais une grappe de disques !

L'utilitaire mdadm permet de faire ce que l'on appel du RAID logiciel.

Pour cela nous allons avoir besoin de au moins 2 disques