Gestion des disques
État :
Sommaire
Pré-requis
Expérience de la procédure d'installation d'un système sous Linux (voir Installation)
Objectifs
- Comprendre la différence entre les partitions primaires, étendue et logiques
- Utilisation des outils de partitionnement avant et après l'installation
- Installation et configuration des chargeurs de démarrage LILO et GRUB
Comprendre les points de montage et le rôle du fichier /etc/fstab
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
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 :
Utiliser fdisk pour créer les partitions
- Associer un point de montage à chaque partition
La plupart des distributions utilisent un programme facile d'accès vous permettant de réaliser ces deux étapes en une seule :
diskdrake (Mandrake)
DiskDruid (RedHat)
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
- fdisk /dev/hda
tapez m pour l'aide, puis créez une nouvelle partition avec n.
tapez w pour sauver les modifications sur le disque
redémarrez
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 :
LILO : installé dans le MBR, il charge la seconde étape de démarrage (second stage loader), en général /boot/boot.b
/etc/lilo.conf : c'est le fichier de configuration de LILO. En voici les options :
boot <nowiki>*</nowiki>où installer LILO (Le MBR du premier disque est /dev/hda )
install deuxième chargeur (par défaut boot.b)
prompt invite utilisateur (présente éventuellement un choix de système à démarrer)
default nom de l'image lancée par défaut
timeout utilisé conjointement avec prompt, pause avant le démarrage par défaut (en dixièmes de secondes)
image <nowiki>*</nowiki>chemin d'accès au noyau à lancer (il est possible d'utiliser other pour lancer un autre chargeur)
label <nowiki>*</nowiki>Nom de l'image, c'est le nom que l'utilisateur peut entrer au démarrage
root <nowiki>*</nowiki>nom du périphérique contenant le système de fichiers racine /
read-only <nowiki>*</nowiki>monter le système de fichiers en lecture seule pour que fsck fonctionne normalement
append paramètres pour le chargement des pilotes inclus au noyau (statiques)
linear/lba32 ces options s'excluent mutuellement. Les deux options indiquent à LILO de lire le disque en utilisant l'adressage par bloc logique (LBA). linear est typiquement utilisé sur les disques très grands. lba32 est utilisé pour accéder à des données au delà des premiers 1024 cylindres au démarrage (voir aussi p 10(UNDEFINED REFERENCE: "1024 cylinder (gloss)")).
/sbin/lilo : c'est le programme binaire qui installe LILO dans le MBR en fonction de la configuration dans /etc/lilo.conf.
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
General / Global
default : image qui démarre par défaut (la première entrée est 0)
timeout : temps d'affichage de l'invite en secondes
Image
title : nom de l'image
root : racine du système de fichiers
kernel : chemin du noyau à partir du root défini précédemment (par ex. /vmlinuz)
ro : read-only – lecture seule
initrd : chemin d'accès au disque virtuel en mémoire (ramdisk)
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
- Périphérique ./. point-de-montage ./. système-de-fichier ./. options nombre-dump ./. nombre-fsck
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
rw, ro : lecture/écriture et lecture seule
noauto : le périphérique n'est pas monté au démarrage
users : le périphérique est lisible et démontable par tous les utilisateurs
user : seul l'utilisateur spécifié peut démonter le périphérique
owner : le propriétaire du périphérique devient celui qui l'a monté
usrquota : active les quotas utilisateurs sur le périphérique
grpquota : active les quotas de groupe sur le périphérique
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 :
Éditez /etc/fstab et ajoutez l'option usrquota
- Remontez la partition :
mount -o remount <nowiki><device> </nowiki>
Initialisez les données sur les quotas : un fichier préliminaire aquota.user est créé à la base du répertoire
quotacheck -ca
- Éditez les quotas pour chaque utilisateur :
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.
- Appliquez les quotas
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 :
- Lorsque LILO est installé et que vous avez modifié le fichier lilo.conf, il n'est pas nécessaire de relancer /sbin/lilo :
- Lorsque GRUB est installé et que vous avez modifié le fichier grub.conf, il n'est pas nécessaire de relancer grub-install :
- Si la racine est au-delà de la limite du cylindre 1024, il est possible que votre système Linux ne démarre pas :
- On ne peut utiliser les quotas que sur une partition dans son ensemble :
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
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 !
- Formatez une de vos partitions
mkfs <périphérique>
Créez un répertoire data à la racine
mkdir /data
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
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).
- 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
(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.
- Changement de chargeur de démarrage
- Désinstallez LILO du MBR ou de la disquette :
lilo –u
adaptez l'exemple de grub.conf donné plus haut pour qu'il convienne à votre système.
- Installez GRUB sur votre disquette avec la commande :
grub-install /dev/fd0
- Désinstallez LILO du MBR ou de la disquette :
Réponses aux questions
Non : il faut relancer /sbin/lilo à chaque modification de /etc/lilo.conf
Oui : On n'installe qu'une fois GRUB
Non : la limite du cylindre 1024 affecte la deuxième partie du chargeur d'amorçage (NdT : dans /boot)
Oui : On ne peut pas fixer de quota sur un répertoire
Page consultée 558 fois