1. Introduction aux 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 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 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.
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.
Les partitions sont divisées en trois types : primaire, étendue et logique.
Une partition primaire est une partition dont l'information est stockée dans le MBR (« master boot record », secteur d'amorçage principal). Comme un MBR est très petit (512 bytes), seules 4 partitions primaires peuvent y être définies (par exemple, de /dev/sda1 à /dev/sda4).
Une partition étendue est une partition primaire spéciale (ce qui signifie que la partition étendue doit être une des quatre partitions primaires possibles) qui contient d'autres partitions. Une telle partition n'existait pas à l'origine, mais étant donné que quatre partitions ne suffisaient plus, on a étendu le schéma de formatage sans perdre la compatibilité ascendante.
Une partition logique est une partition contenue dans la partition étendue. Sa définition n'est pas placée dans le MBR, mais est déclarée dans la partition étendue.
Solutions de stockage avancées
Les CD d'installation Gentoo pour ${arch} offrent le support des systèmes EVMS ou LVM2. Les systèmes LVM2 et EVMS permettent une plus grande flexibilité dans l'organisation des disques. Le reste de ce guide utilise des partitions normales, mais vous pouvez activer ces systèmes de stockage avancés si vous le désirez.
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 | ext2 | 32M | Partition de démarrage |
| /dev/sda2 | (swap) | 512M | Partition de mémoire virtuelle |
| /dev/sda3 | ext3 | Reste du disque | Partition principale |
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 Partitionner votre disque avec fdisk.
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 :
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 qu'il y a une limite de 15 partitions par disque SCSI ou SATA.
Voici un exemple de partitionnement pour un disque de 20 Go utilisé comme portable de démonstration (contenant un serveur web, un serveur de courrier, GNOME...) :
Exemple de code 1.1 : Exemple d'utilisation de système de fichiers |
$ df -h Système de fichier Type Taille Util Libre Util% Monté sur /dev/sda5 ext3 509M 132M 351M 28% / /dev/sda2 ext3 5.0G 3.0G 1.8G 63% /home /dev/sda7 ext3 7.9G 6.2G 1.3G 83% /usr /dev/sda8 ext3 1011M 483M 477M 51% /opt /dev/sda9 ext3 2.0G 607M 1.3G 32% /var /dev/sda1 ext2 51M 17M 31M 36% /boot /dev/sda6 swap 516M 12M 504M 2% <non monté> (Espace non partitionné pour utilisation future : 2 Go) |
/usr est plutôt rempli ici (83 % utilisés), mais une fois que tous les programmes sont installés, /usr a une taille relativement stable. Pour /var, on pourrait croire que trop d'espace a été alloué. Cependant, Gentoo compile tous les programmes dans /var/tmp/portage. Si vous voulez allouer relativement peu d'espace pour /var, par exemple 2 Go, vous devrez modifier la variable PORTAGE_TMPDIR pour qu'elle pointe vers une partition qui dispose d'espace suffisant pour compiler de très gros paquets tels que OpenOffice.org.
1. Partitionner votre disque avec fdisk
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 |
| /dev/sda2 | Partition de mémoire virtuelle |
| /dev/sda3 | Partition principale |
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 (« prompt ») qui ressemble à ceci :
Exemple de code 1.1 : Invite de commande de fdisk |
Command (m for help): |
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: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 15 49 264600 82 Linux swap
/dev/sda3 50 70 158760 83 Linux
/dev/sda4 71 2184 15981840 5 Extended
/dev/sda5 71 209 1050808+ 83 Linux
/dev/sda6 210 348 1050808+ 83 Linux
/dev/sda7 349 626 2101648+ 83 Linux
/dev/sda8 627 904 2101648+ 83 Linux
/dev/sda9 905 2184 9676768+ 83 Linux
Command (m for help):
|
Ce disque est configuré pour héberger sept 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 :
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é sauvés. Si vous faites une erreur et souhaitez annuler sans sauver 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.0 GB, 30005821440 bytes 240 heads, 63 sectors/track, 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 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
Nous allons commencer par créer la 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 +32M pour créer une partition de 32 Mo et activer l'option amorçable :
Exemple de code 1.1 : Création de 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-3876, default 1): (Appuyez sur Entrée) Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M |
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.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 14 105808+ 83 Linux
|
Nous devons rendre cette partition amorçable. Tapez a et sélectionnez 1 pour activer l'option amorçable (bootable flag) sur cette partition. Si vous tapez p à nouveau, vous constaterez qu'un * (astérisque) est placé dans la colonne « Boot ».
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.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 15 81 506520 82 Linux swap
|
Création de la partition principale
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.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 14 105808+ 83 Linux
/dev/sda2 15 81 506520 82 Linux swap
/dev/sda3 82 3876 28690200 83 Linux
|
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 Création des systèmes de fichiers.
1. Création des systèmes de fichiers
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.
De nombreux systèmes de fichiers sont disponibles dans le noyau Linux. Ci-dessous, nous décrirons brièvement ext2, ext3, 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.
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.
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 | mke2fs |
| ext3 | mke2fs -j |
| reiserfs | mkreiserfs |
| 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 1.1 : Application d'un système de fichiers sur une partition |
# mke2fs /dev/sda1 # mke2fs -j /dev/sda3 |
À 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/sda2
|
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/sda2
|
Créez et activez la partition de mémoire virtuelle maintenant.
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/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).