|
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 entrées et sorties 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 dur SCSI
connu sous le nom de /dev/sda.
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 devoir se tracasser 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.
Les 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 les systèmes Alpha, ces divisions sont appelées tranches
(N.D.T. : en anglais : « slices », correspond à peu près
aux « partitions » que l'on trouve sur PC).
1.
Concevoir un plan de découpage
Plan de découpage par défaut
Dans ce manuel, nous utiliserons le plan de découpage suivant à titre
d'exemple :
| Tranche |
Description |
| /dev/sda1 |
Tranche de mémoire virtuelle |
| /dev/sda2 |
Tranche principale |
| /dev/sda3 |
Disque complet (obligatoire) |
Si vous êtes intéressé de savoir la taille qu'une tranche doit avoir ou même
de combien de tranches vous avez besoin, poursuivez la lecture de ce
chapitre. Sinon, poursuivez avec le chapitre Partitionner
votre disque avec fdisk (uniquement SRM) ou avec le chapitre Partitionner votre disque avec fdisk (uniquement
ARC/AlphaBIOS).
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.
1.
Découper votre disque avec fdisk (uniquement SRM)
Les parties suivantes expliquent comment créer l'exemple de plan de
découpage du disque décrit précédemment :
| Tranche |
Description |
| /dev/sda1 |
Tranche de mémoire virtuelle |
| /dev/sda2 |
Tranche principale |
| /dev/sda3 |
Disque complet (obligatoire) |
Modifiez ce plan de découpage selon vos besoins.
Identifier les disques disponibles
Pour trouver quels disques sont disponibles, utilisez les commandes
suivantes :
Exemple de code 1.1 : Identifier les disques disponibles |
# dmesg | grep 'drive$'
# dmesg | grep 'scsi'
|
À partir de cet affichage, vous devriez voir quels disques sont détectés et
leurs entrées /dev respectives. Dans les parties suivantes, nous
supposons que le disque est un disque SCSI sur /dev/sda.
À présent, lancez fdisk :
Exemple de code 1.1 : Lancement de fdisk |
# fdisk /dev/sda
|
Supprimer toutes les tranches
Si votre disque dur est totalement vierge, vous devez d'abord créer un label
BSD sur celui-ci.
Exemple de code 1.1 : Créer le label de disque BSD |
Command (m for help): b
/dev/sda contains no disklabel.
Do you want to create a disklabel? (y/n) y
3 partitions:
# start end size fstype [fsize bsize cpg]
c: 1 5290* 5289* unused 0 0
|
Nous allons commencer par supprimer toutes les tranches exceptée la
c qui est requise par le label BSD. L'exemple montre comment supprimer
la tranche a. Répétez ensuite la procédure pour supprimer toutes les
autres tranches (de nouveau, excepté la tranche c !).
Utilisez p pour voir toutes les tranches existantes. d est
utilisé pour supprimer une tranche.
Exemple de code 1.1 : Suppression d'une tranche |
BSD disklabel command (m for help): p
8 partitions:
# start end size fstype [fsize bsize cpg]
a: 1 235* 234* 4.2BSD 1024 8192 16
b: 235* 469* 234* swap
c: 1 5290* 5289* unused 0 0
d: 469* 2076* 1607* unused 0 0
e: 2076* 3683* 1607* unused 0 0
f: 3683* 5290* 1607* unused 0 0
g: 469* 1749* 1280 4.2BSD 1024 8192 16
h: 1749* 5290* 3541* unused 0 0
BSD disklabel command (m for help): d
Partition (a-h): a
|
Après avoir répété ce processus pour toutes les tranches, voici ce que vous
devriez obtenir :
Exemple de code 1.1 : Affichage d'un plan vide |
BSD disklabel command (m for help): p
3 partitions:
# start end size fstype [fsize bsize cpg]
c: 1 5290* 5289* unused 0 0
|
Création de la tranche de mémoire virtuelle
Sur un système Alpha, vous n'avez pas besoin d'une partition de démarrage
séparée. Cependant, le premier cylindre ne peut pas être utilisé vu que l'image
aboot y sera placée.
Nous allons créer une tranche de mémoire virtuelle qui commence au troisième
cylindre, avec une taille totale de 1 Go. Utilisez n pour créer
une nouvelle tranche. Après avoir créé la tranche, nous allons changer son
type à 1 (chiffre un) pour indiquer swap.
Exemple de code 1.1 : Création de la tranche de mémoire virtuelle |
BSD disklabel command (m for help): n
Partition (a-p): a
First cylinder (1-5290, default 1): 3
Last cylinder or +size or +sizeM or +sizeK (3-5290, default 5290): +1024M
BSD disklabel command (m for help): t
Partition (a-c): a
Hex code (type L to list codes): 1
|
Après ces étapes, vous devriez avoir un plan similaire au suivant :
Exemple de code 1.1 : Description du plan après la création de la tranche de mémoire virtuelle |
BSD disklabel command (m for help): p
3 partitions:
# start end size fstype [fsize bsize cpg]
a: 3 1003 1001 swap
c: 1 5290* 5289* unused 0 0
|
Création de la tranche principale (/root)
À présent, nous allons créer la tranche principale qui commencera au premier
cylindre après la tranche de mémoire virtuelle. Utilisez la commande
p pour voir où se termine la tranche de mémoire virtuelle. Dans notre
exemple, c'est à 1003, de sorte que la partition principale commence à 1004.
Un autre problème est qu'il y a actuellement un bogue dans fdisk qui lui
fait croire que le nombre de cylindres disponibles est un au dessus du vrai
nombre de cylindres. En d'autres termes, quand on vous demande le dernier
cylindre, diminuez le nombre de cylindres (dans cet exemple : 5290) de un.
Quand la partition est créée, nous changeons le type à 8 pour ext2.
Exemple de code 1.1 : Création de la tranche principale |
D disklabel command (m for help): n
Partition (a-p): b
First cylinder (1-5290, default 1): 1004
Last cylinder or +size or +sizeM or +sizeK (1004-5290, default 5290): 5289
BSD disklabel command (m for help): t
Partition (a-c): b
Hex code (type L to list codes): 8
|
Votre plan devrait maintenant ressembler à ceci :
Exemple de code 1.1 : Affichage du plan de découpage du disque |
BSD disklabel command (m for help): p
3 partitions:
# start end size fstype [fsize bsize cpg]
a: 3 1003 1001 swap
b: 1004 5289 4286 ext2
c: 1 5290* 5289* unused 0 0
|
Sauvegarder le plan de découpage et quitter
Quittez fdisk en tapant w. Ceci va également sauvez votre plan de
découpage.
Exemple de code 1.1 : Sauver et quitter fdisk |
Command (m for help): w
|
Maintenant que vos tranches sont créées, vous pouvez continuer avec Création des systèmes de fichiers.
1.
Utiliser fdisk pour partitionner votre disque (uniquement ARC/AlphaBIOS)
Cette section décrit comment partitionner votre disque selon le plan
précédemment indiqué, c'est-à-dire :
| Partition |
Description |
| /dev/sda1 |
Partition de démarrage /boot |
| /dev/sda2 |
Partition de mémore virtuelle |
| /dev/sda3 |
Partition principale / |
Vous pouvez utiliser un autre plan de partitionnement si vous le désirez.
Identifier les disques disponibles
Pour déterminer quels disques sont disponibles sur votre système, utilisez les
commandes suivantes :
Exemple de code 1.1 : Identifier les disques disponibles |
# dmesg | grep 'drive$'
# dmesg | grep 'scsi'
|
Le résultat de ces commandes devrait vous permettre de voir quels disques sont
installés ainsi que leur chemin d'accès dans /dev. La suite de ce
texte utilise un disque SCSI /dev/sda à titre d'exemple.
Lancez fdisk :
Exemple de code 1.1 : Lancer fdisk |
# fdisk /dev/sda
|
Supprimer toutes les partitions
Si votre disque est complètement vierge, vous devez d'abord créer un label de
disque DOS.
Exemple de code 1.1 : Créer un label de disque DOS |
Command (m for help): o
Building a new DOS disklabel.
|
Si le disque contient déjà des partitions, commencez par toutes les supprimer.
L'exemple suivant utilise 1 pour supprimer la première partition,
répétez l'opération pour les autres partitions.
Utilisez p pour afficher la liste des partitions et d pour
supprimer une partition.
Exemple de code 1.1 : Supprimer une partition |
command (m for help): p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 478 489456 83 Linux
/dev/sda2 479 8727 8446976 5 Extended
/dev/sda5 479 1433 977904 83 Linux Swap
/dev/sda6 1434 8727 7469040 83 Linux
command (m for help): d
Partition number (1-6): 1
|
Créer la partition de démarrage /boot
Sur un système Alpha qui utilise MILO pour démarrer, il faut créer une petite
partition VFAT.
Exemple de code 1.1 : Créer la partition de démarrage |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-8727, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-8727, default 8727): +16M
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 6
Changed system type of partition 1 to 6 (FAT16)
|
Créer la partition de mémoire virtuelle
Nous allons créer une partition de mémoire virtuelle d'un gigaoctet qui
commence au troisième cylindre. Utilisez n pour créer une nouvelle
partition.
Exemple de code 1.1 : Créer la partition de mémoire virtuelle |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (17-8727, default 17): 17
Last cylinder or +size or +sizeM or +sizeK (17-8727, default 8727): +1000M
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)
|
Votre table de partitions devrait maintenant ressembler à :
Exemple de code 1.1 : Table de partition après la création de la mémoire virtuelle |
Command (m for help): p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 16 16368 6 FAT16
/dev/sda2 17 971 977920 82 Linux swap
|
Créer la partition principale /
Il nous reste à créer la partition principale. Utilisez n une nouvelle
fois.
Exemple de code 1.1 : Créer la partition principale |
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (972-8727, default 972): 972
Last cylinder or +size or +sizeM or +sizeK (972-8727, default 8727): 8727
|
Votre table de partitions devrait maintenant ressembler à :
Exemple de code 1.1 : Table de partition après la création de la partition principale |
Command (m for help): p
Disk /dev/sda: 9150 MB, 9150996480 bytes
64 heads, 32 sectors/track, 8727 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 16 16368 6 FAT16
/dev/sda2 17 971 977920 82 Linux swap
/dev/sda3 972 8727 7942144 83 Linux
|
Sauver la table des partitions et quitter
Tapez w pour enregistrer votre table de partitions et quitter fdisk.
Exemple de code 1.1 : Sauver et quitter fdisk |
Command (m for help): w
|
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 Application d'un système de
fichiers à une partition. Sinon, continuez à lire pour en apprendre plus
sur les systèmes de fichiers disponibles.
Systèmes de fichiers ?
De nombreux systèmes de fichiers sont disponibles. La plupart d'entre eux sont
stables sur l'architecture Alpha.
Note :
aboot doit être installé dans une partition formatée avec un système de
fichiers ext2 ou ext3.
|
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.
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.
ReiserFS est un système de fichiers basé sur les B+tree qui a de très
bonnes performances et qui surpasse ext2 et ext3 dans le cas de l'utilisation
de petits fichiers (fichiers de moins de 4 ko), souvent avec un facteur allant
de 10 à 15. ReiserFS résiste aussi très bien à la montée en charge et a des
métadonnées journalisées. ReiserFS est stable et peut être utilisé aussi bien
dans un système de fichiers destiné à une utilisation générale et pour des cas
extrêmes comme la création de grands systèmes de fichiers et l'utilisation de
grands fichiers et répertoires qui contiennent des dizaines de milliers 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. Nous ne recommandons ce système de fichiers que pour des
systèmes équipés d'unités de stockage SCSI haut de gamme ou connectés à des
serveurs de stockage « Fibre Channel », et munis d'un onduleur.
Puisque XFS utilise énormément le cache pour des données transitoires en
mémoire vive, les programmes mal conçus (ceux qui ne prennent pas les
précautions suffisantes quand ils écrivent les fichiers sur disque, et il y en
a quelques uns) peuvent perdre beaucoup de données si le système s'interrompt
de manière inattendue.
JFS est un système de fichiers journalisé à hautes performances d'IBM.
Il a été récemment déclaré prêt pour un usage en production, mais il n'y a pas
encore suffisamment d'information pour commenter sa stabilité générale de
manière positive ou négative.
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 |
mke2fs |
| ext3 |
mke2fs -j |
| reiserfs |
mkreiserfs |
| xfs |
mkfs.xfs |
| jfs |
mkfs.jfs |
Par exemple, pour formater la partition racine (/dev/sda2
dans notre exemple) en ext3, nous utiliserons :
Exemple de code 1.1 : Application d'un système de fichiers sur une partition |
# mke2fs -j /dev/sda2
|
À présent, créons les systèmes de fichiers sur nos partitions (ou volumes logiques)
fraichement créées.
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/sda1
|
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/sda1
|
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 monter les partitions de démarrage et
racine :
Exemple de code 1.1 : Monter les partitions |
# mount /dev/sda2 /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.
|
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).
|