Gestion des disques

État : {publie}

Retour au document principal

Pré-requis

Objectifs

Les disques

Sur un système Linux, les disques sont représentés par des fichiers dans le répertoire /dev. Le noyau communique avec les périphériques en utilisant une paire de numéros majeur et mineur. Les numéros majeurs sont listés dans /proc/devices. Par exemple, le numéro majeur pour le premier disque dur est 3 :

Block devices:
  1 ramdisk
  2 fd
  3 ide0

Les descripteurs de périphériques de /dev commencent par hd (IDE) ou sd (SCSI). Un lecteur de bande SCSI commencerait par st, etc. Les systèmes contiennent généralement plus d'un périphérique bloc, donc une lettre est ajoutée pour préciser le périphérique utilisé.

descripteur

Périphérique bloc physique

hda

Maître sur le premier contrôleur IDE

hdb

Esclave sur le premier contrôleur IDE

hdc

Maître sur le second contrôleur IDE

hdd

Esclave sur le second contrôleur IDE

sda

Premier disque SCSI

sdb

Second disque SCSI

Remarque : si vous insérez un disque SCSI avec un ID SCSI (par exemple 4) compris entre ceux de deux disques existants (par exemple 3 et 7), le descripteur du disque d'ID le plus haut se trouvera déplacé (par exemple il passera de sdb à sdc), ce qui peut causer quelques inconvénients non négligeables.

Partitions

Les disques peuvent être divisés en partitions. Celles-ci sont représentées par un numéro qui est ajouté au descripteur du disque :

Descripteur

Partition

hda1

Première partition sur le premier disque

hda2

Seconde partition sur le premier disque

sdc3

Troisième partition sur le troisième disque SCSI

Il est possible de créer 4 partitions principales sur les disques IDE. Une de ces partitions peut être étendue. Les partitions étendues permettent de créer autant de partitions logiques que désiré. On peut aller jusqu'à 64 partitions sur un disque IDE, 16 sur un disque SCSI.

Exemple 1 : 4 partitions principales

 +---+---+---+---+---+
 | M |   |   |   |   |
 | B | 1 | 2 | 3 | 4 |
 | R |   |   |   |   |
 +---+---+---+---+---+

Exemple 2 : 2 partitions principales dont une partition étendue (no 2) contenant 4 partitions logiques (no 5 à 8)

 +---+---+----------------------+
 |   |   |   [ ---------------] |
 | M |   |   [   |   |   |    ] |
 | B | 1 | 2 [ 5 | 6 | 7 | 8  ] |
 | R |   |   [   |   |   |    ] |
 |   |   |   [----------------] |
 +---+---+----------------------+

Sortie type de fdisk -l :

 Disque /dev/sda: 163.9 Go, 163928604672 octets
 255 heads, 63 sectors/track, 19929 cylinders
 Units = cylindres of 16065 * 512 = 8225280 bytes
 Identifiant disque: 0x0009e33d

 Périphérique Amorce    Début      Fin      Blocs    Id  Système
 /dev/sda1               1        122      979933+   83   Linux
 /dev/sda2             123       3769    29294527+   83   Linux
 /dev/sda3            3770       7416    29294527+   83   Linux
 /dev/sda4            7417      19929   100510672+    f   W95 Etendu (LBA)
 /dev/sda5            7417       9848    19535008+   83   Linux
 /dev/sda6            9849      10456     4883728+   83   Linux
 /dev/sda7           10457      11064     4883728+   83   Linux
 /dev/sda8           11065      12280     9767488+   83   Linux
 /dev/sda9           12281      12523     1951866    83   Linux
 /dev/sda10          12524      12766     1951866    82   Linux swap / Solaris
 /dev/sda11          12767      19929    57536766    83   Linux

Sur ce disque, il y a 4 partitions principales. La quatrième partition (/dev/sda4) est étendue et n'est pas utilisée directement, elle contient seulement les 7 partitions logiques sur lesquelles se trouvent les systèmes de fichiers.

Remarque : faites bien la distinction entre les différents types de partition. De plus, il est important de comprendre la convention de nommage pour les disques IDE.

Les programmes de partitionnement

Avant l'installation (non nécessaire à l'examen)

Fips ne sait gérer que les partitions en FAT16 et FAT32. PartitionMagic est beaucoup plus puissant, il sait traiter les partitions UNIX.

NdT : vous pouvez également utiliser parted et ses interfaces Qparted ou Gparted qui feront très bien le travail.

