[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
4. Préparer les disques
Table des matières :
4.a. 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
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. Ces subdivisions sont appelées partitions.
4.b. Concevoir un plan de partitionnement
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 /home séparé afin d'améliorer la sécurité et de simplifier
les sauvegardes. Si vous installez Gentoo comme serveur de courrier, votre
/var devrait être séparé é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 jeu auront un
/opt séparé étant donné que la plupart des serveurs de jeux sont
installés à cet endroit. La raison est la même que pour
/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, de multiples partitions ont 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. Notez
également que Linux limite à 15 partitions par disque SCSI ou SATA.
4.c. Partitionner votre disque avec fdisk sur MIPS
Machines SGI : Création d'une étiquette de disque SGI
Tous les disques dans un système SGI nécessitent une étiquette de disque SGI qui
est similaire aux étiquettes de disque Sun & MS-DOS. Les informations sur les
partitions du disque y sont stockées. La création du label disque SGI va créer
deux partitions spéciales sur le disque :
-
Entête de volume SGI (9ème partition) : cette partition est
importante, car c'est là que le chargeur de démarrage et, parfois, l'image
du noyau sont installés.
-
Volume SGI (11ème partition) : cette partition est équivalent à
la 3ème partition « Whole Disk » (disque entier) que l'on trouve
sur l'étiquette Sun. Cette partition occupe le disque entier et doit rester
telle quelle. Elle n'a pas d'autre but que d'assister la PROM dans certaines
opérations non documentées (c'est utilisé par IRIX d'une manière ou d'une
autre).
Attention :
l'entête de volume SGI doit commencer au cylindre 0, sinon vous ne
pourrez pas démarrer à partir du disque.
|
La suite est un exemple tiré d'une session fdisk. Lisez-le et adaptez-le
à vos besoins.
Exemple de code 3.1 : Créer une étiquette de disque SGI |
# fdisk /dev/sda
Command (m for help): x
Expert command (m for help): m
Command action
b move beginning of data in a partition
c change number of cylinders
d print the raw data in the partition table
e list extended partitions
f fix partition order
g create an IRIX (SGI) partition table
h change number of heads
m print this menu
p print the partition table
q quit without saving changes
r return to main menu
s change number of sectors/track
v verify the partition table
w write table to disk and exit
Expert command (m for help): g
Building a new SGI disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content will be unrecoverably lost.
Expert command (m for help): r
Command (m for help): p
Disk /dev/sda (SGI disk label): 64 heads, 32 sectors, 17482 cylinders
Units = cylinders of 2048 * 512 bytes
----- partitions -----
Pt# Device Info Start End Sectors Id System
9: /dev/sda1 0 4 10240 0 SGI volhdr
11: /dev/sda2 0 17481 35803136 6 SGI volume
----- Bootinfo -----
Bootfile: /unix
----- Directory Entries -----
Command (m for help):
|
Note :
si votre disque a déjà une étiquette de disque SGI, fdisk ne vous autorisera pas à créer
une nouvelle étiquette. Il y a deux moyens de s'en sortir. Le premier est de créer une
étquette Sun ou MS-DOS, écrire les changements sur disque et relancer fdisk.
L'autre est d'écraser la table de partitions avec des données nulles avec la
commande suivante : dd if=/dev/zero of=/dev/sda bs=512 count=1.
|
Donner la bonne taille à l'entête de volume SGI
Important :
cette étape est souvent nécessaire à cause d'un bogue dans fdisk.
Parfois, l'entête du volume n'est pas créé correctement. Dans ce cas, il
commence et se termine au cylindre 0, ce qui bloque la création de partitions.
Pour résoudre ce problème, lisez ce qui suit.
|
Maintenant que l'étiquette SGI est créée, les partitions peuvent être définies. Dans
l'exemple précédent, il y a déjà deux partitions définies pour vous. Ce sont les
partitions spéciales mentionnées plus haut et elles ne devraient normalement pas
être altérées. Cependant, pour installer Gentoo, nous devons charger un chargeur
de démarrage et, éventuellement, plusieurs images de noyau directement dans
l'entête de volume en fonction du type de système. L'entête de volume lui-même
peut supporter jusqu'à huit images de n'importe quelle taille, avec pour
chaque image un nom de maximum huit caractères.
Le processus pour rendre l'entête de volume plus grand n'est pas exactement
simple — il y a pas mal de bidouillage. On ne peut pas simplement
supprimer et rajouter l'entête de volume à cause du comportement bizarre de
fdisk. Dans l'exemple fourni ci-dessous, nous allons créer un entête de volume
de 50 Mo et une partition de démarrage de 50 Mo. Le plan actuel de
notre disque peut varier, mais il ne s'agit ici que de propos illustratifs.
Exemple de code 3.2 : redimensionner l'entête de volume SGI correctement |
Command (m for help): n
Partition number (1-16): 1
First cylinder (5-8682, default 5): 51
Last cylinder (51-8682, default 8682): 101
Command (m for help): d
Partition number (1-16): 9
Command (m for help): n
Partition number (1-16): 9
First cylinder (0-50, default 0): 0
Last cylinder (0-50, default 50): 50
|
Si vous ne savez pas trop comment utiliser fdisk, jetez un coup d'œil
plus loin aux instructions de partitionnement pour serveurs Cobalt. Le principe
est exactement le même, souvenez-vous juste de laisser tranquilles l'entête du
volume SGI et le volume SGI.
Une fois ceci terminé, vous pouvez créer d'autres partitions comme bon vous
semble. N'oubliez pas de définir le type de partition pour votre mémoire
virtuelle (type 82), car le type par défaut est 83 (Linux).
Maintenant que vos partitions ont bien été créées vous pouvez continuer au
chapitre Création des systèmes de fichiers.
Machines Cobalt : Partitionnement du disque
Sur les machines Cobalt, le BOOTROM s'attend à voir un MBR MS-DOS, donc le
partitionnement du disque dur est relativement classique. En fait, c'est le
même procédé qui est utilisé sur les machines Intel x86. Cependant, vous
devez tout de même faire attention à plusieurs points :
-
Le firmware des Cobalt s'attend à avoir une partition /dev/hda1
formatée en EXT2 Revision 0. Les partitions EXT2 Revision 1 ne
fonctionneront pas ! Le BOOTROM des Cobalt ne comprend que le
format EXT2r0.
-
Cette même partition doit contenir une image d'exécutable au format ELF
archivée avec gzip, vmlinux.gz, dans la racine de cette
partition, qui sera chargée comme étant le noyau Linux.
Pour cette raison, je vous recommande de créer une partition /boot
d'environ 20 Mo formatée en EXT2r0 dans laquelle vous pourrez installer
CoLo et vos noyaux. Cela vous permet d'utiliser un système de fichiers moderne
(EXT3 ou ReiserFS) pour votre système de fichiers racine.
Je suppose ici que vous avez créé la partition /dev/sda1 qui sera
montée plus tard en tant que partition /boot. Si vous voulez que
ce soit la racine / vous devrez garder les exigences du BOOTROM en
tête lors de la création.
Pour créer les partitions vous devez taper la commande fdisk /dev/sda à
l'invite de commandes. Les commandes principales qui vous seront utiles
sont :
-
o : efface l'ancienne table de partitions, en commençant par une
nouvelle table de partition MS-DOS vide.
-
n : nouvelle partition.
-
t : change le type de la partition.
-
Utilisez le type 82 pour la mémoire virtuelle de Linux et
83 pour un système de fichiers Linux.
-
d : supprime une partition.
-
p : affiche la table de partition.
-
q : quitte — Garde l'ancienne table de partitions comme
elle était.
-
w : quitte — Écrit la nouvelle table de partitions sur le
disque.
Exemple de code 3.3 : partitionner le disque |
# fdisk /dev/sda
The number of cylinders for this disk is set to 19870.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): o
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
The number of cylinders for this disk is set to 19870.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
Command (m for help): p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 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-19870, default 1):
Last cylinder or +size or +sizeM or +sizeK (1-19870, default 19870): +20M
Command (m for help): p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 40 20128+ 83 Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (41-19870, default 41):
Using default value 41
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870):
Using default value 19870
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (41-19870, default 41):<Tapez Entrée>
Using default value 41
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870): +500M
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (17294-19870, default 17294): <Tapez Entrée>
Using default value 17294
Last cylinder or +size or +sizeM or +sizeK (1011-19870, default 19870): <Tapez Entrée>
Using default value 19870
Command (m for help): p
Disk /dev/hda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks ID System
/dev/sda1 1 21 10552+ 83 Linux
/dev/sda2 22 19870 10003896 5 Extended
/dev/sda5 22 1037 512032+ 83 Linux
/dev/sda6 1038 5101 2048224+ 83 Linux
/dev/sda7 5102 9165 2048224+ 83 Linux
/dev/sda8 9166 13229 2048224+ 83 Linux
/dev/sda9 13230 17293 2048224+ 83 Linux
/dev/sda10 17294 19870 1298776+ 83 Linux
Command (m for help): t
Partition number (1-10): 10
Hex code (type L to list codes): 82
Changed system type of partition 10 to 82 (Linux swap)
Command (m for help): p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
Device Boot Start End Blocks ID System
/dev/sda1 1 21 10552+ 83 Linux
/dev/sda2 22 19870 10003896 5 Extended
/dev/sda5 22 1037 512032+ 83 Linux
/dev/sda6 1038 5101 2048224+ 83 Linux
/dev/sda7 5102 9165 2048224+ 83 Linux
/dev/sda8 9166 13229 2048224+ 83 Linux
/dev/sda9 13230 17293 2048224+ 83 Linux
/dev/sda10 17294 19870 1298776+ 82 Linux Swap
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#
|
Et c'est tout ce qu'il y avait à faire. Vous pouvez maintenant passer à l'étape
suivante : Création des systèmes de
fichiers.
4.d. 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 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
Plusieurs systèmes de fichiers sont disponibles. Ext2, ext3, ext4 et ReiserFS sont
considérés stables sur architecture MIPS. Les autres sont très expérimentaux.
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 :
| Système de fichiers |
Commande de création |
| ext2 |
mkfs.ext2 |
| ext3 |
mkfs.ext3 |
| ext4 |
mkfs.ext4 |
| reiserfs |
mkfs.reiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Par exemple, pour formater la partition de démarrage (/dev/sda1
dans notre exemple) en ext2 et la partition principale (/dev/sda3
dans notre exemple) en ext3, nous utiliserons :
Exemple de code 4.1 : appliquer un système de fichiers à une partition |
# mkfs.ext2 /dev/sda1
# mkfs.ext4 /dev/sda3
|
À présent, créons les systèmes de fichiers sur nos partitions fraichement
créées.
Attention :
si vous êtes en train d'installer Gentoo sur un serveur Cobalt, souvenez-vous
que /dev/sda1 DOIT être de type EXT2 revision 0 ; tout
autre type (par exemple EXT2 revision 1, EXT3, Reiserfs, XFS, JFS et autres)
NE FONCTIONNERA PAS ! Vous pouvez formater la partition avec la
commande : mkfs.ext2 -r 0 /dev/sda1.
|
Activation de la partition de mémoire virtuelle
mkswap est la commande utilisée pour créer et initialiser la partition de
mémoire virtuelle :
Exemple de code 4.2 : Créer une signature de mémoire virtuelle |
# mkswap /dev/sda2
|
Pour activer la partition de mémoire virtuelle, utilisez swapon :
Exemple de code 4.3 : Activer la partition de mémoire virtuelle |
# swapon /dev/sda2
|
Créez et activez la partition de mémoire virtuelle avec les commandes
mentionnées plus haut.
4.e. 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 monter les partitions de démarrage et
racine :
Exemple de code 5.1 : Monter les partitions |
# mount /dev/sda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/sda1 /mnt/gentoo/boot
|
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.
|
Nous devrons également monter le système de fichiers proc (une interface
virtuelle avec le noyau) sur /proc, mais nous devons d'abord placer
nos fichiers sur les partitions.
Continuez avec Installer les fichiers
d'installation de Gentoo.
[ << ]
[ < ]
[ Sommaire ]
[ > ]
[ >> ]
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|