INSTALLATION D'UN SYSTEME A NOYAU LINUX PARTITIONNEMENT ET SYSTEMES DE GESTION DE FICHIERS

RAPPEL : ANATOMIE D'UN DISQUE MAGNETIQUE

Un serveur embarque très souvent plusieurs disques pour accroître la capacité de stockage mais aussi pour augmenter le débit mémoire/disque et/ou assurer la tolérance de panne (technologies RAID).

ACCES AUX PERIPHERIQUES

Une des originalités des systèmes Unix est leur manière d'accéder aux périphériques. Chaque périphérique du système (souris, disque dur, lecteur de cd, carte son, etc.) est représenté par un fichier spécial. Écrire dans un tel fichier va envoyer des commandes au périphérique. Lire un tel fichier permet d'en recevoir des données. C'est une méthode très simple qui a fait ses preuves !

PARTITIONNEMENT DES DISQUES

Une partition est une partie d'un disque dur destinée à accueillir un système de fichiers.

Les informations sur les partitions sont conservées sur le disque lui-même dans des zones qu'on appelle tables de partitions. La table de partitions principale est contenue dans le premier secteur du premier disque ou secteur d'amorçage (Master boot record ou MBR) qui contient également le programme d'amorçage. Les tables des “autres” disques durs se nomment PBR.

Exemple typique de partitionnement :

Une partition primaire : sda1

Une partition étendue : sda2 qui contient elle même 5 lecteurs logiques (sda5 à sda9).

A savoir: Seules les partitions primaires peuvent contenir la partition d'amorçage du système d'exploitation Windows. Ce n'est pas le cas pour Debian dont le système d'amorçage peut très bien s'installer sur une partition logique.

Le partitionnement d'une des machines utilisées par votre serviteur !

root@box:~# fdisk -l
Attention : identifiant de table de partitions GPT (GUID) détecté sur « /dev/sda » ! L'utilitaire sfdisk ne prend pas GPT en charge. Utilisez GNU Parted.
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 têtes, 63 secteurs/piste, 38913 cylindres, total 625142448 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x7b097a5d
Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 1 409639 204819+ ee GPT
/dev/sda2 * 409640 158346719 78968540 af HFS / HFS+
/dev/sda3 158346720 158348673 977 da Non-FS data
/dev/sda4 158348674 617335002 229493164+ 83 Linux

Un message « warning » attire l'oeil… qu'est-ce que signifie GUID ? Ou encore GPT ?

MBR et GPT / BIOS ET EFI

Pour simplifier, le GPT est le remplaçant du MBR (Master Boot Record). Il a de nombreux avantages et notamment il permet de passer la taille maximale d'une partition de 2.2 To à 9.4 Zo (9.4 milliards de To), et le nombre de 4 à 128.