Il n'est pas nécessaire de partitionner si vous avez déjà deux partitions DOS/Windows C:\ et D:\ et que la partition D:\ est vide (et assez grande).

 +---+---------------+
 | M |               |
 | B |      C        |
 | R |               |
 +---+---------------+

 +---+------+--------+
 | M |      |        |
 | B |  C   |    D   |
 | R |      |        |
 +---+------+--------+

Pendant l'installation (non nécessaire pour la préparation de l'examen)

Pendant l'installation de Linux, vous pouvez créer vos partitions et les associer à des points de montage.

Les utilisateurs expérimentés peuvent le faire en deux étapes :

La plupart des distributions utilisent un programme facile d'accès vous permettant de réaliser ces deux étapes en une seule :

Enfin, pour les débutants et les administrateurs systèmes pressés, les dernières distributions réaliseront automatiquement le plan de partitionnement.

Sur un système en cours de fonctionnement

Sur un système installé, utilisez fdisk pour faire vos nouvelles partitions. Voyons la syntaxe de fdisk sur un exemple :

Partitionner le premier disque dur

Voici les 4 points à suivre pour créer de nouvelles partitions. Le quatrième point est généralement oublié. Cela force le système à relire la table des partitions dans le MBR.

Remarque : vous devez formater la nouvelle partition avec mkfs ou mke2fs avant de pouvoir l'utiliser.

C'est la fin de notre petit tour sur les outils de partitionnement. Attaquons-nous maintenant aux chargeurs de démarrage.

Chargeurs de démarrage (''Master Boot Record'')

Le MBR est placé sur le premier secteur du disque (512 octets) et contient la table des partitions ainsi qu'un chargeur d'amorçage. Au démarrage, le chargeur (bootloader) cherche la partition active dans la table de partitions et charge le premier secteur de cette partition.

Le chargeur de démarrage pour Linux : LILO

Grosso-modo, il y a trois choses à connaître sur LILO :

Lancez /sbin/lilo à chaque modification de /etc/lilo.conf.

GRUB (Grand Unified Bootloader)

GRUB s'installe également dans le MBR. On peut modifier le contenu du MBR en utilisant le shell de grub /sbin/grub ou en utilisant le fichier de configuration de grub /boot/grub/grub.conf qui est lu par /sbin/grub-install.

Des informations détaillées sur GRUB sont disponibles dans les pages info.

Principales parties de /boot/grub/grub.conf

Exemple de fichier grub.conf

 default=0
 timeout=10
 splashimage=(hd0,0)/grub/splash.xpm.gz
 title   Linux (2.4.18-14)
         root (hd0,0)
         kernel /vmlinuz-2.4.18-14 ro root=/dev/hda5
         initrd /initrd-2.4.18-14.img

Gestion des partitions

Au démarrage, le fichier /etc/fstab attribue les points de montage aux périphériques de type bloc.

Format de /etc/fstab

Exemple de /etc/fstab

 LABEL=/         /             ext2     defaults              1 1
 LABEL=/boot     /boot         ext2     defaults              1 2
 LABEL=/home     /home         ext3     defaults              1 2
 /dev/fd0        /mnt/floppy   auto     noauto,owner          0 0
 LABEL=/usr      /usr          ext2     defaults              1 2
 LABEL=/var      /var          ext3     defaults              1 2
 none            /proc         proc     defaults              0 0
 none            /dev/shm      tmpfs    defaults              0 0
 none            /dev/pts      devpts   gid=5,mode=620        0 0
 /dev/hdc9       swap,pri=-1   swap     defaults              0 0
 /dev/cdrom      /mnt/cdrom    iso9660  noauto,owner,kudzu,ro 0 0

La commande mount est utilisée pour rendre un périphérique accessible sur un répertoire (point de montage). La syntaxe de mount est :

 mount -t [SYSTÈME-FICHIERS] -o [OPTIONS] PÉRIPHÉRIQUE RÉPERTOIRE

Par exemple on montera un CD-ROM sur le point de montage /mnt/cdrom avec :

 mount -t iso9660 /dev/cdrom  /mnt/cdrom

Sur un système en fonctionnement, le fichier etc/fstab sert aussi de raccourci pour assigner un périphérique à un répertoire :

 mount /dev/cdrom

La commande mount lit /etc/fstab et déduit le système de fichier et le point de montage. Vous noterez que dans l'exemple de fstab précédent, nous accédons à certains périphériques via une étiquette (LABEL). Pour affecter une étiquette à un périphérique, utilisez la commande tune2fs :

 tune2fs -L /usr/local /dev/hdb12

