|
1.
Introduction aux périphériques de bloc
Les périphériques de bloc
Nous allons regarder de manière approfondie la question des disques sous Gentoo
Linux et sous Linux en général, y compris les systèmes de fichiers de Linux,
les partitions et les périphériques de bloc. Ensuite, une fois que vous serez
familiarisé avec les tenants et aboutissants des disques et des systèmes de
fichiers, vous serez guidé pour réaliser la mise en place des partitions et des
systèmes de fichiers pour votre installation de Gentoo Linux.
Pour commencer, nous allons présenter les périphériques de bloc. Le plus
célèbre étant certainement celui qui représente le premier disque dans un
système Linux, /dev/sda. Les disques durs SCSI, Serial ATA et
mêmes les disques durs IDE sont tous nommés en /dev/sda depuis les
nouveaux pilotes libata de Linux. Si vous utilisez les anciens pilotes,
votre premier disque dur IDE s'appelle alors /dev/hda.
Les périphériques de bloc cités ci-dessus représentent une interface abstraite
vers les disques. Les programmes utilisateur peuvent les utiliser pour
interagir avec votre disque sans se préoccuper de savoir si vos périphériques sont
IDE, SCSI ou autres. Le programme peut simplement utiliser l'espace sur le
disque comme un groupe de blocs continus de 512 octets accessibles
aléatoirement.
Partitions et tranches
Bien qu'il soit théoriquement possible d'utiliser un disque complet pour
héberger votre système Linux, ceci n'est pratiquement jamais fait. À la place,
les périphériques de bloc sont divisés pour être plus petits et plus facilement
gérables. Sur la plupart des systèmes ces subdivisions sont appelées
partitions. D'autres architectures utilisent une technique similaire
appelée tranches (ou slices en anglais).
1.
Concevoir un plan de partitionnement
Plan de partitionnement par défaut
Si vous n'êtes pas intéressé par l'établissement d'un plan de partitionnement
pour votre système, vous pouvez utiliser le plan de partitionnement que nous
utilisons dans ce manuel :
| Partition |
Système de fichiers |
Taille |
Description |
| /dev/sda1 |
Table des partitions |
31.5k |
Table des partitions |
| /dev/sda2 |
(bootstrap) |
800k |
Apple_Bootstrap |
| /dev/sda3 |
(swap) |
512M |
Partition de mémoire virtuelle |
| /dev/sda4 |
ext3 ou ext4 |
Reste du disque |
Partition racine (root) |
Note :
certaines partitions sont nommées ainsi : Apple_Driver43,
Apple_Driver_ATA, Apple_FWDriver,
Apple_Driver_IOKit ou Apple_Patches. Si vous ne
pensez pas utiliser MacOS 9, vous pouvez les supprimer parce que MacOS X et
Linux n'en ont pas besoin. Vous pouvez utiliser parted pour les supprimer, car
mac-fdisk ne le permet actuellement pas.
|
Si vous souhaitez savoir la taille qu'une partition doit avoir, ou même
de combien de partitions vous avez besoin, poursuivez la lecture de ce
chapitre. Sinon, poursuivez avec le chapitre Apple
G5 : Partitionner votre disque avec mac-fdisk ou IBM pSeries : Partitionner votre disque avec fdisk.
Combien et de quelle taille ?
Le nombre de partitions dépend beaucoup de votre environnement. Par exemple,
si vous avez beaucoup d'utilisateurs, vous désirerez certainement avoir votre partition
/home séparée afin d'améliorer la sécurité et de simplifier les
sauvegardes. Si vous installez Gentoo comme serveur de courrier, votre partition
/var devrait être séparée étant donné que tous les courriels sont
stockés dans /var. Un bon choix de système de fichiers va vous
permettre d'améliorer les performances. Les serveurs de jeux auront une partition
/opt séparée étant donné que la plupart des serveurs de jeux sont
installés à cet endroit. La raison est la même que pour la partition
/home : sécurité et sauvegarde. Vous devriez consacrer
suffisamment de place au répertoire /usr, car il contient non
seulement vos applications, mais aussi l'arbre Portage (qui prend 500 Mo à
lui seul) et les sources des programmes que vous allez installer.
Comme vous pouvez le voir, cela dépend beaucoup de ce que vous souhaitez faire.
Séparer les partitions ou volumes procure les avantages suivants :
-
Vous pouvez choisir le système de fichiers le plus performant pour chaque
partition ou volume.
-
Votre système entier ne risque pas d'arriver à court d'espace disque libre si
un outil défectueux sature l'espace disque d'une partition ou d'un volume.
-
Si nécessaire, les vérifications des systèmes de fichiers durent moins
longtemps, vu que de multiples vérifications peuvent être faites en parallèle
(quoique cet avantage est plus important avec plusieurs disques qu'avec
plusieurs partitions).
-
La sécurité peut être améliorée en montant certaines partitions ou volumes en
lecture seulement, en utilisant nosuid (les bits suid sont ignorés) et noexec
(les bits exécutables sont ignorés), etc.
Cependant, avoir de multiples partitions présente un gros désavantage : si elles ne
sont pas configurées correctement, vous risquez d'obtenir un système avec
beaucoup d'espace libre sur une partition et plus du tout sur une autre. Un autre inconvénient est que des partitions séparées, en particulier
pour des points de montage importants tels que /usr ou /var - requièrent que l'utilisateur amorce avec un initramfs pour
monter la partition avant que les scripts de démarrage ne soient lancés. Ce n'est pas toujours le cas cependant, ce qui fait que le résultat
peut varier.
Notez que les disques SCSI et SATA sont limités à 15-partitions sauf si vous utilisez des étquettes GPT.
1.
Apple G5 : partitionner votre disque avec mac-fdisk
Maintenant créez vos partitions avec mac-fdisk :
Exemple de code 1.1 : lancer l'application mac-fdisk |
# mac-fdisk /dev/sda
|
Tout d'abord supprimez les partitions que vous aviez auparavant pour faire de
la place pour vos partitions Linux. Utilisez d dans mac-fdisk
pour supprimer les partitions. Vous devrez préciser le numéro de la partition à
supprimer.
Ensuite, créez une partition Apple_Bootstrap en utilisant b. Il
vous sera demandé sur quel bloc vous souhaitez faire commencer la partition.
Entrez le numéro de votre première partition libre suivi d'un p. Par
exemple 2p.
Note :
cette partition n'est pas une partition de démarrage. Elle n'est
absolument pas utilisée par Linux. Vous n'avez pas à y placer de système de
fichiers. Elle ne devra jamais être montée. Les utilisateurs PPC n'ont pas
besoin d'une partition supplémentaire pour /boot.
|
Maintenant créez une partition de mémoire virtuelle en appuyant sur c.
Encore une fois mac-fdisk vous demandera sur quel bloc vous souhaitez
faire démarrer la partition. Comme nous avons utilisé 2 auparavant pour
créer la partition Apple_Bootstrap, vous devez entrer 3p. Ensuite vous
devez entrer une taille. Entrez 512M (ou la taille que vous voulez).
Enfin, entrez swap (obligatoire) lorsqu'un nom vous est demandé.
Pour créer la partition root entrez c suivi de 4p pour
choisir sur quel bloc la partition principale commencera. Lorsqu'on vous
demandera la taille, entrez encore une fois 4p. mac-fdisk
l'interprétera comme « utiliser tout l'espace disque disponible ».
Vous devrez (obligatoire) entrer root pour le nom de la partition.
Pour finir, sauvez la table de partitions sur le disque en utilisant w
et q pour quitter mac-fdisk.
Note :
pour être bien sûr que tout va bien, vous devez lancer mac-fdisk une seconde
fois et vérifier si les partitions sont bien là. Si vous ne voyez aucune des
partitions que vous avez créées ou des modifications que vous avez apportées,
vous devez réinitialiser vos partitions avec i dans mac-fdisk. Notez que
cela recréera la table de partitions et donc effacera l'ensemble des
partitions.
|
Maintenant que vos partitions ont été créées, vous pouvez continuer en lisant
la section Créer les systèmes de fichiers.
1.
IBM pSeries, iSeries et OpenPower : partitionner votre disque avec
fdisk
Note :
si vous avez décidé d'utiliser des disques en RAID pour votre installation de
Gentoo et que vous utilisez du matériel basé sur POWER5, vous devrez exécuter
la commande iprconfig pour formater les disques au format de Fonctions
Avancées et créer un disque RAID. Vous devrez également installer le paquet
iprutils après avoir terminé l'installation.
|
Si vous avez un contrôleur SCSI basé sur ipr, vous devriez lancer les
utilitaires ipr dès maintenant.
Exemple de code 1.1 : démarrage des utilitaires ipr |
# /etc/init.d/iprinit start
|
Les parties suivantes expliquent comment créer le schéma de partition décrit
précédemment :
| Partition |
Description |
| /dev/sda1 |
Partition de démarrage PPC PReP |
| /dev/sda2 |
Partition de mémoire virtuelle |
| /dev/sda3 |
Partition principale (root) |
Changez votre plan de partitionnement comme vous le souhaitez.
Afficher le plan de partitionnement actuel
fdisk est un outil populaire et puissant pour diviser votre disque en
partitions. Lancez fdisk sur votre disque (dans notre exemple, nous
utilisons /dev/sda) :
Exemple de code 1.1 : lancement de fdisk |
# fdisk /dev/sda
|
Une fois dans fdisk, vous serez accueilli par une invite de commande qui
ressemble à ceci :
Exemple de code 1.1 : invite de commande de fdisk |
Command (m for help):
|
Si une table de partition AIX existe sur votre disque, you recevrez le message
d'erreur suivant :
Exemple de code 1.1 : message d'erreur de fdisk |
There is a valid AIX label on this disk.
Unfortunately Linux cannot handle these
disks at the moment. Nevertheless some
advice:
1. fdisk will destroy its contents on write.
2. Be sure that this disk is NOT a still vital
part of a volume group. (Otherwise you may
erase the other disks as well, if unmirrored.)
3. Before deleting this physical volume be sure
to remove the disk logically from your AIX
machine. (Otherwise you become an AIXpert).
Command (m for help):
|
Pas de souci, vous pouvez créer une nouvelle table de partition en tapant
o.
Attention :
cela détruit toute installation de AIX.
|
Appuyez sur p pour afficher la configuration actuelle de vos partitions.
Exemple de code 1.1 : exemple de configuration de partition |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 12 53266+ 83 Linux
/dev/sda2 13 233 981571+ 82 Linux swap
/dev/sda3 234 674 1958701+ 83 Linux
/dev/sda4 675 6761 27035410+ 5 Extended
/dev/sda5 675 2874 9771268+ 83 Linux
/dev/sda6 2875 2919 199836 83 Linux
/dev/sda7 2920 3008 395262 83 Linux
/dev/sda8 3009 6761 16668918 83 Linux
Command (m for help):
|
Ce disque est configuré pour héberger six systèmes de fichiers Linux (chacun
avec une partition correspondante listée en tant que « Linux ») ainsi
qu'une partition de mémoire virtuelle (listée en tant que « Linux
swap »).
Supprimer toutes les partitions
Nous allons commencer par supprimer toutes les partitions existantes sur le
disque. Tapez d pour supprimer une partition. Par exemple, pour
supprimer un /dev/sda1 existant :
Note :
si vous ne souhaitez pas supprimer toutes les partitions, ne supprimez que
celles que vous souhaitez enlever. À ce stade, vous devriez sauvegarder vos données pour éviter de les perdre.
|
Exemple de code 1.1 : suppression d'une partition |
Command (m for help): d
Partition number (1-4): 1
|
La partition a été programmée pour la suppression. Elle ne sera plus affichée
si vous tapez p, mais elle ne sera pas supprimée tant que vos
changements n'auront pas été sauvegardés. Si vous faites une erreur et souhaitez
annuler sans sauvegarder vos changements, tapez q immédiatement et appuyez
sur Entrée, vos partitions ne seront pas supprimées.
Maintenant, en supposant que vous souhaitiez enlever toutes les partitions de
votre système, répétez la commande p pour afficher une liste des
partitions et puis tapez d ainsi que le numéro de la partition que vous
souhaitez supprimer. Finalement, vous vous retrouverez avec une table de
partitions vide :
Exemple de code 1.1 : une table de partitions vide |
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
Command (m for help):
|
Maintenant que la table de partitions en mémoire est vide, nous sommes prêts
pour créer les partitions. Nous allons utiliser le plan de partitionnement par
défaut comme dit précédemment. Bien sûr, ne suivez pas ces instructions à la
lettre si vous n'utilisez pas le même plan de partitionnement !
Création de la partition de démarrage PPC PReP
Nous allons commencer par créer une petite partition de démarrage. Tapez n pour
créer une nouvelle partition, ensuite p pour choisir une partition
primaire, suivi par 1 pour sélectionner la première partition primaire.
Quand on vous demande le premier cylindre, tapez Entrée. Quand on vous demande
le dernier cylindre, tapez +7M pour créer une partition de 7 Mo.
Ensuite tapez t pour changer le type de partition, 1 pour choisir
la partition que vous venez de créer et tapez 41 pour définir le type de
partition à « PPC PReP Boot ». Enfin, vous devrez marquer la
partition PReP comme partition de démarrage.
Note :
la partition PReP doit être plus petite que 8 Mo !
|
Exemple de code 1.1 : création de la partition de démarrage PReP |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-6761, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-6761, default
6761): +8M
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 41
Changed system type of partition 1 to 41 (PPC PReP Boot)
Command (m for help): a
Partition number (1-4): 1
Command (m for help):
|
Maintenant, quand vous tapez p, vous devriez voir l'affichage
suivant :
Exemple de code 1.1 : partition de démarrage créée |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3 13293 41 PPC PReP Boot
Command (m for help):
|
Création de la partition de mémoire virtuelle
À présent, créons la partition de mémoire virtuelle. Pour ce faire, tapez
n pour créer une nouvelle partition, puis p pour dire à fdisk que
vous souhaitez une partition primaire. Ensuite, tapez 2 pour créer la
deuxième partition primaire, /dev/sda2 dans notre cas. Quand on
vous demandera le premier cylindre, tapez Entrée. Quand on vous demandera le
dernier cylindre, tapez +512M pour créer une partition de 512 Mo.
Ensuite, tapez t pour choisir le type de partition, 2 pour
sélectionner la partition que vous venez juste de créer puis tapez 82
pour choisir le type de partition « Linux swap ». Après avoir terminé
ces étapes, appuyer sur p devrait afficher une table de partitions qui
ressemble à ceci :
Exemple de code 1.1 : affichage des partitions après la création de la partition de mémoire virtuelle |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 3 13293 41 PPC PReP Boot
/dev/sda2 4 117 506331 82 Linux swap
Command (m for help):
|
Création de la partition principale (root)
Pour finir, créons la partition principale. Pour ce faire, tapez n pour
créer une nouvelle partition, puis p pour dire à fdisk que vous
souhaitez une partition primaire. Ensuite, tapez 3 pour créer la
troisième partition primaire, /dev/sda3 dans notre cas. Quand on
vous demande le premier cylindre, tapez Entrée. Quand on vous demande le
dernier cylindre, tapez Entrée pour créer une partition qui prend le reste de
la place libre sur votre disque. Après avoir terminé ces étapes, taper p
devrait afficher une table de partitions qui ressemble à ceci :
Exemple de code 1.1 : affichage des partitions après la création de la partition principale |
Command (m for help): p
Disk /dev/sda: 30.7 GB, 30750031872 bytes
141 heads, 63 sectors/track, 6761 cylinders
Units = cylinders of 8883 * 512 = 4548096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 3 13293 41 PPC PReP Boot
/dev/sda2 4 117 506331 82 Linux swap
/dev/sda3 118 6761 29509326 83 Linux
Command (m for help):
|
Sauver le plan de partitionnement
Pour sauver le plan de partitionnement et quitter fdisk, tapez w.
Exemple de code 1.1 : sauver et quitter fdisk |
Command (m for help): w
|
Maintenant que vos partitions sont créées, vous pouvez continuer avec la Création des systèmes de fichiers.
1.
Création des systèmes de fichiers
Introduction
Maintenant que vos partitions sont créées, il est temps d'y installer un
système de fichiers. Si vous ne vous souciez pas de quel système de fichiers
choisir et êtes satisfait de ceux que nous utilisons par défaut dans ce manuel,
continuez avec l'Application d'un système de
fichiers à une partition. Sinon, continuez à lire pour en apprendre plus
sur les systèmes de fichiers disponibles.
Les systèmes de fichiers
Le noyau Linux prend en charge de nombreux systèmes de fichiers.
Ci-dessous, nous décrirons brièvement ext2, ext3, ext4, ReiserFS, XFS et JFS, qui
sont les plus utilisés sur les systèmes Linux.
ext2 est le système de fichiers original de Linux mais n'a pas de
métadonnées journalisées, ce qui signifie que la routine de vérification du
système de fichiers ext2 au démarrage peut prendre beaucoup de temps. À
présent, vous avez le choix entre plusieurs systèmes de fichiers journalisés
qui peuvent être vérifiés très rapidement et sont généralement préférés à leurs
homologues non journalisés. Les systèmes de fichiers journalisés évitent de
devoir attendre longtemps quand vous démarrez votre système et que vos systèmes
de fichiers sont dans un état instable. Si votre intention est d'installer Gentoo sur un très petit disque (moins de 4 GO), vous devez dire à ext2 de réserver un nombre suffisant d'inodes quand vous créez le système de fichiers. L'application mke2fs utilise un paramètre "bytes-per-inode" pour calculer combien d'inodes sont nécessaires au système de fichiers. Généralement, en exécutant mke2fs -T small /dev/<device>, le nombre d'inodes quadruple pour un système de fichiers donné car son nombre d'octets par inode passe de 16 kO à 4 kO. Vous pouvez affiner encore un peu plus en utilisant mke2fs -i <ratio> /dev/<device>.
ext3 est la version journalisée du système de fichiers ext2, qui fournit
des métadonnées journalisées pour une récupération rapide en plus d'autres
modes journalisés comme la journalisation de données complètes et ordonnées.
Il utilise un index à base de HTree qui permet d'obtenir d'excellentes
performances dans pratiquement toutes les situations. En résumé, ext3 est un
très bon système de fichiers fiable. Si votre intention est d'installer Gentoo sur un très petit disque (moins de 4 GO), vous devez dire à ext2 de réserver un nombre suffisant d'inodes quand vous créez le système de fichiers. L'application mke2fs utilise un paramètre "bytes-per-inode" pour calculer combien d'inodes sont nécessaires au système de fichiers. Généralement, en exécutant mke2fs -T small /dev/<device>, le nombre d'inodes quadruple pour un système de fichiers donné car son nombre d'octets par inode passe de 16 kO à 4 kO. Vous pouvez affiner encore un peu plus en utilisant mke2fs -i <ratio> /dev/<device>.
ext4 est un système de fichier dérivant de ext3 et y apportant de nouvelles fonctionnalités,
une amélioration des performances et la suppression de la taille limite, ceci moyennant des changements modérés au formatage du disque. Il peut couvrir des volumes allant jusqu'à 1 EB avec une taille maximum de fichier de 16 TB. À la place de la classique table d'allocation de blocs des systèmes ext2/3, ext4 utilise les
extents, ce qui améliore la performance des fichiers de grande taille et réduit la fragmentation. Ext4 offre également des algorythmes sophistiqués d'allocation de blocs (allocation retardée et allocation multi-blocs) donnant ainsi au pilote du système de fichiers plus de moyens d'optimiser l'arrangement des données sur le disque. Le système de fichiers ext4 est un compromis entre la stabilité d'un code pour la production et le désir d'introduire des extensions dans un système de fichiers vieux de près de 10 ans. Ext4 est le système de fichier recommandé pour les systèmes de fichiers non spécifiques sur toutes les architectures.
JFS est le système de fichiers journalisé à hautes performances d'IBM.
C'est un système de fichiers basé sur les B+tree léger, rapide et sûr avec de
bonnes performances dans diverses configurations.
ReiserFS est un système de fichiers journalisé basé sur les B+tree qui a
de très bonnes performances, spécialement dans le cas de petits fichiers au
prix d'une plus grande consommation de cycles CPU. ReiserFS est apparemment
moins maintenu que les autres systèmes de fichiers.
XFS est un système de fichiers avec des métadonnées journalisées qui
possède un ensemble de fonctionnalités robustes et qui est optimisé pour la
mise à l'échelle. XFS ne semble pas pardonner les éventuels problèmes de
matériel.
Application d'un système de fichiers à une partition
Pour créer un système de fichiers sur une partition ou un volume, chaque
système de fichiers fournit ses propres outils :
| Filesystem |
Creation Command |
| ext2 |
mke2fs |
| ext3 |
mke2fs -j |
| ext4 |
mkfs.ext4 |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Par exemple, pour formater la partition principale (/dev/sda4 dans
notre exemple) en ext4 nous utiliserons :
Exemple de code 1.1 : application d'un système de fichiers sur une partition |
# mkfs.ext4 /dev/sda4
|
À présent, créons les systèmes de fichiers sur nos partitions (ou volumes
logiques) fraichement créées.
Important :
si vous avez choisi d'utiliser ReiserFS pour la racine /, ne
changez pas la taille de bloc par défaut si vous utilisez yaboot comme
chargeur de démarrage, comme expliqué dans (Configurer votre chargeur de démarrage).
|
Activation de la partition de mémoire virtuelle
mkswap est la commande utilisée pour initialiser la partition de mémoire
virtuelle :
Exemple de code 1.1 : création d'une signature de mémoire virtuelle |
# mkswap /dev/sda3
|
Pour activer la partition de mémoire virtuelle, utilisez swapon :
Exemple de code 1.1 : activation de la partition de mémoire virtuelle |
# swapon /dev/sda3
|
Créez et activez la partition de mémoire virtuelle maintenant.
1.
Monter les partitions
Maintenant que nos partitions sont initialisées et contiennent un système de
fichiers, il est temps de les monter avec la commande mount. N'oubliez
pas de créer les points de montage nécessaires pour toutes les partitions que
vous avez créées. Par exemple, pour créer un point de montage et monter la
partition racine :
Exemple de code 1.1 : monter les partitions |
# mkdir /mnt/gentoo
# mount /dev/sda4 /mnt/gentoo
|
Note :
si vous installez /tmp sur une partition séparée, n'oubliez pas de
définir les permissions nécessaires après avoir monté la partition. Utilisez la
commande chmod 1777 /mnt/gentoo/tmp. La même remarque s'applique à
/var/tmp.
|
Continuez avec (Installer les fichiers
d'installation de Gentoo).
|