Avec MBR, on est limité à 4 partitions primaires, ou 3 partitions primaires et une partition étendue qui elle même peut contenir 11 partitions logiques (ce qui fait quand même 14 partitions… c'est le maximum). La limitation vient du format de la table de partition dans le MBR, le premier secteur du disque.

Cette limitation saute avec le nouveau format GPT (Global Unit IDentifier Partition Table) utilisé notamment sur les machines avec firmware EFI (Extensible Firmware Interface) qui remplace le BIOS.

Là encore, le système d'exploitation doit supporter le GPT. Chez Microsoft, seul Seven x64 peut lire des partitions GPT. Les versions 32 bits le peuvent aussi, mais la taille maximale des partitions reste limitée à 2.2 To. Dans tous les cas, il faut un EFI pour que la partition soit bootable.

Pour résumer :

GPT remplace le MBR

EFI remplace le BIOS

POURQUOI PARTITIONNER ?

Vous pourriez envisager de n'avoir qu'une seule partition contenant tout votre système… La plupart d'entre nous choisissent de créer plus de partitions que le minimum dont LINUX a besoin pour fonctionner. Pourquoi ? Principalement pour des raison de sécurité: Si une partition est corrompue, le reste du système est toujours accessible. Il suffit généralement de restaurer une sauvegarde de la partition corrompue pour régler le problème.

Mais aussi pour séparer les partitions qui risqueraient d'être submergées de fichiers (Par exemple /var pour un serveur de mail qui serait attaqué par un envoi massif…). Le reste du système serait alors toujours opérationnel.

Séparer les autres partitions de la racine “/” permet, en cas de corruption d'une autre partition, de toujours pouvoir amorcer Linux pour réparer le système… Vous voulez en effet pouvoir être en mesure de démarrer en “Single user mode” pour restaurer votre station ou serveur… Ce qui exige une racine «intacte».

La seconde difficulté (après le choix du nombre de partitions) sera de définir la taille de ces partitions… Une taille trop petite rendra rapidement votre système inutilisable. Une taille trop grande gâche de l'espace disque.

CE QUE PRECONISE DEBIAN :

Pour les nouveaux utilisateurs, les machines Debian personnelles ou familiales, et autres systèmes mono-utilisateur, une simple partition / (plus celle d'échange -SWAP-) est sans doute la solution la plus simple. L'inconvénient est le fait que les données personnelles ne sont pas séparées du système. Il est donc donc généralement conseillé, en plus de la partition d'échange (swap) de créer une partition / ET une partition /home.

Pour les systèmes avec plusieurs utilisateurs, ou les systèmes avec beaucoup d'espace disque, il vaut mieux placer les répertoires /usr, /var, /tmp, et /home chacun sur une partition distincte de la partition /. Si vous prévoyez d'installer beaucoup de programmes qui ne font pas partie de la distribution Debian, pensez à créer une partition /usr/local séparée.

Si vous prévoyez de créer un serveur de mail, prévoyez une partition /var en conséquence (à moins que vous ne stockiez les courriers dans un autre répertoire - vous pourriez par exemple avoir besoin de mettre /var/mail sur une partition distincte.

Mettre le répertoire /tmp sur sa propre partition, par exemple 20 à 50 Mo est un minimum, sur les disques récents il peut être utile d'y mettre 1 ou 2G (des logiciels de gravure y mettent les images ISO temporaires, des logiciels d'installation y déploient tout un arbre avant de compiler, des logiciels d'édition video y mettent leur (gros) fichiers temporaires). Cette remarque vaut pour /var/tmp.

Si vous mettez sur pied un serveur avec beaucoup d'utilisateurs ou si vous avez plusieurs systèmes Linux, il est généralement intéressant d'avoir une grande partition distincte pour /home.

Pour conclure :

La méthode de partitionnement varie d'un ordinateur à l'autre, en fonction de son usage. « de la religion de l'administrateur »…

N'espérez pas obtenir une aide claire et nette sur le partitionnement, vous êtes seul face à ce choix, qui doit se faire en fonction de votre matériel et de vos besoins.

Il n'y a malheureusement pas de recette miracle… Il existe autant de façon de choisir son partitionnement que d'utilisations et d'utilisateurs…

Définissez au préalable clairement votre cahier des charges, l'utilisation que vous ferez de votre système, vous trouverez tout seul le bon partitionnement.

ORGANISATION DES REPERTOIRES SUR UN SYSTEME LINUX

DESCRIPTION DES PARTITIONS D'UN SERVEUR A NOYAU LINUX

La partition racine

La partition racine / doit toujours IMPERATIVEMENT contenir les répertoires : /etc, /bin, /sbin, /lib et /dev, faute de quoi vous seriez dans l'impossibilité de démarrer le système. Debian préconise 150 à 250 Mo minimum.

La partition usr

Le répertoire /usr contient (entre autres) les programmes des utilisateurs (/usr/bin), les bibliothèques (/usr/lib), la documentation (/usr/share/doc).

Vous devriez disposer d'au moins 500 Mo d'espace disque. Si vous voulez installer plus de paquets, vous devriez augmenter l'espace disque attribué à ce répertoire.

Pour installer un serveur « généreux », 4 à 6 Go sont nécessaires d'après Debian;

La partition var

Le répertoire /var contient toutes les données variables (les messages électroniques, les sites web, le cache du système des paquets, etc.). La place nécessaire dépend de l'usage que vous faites de votre ordinateur.

Pour une installation complète compter au moins 2 à 3 Go, une utilisation en serveur peut nécessiter plusieurs dizaines de G.

Pour une installation minimale vous pouvez passer avec 50 à 100 Mo (juste de quoi contenir les paquets téléchargés)

La partition tmp

Le répertoire /tmp permet de stocker les données temporaires. 40 à 100 Mo peuvent suffire pour une utilisation standard. Certaines applications, gestionnaires d'archives, outils pour créer des CD/DVD, logiciels multimedia, se servent de /tmp pour stocker provisoirement des images. Si vous comptez utiliser ces programmes, il faut en tenir compte et augmenter en conséquence /tmp. Pour certains, cette partition va jusqu’à 10 Go et plus.

La partition home

Le répertoire /home : chaque utilisateur mettra ses données dans un sous-répertoire de ce répertoire. La place nécessaire dépend du nombre d'utilisateurs sur le système, et du genre de fichiers qu'ils devront stocker. Généralement la plus grande place (ou l'espace restant) est réservée à cette partition.

La partition swap

En ce qui concerne la taille de la partition d'échange (swap), les avis sont partagés…

Selon certains : SWAP taille = celle de la mémoire vive ( $ cat /proc/meminfo | grep MemTotal ), augmentée de 0,5 Gb ; partition primaire ou étendue.

Il est habituel d'avoir au moins une SWAP environ égale à la quantité de mémoire vive :

$ grep MemTotal /proc/meminfo

Certains, disposant de plus de 6/8 Go de RAM ne créent pas de Swap. Celle-ci serait, pour une utilisation “classique”, inutile.

Sur les architectures 32 bits (i386, m68k, SPARC 32 bits et PowerPC), la taille maximale d'une partition d'échange est de 2 Go. Cela devrait suffire pour presque tous les systèmes. De toute façon, si vos besoins en espace d'échange sont aussi importants, vous devriez probablement essayer de disperser les partitions d'échange sur des disques différents et, si possible, sur des canaux IDE ou SCSI différents. Le noyau équilibrera l'utilisation de l'espace d'échange entre les différentes partitions, afin d'obtenir de meilleures performances. Il est également possible de créer des fichiers SWAP à la demande ou pour corriger un swap insuffisant à l'origine.

LES SYSTEMES DE GESTION DE FICHIERS

Les différents types de systèmes de fichiers exploités par les OS à noyau Linux :

ext3 Extented FS version 3) : utilisé par défaut sur de nombreuses distributions GNU/Linux.

ext4 : le format successeur d’ext3. La première version stable date du 24 décembre 2008.

Btrfs (se prononce ButterFS)B-tree File system est un FS expérimental développé par Oracle, Red Hat, Fujitsu, Intel, SUSE, STRATO et autres.

Iso9660 utilisé par les cdrom et dvdrom.

Reiserfs développé par Hans Reiser, Il est principalement utilisé par GNU/Linux et notamment par les distributions basées sur la distribution SUSE, mais il est peut-être utilisé par d’autres systèmes d’exploitation. Ce fut le premier système de fichiers journalisé à être intégré en standard dans le noyau Linux. ReiserFS est beaucoup plus efficace qu’Ext3 pour ce qui concerne le stockage des petits fichiers (moins de quelques ko). Il est en revanche un tout petit peu plus lent dans les autres cas.

xfs est un système de fichiers 64-bit journalisé de haute performance. Debian aime xfs ! Le système de fichiers XFS est le premier a avoir supporté les ACL (Access Control List), c’est une des raisons pour lesquelle il est souvent associé à des serveurs Samba.

Les différents types de systèmes de fichiers reconnus par les OS Windows :

FAT et FAT 32,

NTFS

Les différents types de systèmes de fichiers reconnus par les OS Apple MAC OS :

HPS,

HPS+

LES OUTILS DE TEST ET DE PARTITIONNEMENT

(A utiliser si vous êtes sûr de vos compétences… et… si vous êtes en forme!!)

fdisk : s'utilise en mode commande.

gparted : outil graphique disponible en liveCD. Permet de redimensionner les partitions sans perte de données.

hdparm : utilitaire logiciel pour obtenir ou positionner les paramètres d'un disque.

testdisk : permet de détecter la structure des partitions d’un disque même quand la table des partitions est effacée. il peut ensuite récrire cette table à partir de ce qu’il a détecté.

Utiliser TesDisk !

gpart : peut résoudre un problème de table de partitions détruite ou corrompue.

SystemRescueCD : le couteau suisse !

ANNEXE : LE GESTIONNAIRE DE VOLUMES LOGIQUES (LVM)

Principe

Le schéma ci dessous montre le principe global de fonctionnement de LVM : une couche d'abstraction aux disques physiques, mettant à disposition un vaste espace partitionnable.

Il est possible de mettre en place LVM par dessus n'importe quel disque présent sur le système, et non pas uniquement sur des disques IDE ou SCSI indépendants (par exemple sur plusieurs importantes tours de stockage, de manière totalement transparente). Ce système permettant à la gestion de stockage logicielle de faire totalement abstraction du matériel (et inversement), il est possible de modifier la configuration matérielle de manière transparente pour les applications.

Exemples d'utilisations

J'ai deux disques de 80Go. Je décris pour chacun d'eux un volume physique (de 80Go). Je rassemble ces deux volumes physiques dans un même groupe de volume. Je définis un seul volume logique dans ce volume de groupe. Tout se passe comme si je manipulais une partition de 160Go.

Je souhaite installer Linux sur une zone de 20Go. Je désire installer Linux sur plusieurs partitions et typiquement séparer le système des données utilisateurs. Je rassemble un ou plusieurs volumes physiques dans un volume de groupe de sorte à disposer de 20Go dans ce volume de groupe. Puis je scinde ce volume de groupe en deux volumes logiques, un pour le système, un pour les données. Grâce au modèle LVM, je pourrai aisément ajuster leurs tailles respectives.