Quelques options de mount

Remarque : pour l'examen, souvenez-vous que mount -a montera tous les systèmes de fichier de /etc/fstab qui ne sont pas déjà montés et qui n'ont pas l'option noauto.

La commande umount démonte un périphérique. Sa syntaxe est :

 umount PÉRIPHÉRIQUE ou POINT-DE-MONTAGE

Aviez-vous remarqué que cette commande comporte une faute d'orthographe anglaise !

Par exemple, les deux commandes suivantes démontent le CD-ROM :

 umount /dev/cdrom

ou

 umount /mnt/cdrom

Gestion des quotas

Les outils de gestion des quotas sous Linux permettent aux administrateurs de mettre en place les quotas sans devoir redémarrer le système. Voici les étapes à suivre :

 mount  -o remount  <nowiki><device> </nowiki>

 quotacheck -ca

 edquota -u <user>

Vous devez fixer une limite dépassable (soft) et une limite fixe (hard) pour l'espace disque utilisé (en blocs) et pour le nombre d'inodes pour chaque utilisateur. Le système autorisera l'utilisateur à dépasser la limite basse durant un certain temps (période de grâce). A l'expiration de cette période, la limite basse sera considérée comme limite haute.

 quotaon –a

Les utilisateurs peuvent connaître leur statut de quota avec la commande quota. L'administrateur système peut générer des rapports avec repquota ou quotastats.

Exercices et résumé

Questions de révision

Oui ou non :

  1. Lorsque LILO est installé et que vous avez modifié le fichier lilo.conf, il n'est pas nécessaire de relancer /sbin/lilo :
  2. Lorsque GRUB est installé et que vous avez modifié le fichier grub.conf, il n'est pas nécessaire de relancer grub-install :
  3. Si la racine est au-delà de la limite du cylindre 1024, il est possible que votre système Linux ne démarre pas :
  4. On ne peut utiliser les quotas que sur une partition dans son ensemble :

Voir les réponses

Glossaire

Terme

Description

partition

partie indépendante d'un disque dur qui peut soit être utilisée directement pour stocker des données, soit être divisée en partitions logiques. Toutes les partitions montées et manipulées par les systèmes d'exploitation ont des systèmes de fichiers séparés. De plus, elles sont considérées comme des périphériques indépendants. C'est pourquoi une partition sera parfois nommée "périphérique" parfois "système de fichiers".

partition principale

partition décrite dans l'un des enregistrements originaux de la table des partitions. Il n'y en a que 4 de disponible, donc les disques ne peuvent contenir que 4 partitions principales.

partition étendue

partition principale dont la description contient une liste de partitions, ce qui permet de créer des partitions nommées partitions logiques au delà des 4 primaires.

partition logique

partition contenue dans une partition étendue.

MBR

1er secteur du disque dur (512 octets) contenant le chargeur de démarrage et la table des partitions.

limite des 1024 cylindres

les anciens BIOS utilisent l'adressage CHS (pour Cylinder/Head/Sector = Cylindres / Têtes / Secteurs) : 10 bits pour le nombre de cylindres, 8 pour les têtes et 6 pour les secteurs. Ceci permet d'accéder à des disques d'une taille maximale de (210)*(28)*(2^6-1)*512 octets ce qui correspond à 8,5 Go. Lorsque vous lancez /sbin/lilo, les adresses sont données sous la forme CHS pour que le BIOS puisse les lire, à moins que vous n'utilisiez les modes linear ou lba32. Si la deuxième partie du chargeur d'amorçage /boot/boot.b est plus loin que le 1024ème cylindre après le MBR, le système ne pourra pas démarrer.

chargeur d'amorçage (ou de démarrage)

code stocké sur les 512 premiers octets du disque, lu par le BIOS et utilisé pour démarrer un système d'exploitation.

GRUB

GRand Unified Bootloader : chargeur d'amorçage permettant, au même titre que LILO, de choisir au démarrage de son ordinateur entre plusieurs systèmes d'exploitation.

LILO

LInux boot LOader.

quotas

restrictions définies sur le nombre d'inodes et la taille de disque pour l'utilisation d'un périphérique par un groupe ou un utilisateur.

grâce

délai de tolérance pour les dossiers ou les fichiers qui ont dépassé la limite basse des quotas fixés.

Fichiers

Fichier

Description

/boot/boot.b

