Gentoo Logo

[ << ] [ < ] [ 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.

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

4.b. 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 voulez savoir quelle taille 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, 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.

4.c. 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 (root)
/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 3.1 : identifier les disques disponibles

# dmesg | grep 'drive$'    (Pour des disques IDE)
# dmesg | grep 'scsi'      (Pour des disques 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 3.2 : lancement de fdisk

# fdisk /dev/sda

Supprimer toutes les tranches

Si votre disque dur est totalement vierge, vous devez d'abord créer une étiquette BSD sur celui-ci.

Exemple de code 3.3 : créer une étiquette de disque BSD

Command (m for help): b
/dev/sda contains no disklabel.
Do you want to create a disklabel? (y/n) y
Des infos relatives au disque vont défiler.
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 tranche c (qui est requise pour les disques étiquetés BSD). L'exemple montre comment supprimer la tranche a. Répétez ensuite la procédure pour supprimer toutes les autres tranches (répétons-le, excepté la tranche c !).

Utilisez p pour voir toutes les tranches existantes. d est utilisé pour supprimer une tranche.

Exemple de code 3.4 : 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 3.5 : 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 3.6 : 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 3.7 : 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 3.8 : 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 3.9 : 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 sauvegardez votre plan de découpage.

Exemple de code 3.10 : sauvegarder 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.

4.d. 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 4.1 : identifier les disques disponibles

# dmesg | grep 'drive$'        (Disques IDE.)
# dmesg | grep 'scsi'          (Disques 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 4.2 : lancer fdisk

# fdisk /dev/sda

Supprimer toutes les partitions

Si votre disque est complètement vierge, vous devez d'abord créer une étiquette de disque DOS.

Exemple de code 4.3 : créer une étquette 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 4.4 : 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 4.5 : 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 4.6 : 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 4.7 : 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 4.8 : 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 4.9 : 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

Sauvegarder la table des partitions et quitter

Tapez w pour enregistrer votre table de partitions et quitter fdisk.

Exemple de code 4.10 : sauver et quitter fdisk

Command (m for help): w

Maintenant que vos partitions sont créées, continuez avec Application d'un système de fichiers à une partition.

4.e. 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

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.

Note : aboot ne supporte que les systèmes de fichiers ext2 et 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. 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 mkfs.ext2
ext3 mkfs.ext3
ext4 mkfs.ext4
reiserfs mkfs.reiserfs
xfs mkfs.xfs
jfs mkfs.jfs

Par exemple, pour formater la partition racine (/dev/sda2 dans notre exemple) en ext4, nous utiliserons :

Exemple de code 5.1 : application d'un système de fichiers sur une partition

# mkfs.ext4 /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 5.2 : 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 5.3 : activation de la partition de mémoire virtuelle

# swapon /dev/sda1

Créez et activez la partition de mémoire virtuelle maintenant.

4.f. 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 6.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.


[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


Imprimer

Voir tout

Dernière mise à jour le 23 février 2013

Une version originale plus récente datée du 23 janvier 2014 existe.

Résumé : Pour installer Gentoo, vous devez créer les partitions requises. Ce chapitre décrit comment préparer vos disques durs.

Sven Vermeulen
Auteur

Grant Goodyear
Author

Roy Marples
Auteur

Daniel Robbins
Auteur

Chris Houser
Auteur

Jerry Alexandratos
Auteur

Seemant Kulleen
Développeur Gentoo x86

Tavis Ormandy
Développeur Gentoo Alpha

Jason Huebel
Développeur Gentoo AMD64

Guy Martin
Développeur Gentoo HPPA

Pieter Van den Abeele
Développeur Gentoo PPC

Joe Kallar
Développeur Gentoo SPARC

John P. Davis
Correcteur

Pierre-Henri Jondot
Correcteur

Eric Stockbridge
Correcteur

Rajiv Manglani
Correcteur

Jungmin Seo
Correcteur

Stoyan Zhekov
Correcteur

Jared Hudson
Correcteur

Colin Morey
Correcteur

Jorge Paulo
Correcteur

Carl Anderson
Correcteur

Jon Portnoy
Correcteur

Zack Gilburd
Correcteur

Jack Morgan
Correcteur

Benny Chuang
Correcteur

Erwin
Correcteur

Joshua Kinard
Correcteur

Tobias Scherbaum
Correcteur

Joshua Saddler
Correcteur

Gerald J. Normandin Jr.
Relecteur

Donnie Berkholz
Relecteur

Ken Nowack
Relecteur

Lars Weiler
Contributeur

Xavier Neys
Correcteur, traducteur

Camille Huot
Traducteur

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

Rémy Mainil
Traducteur

José Fournier
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.