Partitionner votre(vos) disque(s) dur(s)

Pourquoi partitionner, de toute façon? Bon, bien qu'il soit assurément possible d'obtenir un système Linux fonctionnant parfaitement sur une seule partition et qu'en fait il soit un peu plus simple de le configurer comme cela, il y a bon nombre d'avantages à partitionner un ou plusieurs de vos disques en multiple partitions.

S'il est vrai que Linux va fonctionner correctement sur un disque avec seulement une grande partition, vous trouverez plusieurs avantages à partager votre disque pour au moins les quatre systèmes de fichiers principaux (root, usr, home et swap). Parmi ces avantages:

D'abord, cela peut permettre de réduire le temps requis pour exécuter les contrôles du système (à la fois pendant le démarrage et pendant une commande manuelle de fsck), car ainsi ces contrôles peuvent être faits en parallèle. (A ce propos, ne JAMAIS lancer un fsck sur un système monté!!! Vous risquez certainement de regretter ce qui va lui arriver. La seule exception est pour un système monté en mode lecture-seulement (read-only) et dans ce cas c'est inoffensif). De plus, les contrôles du système sont bien plus aisés à faire quand il y a des partitions multiples. Par exemple, si je m'aperçois que ma partition /home a des problèmes, je peux simplement la dé-monter(unmount) et effectuer un contrôle du système puis re-monter le système réparé (sinon, il faut démarrer le système avec une disquette de sauvegarde en mode utilisateur-seul (single-user) et effectuer les réparations).

En deuxième point, avec des partitions multiples, vous pouvez, si vous voulez, monter une ou plusieurs de vos partitions en mode lecture-seule (read-only). Par exemple, si vous décidez que rien dans /usr ne peut être touché, pas même par root, vous pouvez alors monter la partition /usr en lecture-seule (read-only).

Finalement, le bénéfice le plus important découlant des partitions est la protection de vos fichiers-système. Si quelque chose devait arriver à un fichier-système (soit de l'erreur d'un utilisateur, soit d'un plantage du système), sur un système partitionné, vous perdriez probablement des fichiers sur un seul système. Sur un système non partitionné, vous perdriez probablement tous les fichiers systèmes.

Ce petit détail peut se transformer en énorme avantage. Par exemple, si votre partition root est si corrompue que vous ne pouvez plus démarrer, vous pouvez démarrer de façon sommaire grâce à l'ensemble de disquettes de sauvetage, monter votre partition root et copier ce que vous pouvez (ou restaurer de la sauvegarde; voir Chapter 8pour des précisions sur comment des fichiers peuvent être sauvegardés et restaurés) sur une autre partition comme /home, puis redémarrer à nouveau en utilisant la disquette de boot d'urgence et en tapant : “mount root=/dev/hda3” (en supposant que la partition qui contient votre fichier-système root temporaire est sur la troisième partition de hda) et démarrer votre boîte Linux à nouveau complètement fonctionnelle.. Puis vous pouvez lancer un fsck sur votre partition root corrompue non-montée.

J'ai euune expérience personnelle de catastrophes dans mes fichiers-système et j'ai été soulagé de n'avoir que des dégats limités suite à l'utilisation de partitions multiples.

Enfin, comme Linux vous permet d'installer d'autres systèmes d'exploitation (comme Windows 95/98/NT, BeOS, ou ce que vous voulez) puis d'effectuer un boot double ou triple du système, vous désirez peut-être tirer partie de cela en créant de nouvelles partitions. Typiquement, vous devriez établir au moins une partition séparée pour chaque système d'exploitation. Linux fournit un bon lanceur (appelé LILO sur les systèmes Intel et sensiblement la même chose existe sous le nom de MILO sur Alpha, et de SILO sur Sparc) qui vous permet de spécifier quel système d'exploitation vous voulez démarrer quand vous allumer l'ordinateur, avec un démarrage de votre système favori en défaut après un certain temps. (Probablement Linux, d'accord?)

Vous devez partitionner un(ou des) disque(s) en fonction de vos besoins. D'après mon expérience sur des plates-formes Intel, Alpha et Sparc, pour obtenir un système correct (avec des caractéristiques intéressantes), effectuant un montant de tâches suffisant (comme un système de bureau à la maison, ou un serveur Internet au travail), je pense qu'approximativement les chiffres suivants vous donneront des partitions décentes.

Soit:

A disque de X Mb/Gb          (eg. 2 Gb)
(Ou bien, plusieurs disques d'un montant total de X Mb/Gb)

Calculer:

(swap) environ le double du montant total de votre RAM     (eg. 64 Mb system gets 128 Mb swap)
/ (root) environ 10% de l'espace disponible (eg. 200 Mb)
/home environ 20% de l'espace disponible   (eg. 400 Mb)
/usr tout l'espace restant         (eg. 1272 Mb)

/var (optionnel -- voir plus bas)
/boot (optionnel -- voir plus bas)
/archive (optionnel -- voir plus bas)

Bien sûr, les chiffres ci-dessus sont seulement des indications approximatives. Il paraît logique de transformer un peu ces pourcentages en fonction de l'utilisation que vous comptez faire de votre système Linux. Si vous voulez ajouter beaucoup d'applications volumineuses telles WordPerfect ouNetscape, ou adjoindre le support pour les caractères Japonais, il faudrait probablement un peu d'espace supplémentaire sur /usr.

J'ai toujours l'impression d'avoir beaucoup d'espace disponible sur /home, donc si vos utilisateurs ne font pas grand chose (ou si vous leur avez imposé de stricts quotas de taille) ou si vous ne leur offrez pas de comptes shell et des pages web personnelles, etc..., vous pouvez probablement baisser le montant de /home et augmenter /usr.

Voici une description des différents points de montage et une information sur le système de fichiers qui pourra peut-être vous donner une meilleure idée sur la façon de définir vos partitions et leur taille:

A chaque fois que vous ajoutez des nouveaux lecteurs, des partitions supplémentaires peuvent être adjointes à ces nouveaux lecteurs, montées à des points variables suivant ce qui est requis: –cela veut dire qu'un système Linux n'a pas à s'inquiéter d'épuiser tout l'espace. Voici un exemple: si dans le futur il apparaît clair que sda6 commence à être saturée, vous pouvez ajouter un autre lecteur, établir une partition d'une taille confortable avec un point de montage à /usr/local -- puis transférer toute l'information de /usr/local sur le nouveau lecteur. Mais aucun système ou aucune partie du système ne va “se détraquer” car Linux va toujours trouver /usr/local, peu importe où il est situé.

Pour vous donner un exemple sur comment on peut partitionner, j'ai moi-même utilisé le schéma suivant sur un système Intel (double boot, Windows95 et Linux):

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1  *         1        1      254  1024096+   6  DOS 16-bit >=32M
/dev/hda2          255      255      782  2128896    5  Extended
/dev/hda5          255      255      331   310432+  83  Linux native
/dev/hda6          332      332      636  1229728+  83  Linux native
/dev/hda7          637      637      749   455584+  83  Linux native
/dev/hda8          750      750      782   133024+  82  Linux swap

La première partition, /dev/hda1, est formatée en DOS et utilisée pour le système d'exploitation alternatif (Windows 95). Cela me donne 1 Gb d'espace pour ce système.

La seconde partition, /dev/hda2, est une partition physique (appelée “extended (étendue)”) qui contient tout l'espace disque restant. Elle est utilisée seulement pour concevoir les partitions logiques restantes (il ne peut y avoir que quatre partitions physiques sur un disque; dans mon cas, j'avais besoin de plus de quatre partitions donc j'ai dû utiliser un schéma de partitionnement logique pour les autres.

De la troisième à la cinquième partition, /dev/hda5, /dev/hda6 et /dev/hda7, on trouve des partitions formatées en e2fs, utilisées respectivement pour les partitions / (root), /usr et /home.

Finalement, la sixième partition, /dev/hda8, est appliquée à la partition swap.

Prenons un autre exemple, cette fois d'une boîte Alpha avec deux disques durs (boot unique, Linux seulement). J'ai choisi le schéma de partitionnement suivant:

   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/sda1            1        1        1     2046    4  DOS 16-bit <32M
/dev/sda2            2        2      168   346859   83  Linux native
/dev/sda3          169      169      231   130851   82  Linux swap
/dev/sda4          232      232     1009  1615906    5  Extended
/dev/sda5          232      232      398   346828   83  Linux native
/dev/sda6          399      399     1009  1269016   83  Linux native
/dev/sdb1            1        1      509  2114355   83  Linux native
/dev/sdb2          510      510     1019  2118540   83  Linux native

La première partition, /dev/sda1, est formatée pour les fichiers DOS et sert à héberger le lanceur MILO. La plate-forme Alpha a une méthode un peu différente pour démarrer par rapport à un système Intel, et Linux stocke son information concernant le boot sur une partition FAT. Cette partition ne doit pas être plus grande que la plus petite tolérée, dans ce cas 2Mb.

La seconde partition, /dev/sda2, est formatée en e2fs et attribuée à la partition / (racine).

La troisième partition, /dev/sda3, est la partition swap.

La quatrième partition, /dev/sda4, est une partition “étendue” (voir l'exemple précédent pour plus de détails).

Les cinquième et sixième partitions, /dev/sda5, et /dev/sda6, sont formatées en e2fs et consacrées aux partitions respectives /home et /usr.

La septième partition, /dev/sdb1, est formatée en e2fs et affectée à la partition /archive.

La huitième et dernière partition, /dev/sdb2, est formatée en e2fs et utilisée en tant que partition /archive2.

Après avoir mis au point l'information concernant les partitions que vous désirez, il va falloir enregistrer cette information sur le disque. Après cela, le programme d'installation Red Hat recharge la table de partition en mémoire, et vous pouvez ensuite procéder à l'étape suivante de l'installation.