Gestion des disques
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/
Ici, on monte la partition sur le dossier /opt. On peut maintenant vérifier que la partition est bien montée:
# 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 ce chevauchants.
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