deuxième partie (second stage) du chargeur d'amorçage LILO.

grub.conf

fichier de configuration de grub. NdT : vous trouverez également menu.lst.

/etc/fstab

fstab(5) – Le fichier fstab contient des informations décrivant les différents systèmes de fichiers. fstab est uniquement lu par les programmes, l'écriture est laissée à l'administrateur, qui doit créer et maintenir lui-même ce fichier.

/etc/lilo.conf

fichier de configuration lu par le programme d'installation du chargeur de démarrage /sbin/lilo

/proc/devices

périphériques vus sur le système et numéros majeurs associés

aquota.user

fichier de description des quotas se trouvant à la racine d'un périphérique sur lequel les quotas sont activés

Commandes

Commande

Description ou apropos

/sbin/lilo

cf lilo(8) – installe le chargeur de démarrage

edquota

cf edquota(8) – éditeur des quotas utilisateurs

fdisk

fdisk(8) – gestionnaire de tables de partitions pour Linux

grub-install

cf grub-install(8) - installe GRUB sur votre disque

mount

cf mount(8) – monte un système de fichiers

quotas

cf quota(1) – affiche l'utilisation et les limites pour un périphérique

quotacheck

cf quotacheck(8) – balaye un système de fichiers, crée, vérifie et répare les fichiers de description des quotas

quotaon / quotaoff

cf quotaon(8) / quotaoff – active ou désactive les quotas

quotastats

cf quotastats(8) – programme permettant de consulter les statistiques sur les quotas

repquota

cf repquota(8) – rapport résumé sur les quotas pour un système de fichiers

tune2fs

cf tune2fs(8) – Ajuster les paramètres des systèmes de fichiers ext2...

usrquota,grpquota

n'est pas une commande mais une option dans /etc/fstab qui permet d'activer les quotas sur un périphérique

umount

umount(8) – démonter des systèmes de fichiers

Travaux pratiques

  1. créez une nouvelle partition en utilisant fdisk sur /dev/hda

    fdisk /dev/hda

    Conseils : Pour créer une nouvelle partition, tapez n. Le type de la partition est par défaut 83 (Linux). Pour écrire la table de partition, tapez w. Le système doit relire la table de partition : REDÉMARREZ !

  2. Formatez une de vos partitions
    mkfs <périphérique>
    1. Créez un répertoire data à la racine

      mkdir /data
    2. Modifiez /etc/fstab et reliez le point de montage /data à la partition que vous avez précédemment formatée

      <périphérique>   /data  ext2  defaults   0 2
  3. Forcez mount à lire /etc/fstab :

    mount –a

    Si ça ne fonctionne pas, vérifiez le fichier fstab et assurez-vous que /data existe 2(i).

  4. Suivez les étapes décrites dans le cours pour activer les quotas sur ce périphérique

    À la deuxième étape, tapez mount et consultez sa sortie. Quelle option de /etc/fstab indique que les quotas sont activés sur le périphérique ?

    À la troisième étape, quel fichier est créé dans le répertoire /data ? _

    Avant de vérifier les quotas pour les utilisateurs normaux, ajoutez les permissions en lecture/écriture sur /data :

    chmod o+rw /data

    Dans les cas extrêmes, il pourrait être plus simple de redémarrer et de laisser les scripts de démarrage créer le fichier aquota.user ou aquota.group. Si les commandes quotas, repquota ou quotastats n'indiquent rien, assurez-vous que tout le monde a accès en lecture écriture sur /data : chmod a+rw /data

  5. (FACULTATIF) Monter un partage NFS

    Le formateur a un partage NFS. Déterminez quel répertoire est partagé et modifiez /etc/fstab pour monter ce partage sur /mnt/nfs. Utilisez l'option noauto pour ne pas monter le partage au démarrage.

  6. Changement de chargeur de démarrage
    1. Désinstallez LILO du MBR ou de la disquette :
      lilo –u
    2. adaptez l'exemple de grub.conf donné plus haut pour qu'il convienne à votre système.

    3. Installez GRUB sur votre disquette avec la commande :
      grub-install /dev/fd0

Réponses aux questions

  1. Non : il faut relancer /sbin/lilo à chaque modification de /etc/lilo.conf

  2. Oui : On n'installe qu'une fois GRUB

  3. Non : la limite du cylindre 1024 affecte la deuxième partie du chargeur d'amorçage (NdT : dans /boot)

  4. Oui : On ne peut pas fixer de quota sur un répertoire

Page consultée 407 fois