Le partitionnement

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

La question rituelle, et inévitable, lorsqu'on installe Debian, c'est comment organiser mes partitions...

Généralités

Le Disque


Il faut bien commencer par ça...

Depuis l'avènement du SSD, la donne a un peu changé...

Disque dur Ce que l'on appelait autrefois disque dur (Hard Drive) et réservé aux disques mécaniques à supports magnétiques à rotation rapide.

SSD Un solid-state drive, abrégé en SSD, appelé parfois disque SSD en France ou disque électronique ou disque à semi-conducteur au Canada, est un matériel informatique permettant le stockage de données sur de la mémoire flash. Wikipedia

Un disque (dur ou SSD) est une mémoire de masse utilisée principalement dans les ordinateurs. C'est sur celui-ci que sera stocké l'ensemble des fichiers de votre ordinateur. Pièce maîtresse, le disque dur mérite toute votre attention.

Les disque durs/SSD peuvent disposer de différentes interfaces (qui permettent de les connecter à la carte mère). Les plus courantes actuellement sont:


- Serial ATA ou SATA (Serial Advanced Technology Attachment)



- IDE (Integrated Drive Electronics) ou PATA (Parallel Advanced Technology Attachment)



- SCSI (Small Computer System Interface)

Les partitions

En micro-informatique, une partition permet de définir un partie de l'espace disponible d'un disque dur/ssd

Les informations sur les 4 premières partitions d'un disque sont inscrites sur le disque lui-même dans une zone qu'on appelle table des partitions.
La table des partitions principale est inscrite dans le premier secteur du disque, secteur appelé le MBR (Master Boot Record ou MBR), puisqu'il contient aussi le programme d'amorçage.

Voici un exemple de partitionnement:

# fdisk -l

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002bdf9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        6374    51199123+  83  Linux
/dev/sda2            6375      243201  1902312877+   5  Extended
/dev/sda5            6375       12748    51199123+  83  Linux
/dev/sda6           12749       19122    51199123+  83  Linux
/dev/sda7           19123       20142     8193118+  82  Linux swap / Solaris
/dev/sda8           20143      115754   768003358+  83  Linux
/dev/sda9          115755      243201  1023716352   83  Linux

Une partition primaire : sda1.

Une partition étendue : sda2 qui est un conteneur de partitions logiques.

Cinq partitions logiques : sda5 à sda9, définies dans l'espace de la partition étendue sda2.

Généralités

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 Debian a besoin pour fonctionner. Pourquoi ?

Principalement pour des raison de sécurité:
Si une partition est corrompue, le reste du système peut être encore accessible. Il peut suffire simplement 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 (qui même s'il n'est pas cher peut être utile ailleurs...)

Les remarques qui suivent sont des préconisations 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 à mettre en œuvre. L'inconvénient serait 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 racine "/" ET une partition "/home".
  • Pour les systèmes utilisés par plusieurs personnes (donc avec autant de comptes personnels), ou les systèmes disposants de beaucoup d'espace disque, il vaut mieux placer les répertoires "/usr", "/var", "/tmp", et "/home" chacun sur une partition distincte du ou des disques. /.
  • Si vous projetez d'utiliser votre machine comme 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.
  • 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".

La méthode de partitionnement varie d'une machne à l'autre, en fonction de son usage. et, dixit MisterFreeze, « 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 qu'il vous faudra bien définir (cahier des charges) avant toute chose.

Il n'y a malheureusement pas de recette miracle... Il existe autant de façon de choisir son partitionnement que d'utilisations, d'utilisateurs, de machnes, de services, etc...

Définissez au préalable clairement votre cahier des charges, l'utilisation que vous ferez de votre système, vous êtes le seul à savoir ce que vous attendez de votre machine.

Définir son partitionnement

L'organisation des répertoires

Tout d'abord voyons ce que Linux s'attend à trouver dans l'arborescence standard des répertoires (Filesystem Hierarchy Standard) :
Plus de détails dans $ man hier

Répertoire Contenu
/ Racine (root), à laquelle seront attachés (par la commande mount) tous les autres sous-répertoires.
/bin binaires : Commandes nécessaires et accessibles en mode mono-utilisateur (ls, cat, cd, cp, …)
/boot Fichiers indispensables au démarrage (boot) du système.
/dev devices : (pseudo-système de fichiers) Dans lequel la commande mknod va créer les noeuds (fichier de périphérique) qui vont permettre l'accès aux périphériques (devices) disques, partitions, consoles, etc.
/etc Editable Text Configuration : Fichiers de configuration.
/home Répertoire dans lequel seront créés les répertoires personnels des utilisateurs.
/lib library : Répertoire des fichiers de type bibliothèque partagée, modules noyaux, pilotes de périphériques et firmwares.
/media Répertoire dans lequel seront automatiquement créés les points de montage pour les systèmes de fichiers des supports amovibles.
/mnt mount : Répertoire dans lequel pourront être créés des sous-répertoires qui serviront de point de montage pour des systèmes de fichiers temporaires.
/proc processes : (pseudo-système de fichiers) fichiers correspondants aux processus en cours (noyaux de versions supérieures à 2.4)
/root Répertoire personnel de l'utilisateur root
/sbin system binary : Commandes pour l'administration du système (ifconfig, mount, fdisk, …)
/sys system : (pseudo-système de fichiers) utilisé pour les informations système (noyaux 2.6).
/tmp temporary : Fichiers temporaires
/usr UNIX System Resources : Ce répertoire est généralement monté depuis une partition séparée. Il ne devrait contenir que des données partageables, en lecture seule, afin d'être monté par plusieurs machines utilisant Linux.
/var variables : fichiers log, mails, etc.
/srv services : Données pour les services fournis par le système.

Ce qu'il faut savoir :

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;

La partition usr

  • Le répertoire /usr contient (entre autre) 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 poste de travail ou 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. La plupart du temps, la dimension de cette partiton sera dictée par les outils de gestion des paquets qui prennent beaucoup de place.

- 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)

- Vous pouvez commencer par une installation minimale, puis installer petit à petit les paquets, auquel cas, vous pouvez vous contenter de 300 à 500 Mo - C'est dans cette partition que sont mis

  • Les paquets Debian téléchargés (/var/cache/apt/archives)
  • La base apt (/var/lib/dpkg)
  • Les bases de données (sous /var/lib)
  • Les mails (/var/mail)
  • Certains fichiers temporaires (/var/tmp)
  • Les douilles UNIX de la plupart des processus (/var/run) ainsi que des fichiers de fonctionnement

La partition tmp

  • Le répertoire /tmp : quand un programme crée des données temporaires, elles seront généralement placées dans /tmp. 40 à 100 Mo peuvent suffir 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.

Il est possible de supprimer la réservation de 5% pour root sur /home, cette partition faisant plusieurs centaines de G, cela représente souvent plusieurs Go perdus pour rien. Il faut alors préparer la partition avant l'installation avec la commande suivante :

# tune2fs -m 0 /dev/sdxy

La partition swap

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

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

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

$ grep MemTotal /proc/meminfo

Bien sûr, il y a des exceptions à cette règle. Si vous essayez de résoudre simultanément 10 000 équations sur une machine avec 256 Mo de RAM, vous pourriez avoir besoin d'un gigaoctet (ou plus) d'échange.

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 (appelés aussi « spindles ») 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. L'hibernation ne peut se faire que sur une seule partition swap.

Avec une (vieille) machine possédant 32 Mo de RAM et un disque IDE de 1.7 Go sur /dev/hda, on pourrait créer une partition de 500 Mo pour un système sur /dev/hda1, une partition d'échange de 32 Mo sur /dev/hda3 et une partition Linux d'environ 1,2 Go sur /dev/hda2. Pour un portable récent avec un disque dur de 320G et 4G de RAM, prévoir 4.2G de swap pour pouvoir bénéficier de l'hibernation.

Primaires, étendue, logiques

Vous êtes limités à 4 partitions primaires, ou 3 partitions primaires et une partition étendue qui est un conteneur de partitions logiques.

Pour un disque SCSI, Linux limite le nombre de partitions logiques à 12 (ce qui fait quand même un total de 15 partitions utilisables).
Pour un disque IDE, 60 partitions logiques peuvent être crées dans la partition étendue (donc 63 partitions utilisables).

Une partition logique contenant un pointeur vers le début de la partition logique suivante (chaînage), le nombre de partitions logiques pourrait donc être infini.
Mais, pour des raisons de nommages de périphériques (un octet pour "major", "minor"), ce nombre maximal a dû être limité.

La limitation au nombre de 4 partitions primaires (ou 3 primaires + 1 étendue) est due au format de la table de partition contenue dans le Master Boot Record (MBR), premier secteur (512 octets) du disque.
Cette limitation saute avec le nouveau format GPT (GUID Partition Table) utilisé notamment sur les machines avec firmware EFI (Extensible Firmware Interface) en surcouche du BIOS.

Voir :
http://www.tldp.org/HOWTO/Partition/partition-types.html#logical
http://www.tldp.org/HOWTO/Partition/devices.html

Le système de fichier

Le système de fichier

Un système de fichiers (file system ou filesystem en anglais) ou système de gestion de fichiers (SGF) est une façon de stocker les informations et de les organiser dans des fichiers sur les supports de stockage.

Le système de fichiers proposé par défaut par l'installeur de Debian est Ext4 (Extented FS version 4).

Les Ext? sont des systèmes de fichiers bâtis sur la même structure mais avec des fonctionnalités rajoutées (journalisation pour ext3) et des algorithmes (pré-allocation de blocs "extent" pour ext4) différents suivant les versions.

Ext3 (sorti en 1999) est une évolution de Ext2, le précédent système de fichiers utilisé par défaut par Debian depuis 1993.

Ext4 alloue les blocs libres juste à côté des autres blocs utilisés par le fichier, ce qui a pour effet de minimiser l'espace physique entre les blocs (limitant la fragmentation).

Ext4 (sorti en 2006) est le successeur du système de fichiers ext3, principalement destiné aux systèmes basés sur GNU/Linux. Il est disponible à l'installation depuis Squeeze.

Il garde une compatibilité avec son prédécesseur et est considéré par ses propres concepteurs comme une étape intermédiaire devant mener à un vrai système de fichiers de nouvelle génération tel que Btrfs. Toutefois, Ext4 est une étape utile et non une simple solution temporaire.

Outre le fait qu'il puisse gérer les volumes d'une taille allant jusqu'à 1 Eio (un exbioctet = 2⁶⁰ octets), la fonctionnalité majeure de ext4 est l'allocation par extent qui permettent la pré-allocation d'une zone contigüe pour un fichier, pour minimiser la fragmentation. L'option extent est active par défaut depuis le noyau Linux 2.6.23 ; avant cela, elle devait être explicitement indiquée lors du montage de la partition.

Ext2/3/4 ont un algorithme d'allocation de blocs cherchant à éviter la fragmentation, algorithme perfectionné en permanence. C'est pour cela que les outils de défragmentation n'existent pas pour ces systèmes de fichiers. La simple utilisation régulière suffit à défragmenter le système.

Les partitions de type Ext? ont besoin d'une vérification périodique de l'intégrité du système de fichier, et cela peut prendre au démarrage un temps non négligeable lorsque la taille de la partition est importante. Cette vérification est conseillée et effectuée par défaut de manière régulière (modifiée par tune2fs). Grâce à la journalisation, les arrêts sauvages (démontage de la partition non fait proprement par le système) de disque sont moins gênants avec Ext3 et Ext4 qui ne feront pas forcément une vérification de l'intégrité du système au démarrage suivant.

Il peut être toutefois judicieux, sur un serveur de choisir Ext2 pour certaines partitions (/var/log et /tmp par exemple). En effet Ext2 permet de récupérer des fichiers (ici les logs et les fichiers temporaires) facilement, pas ses successeurs.

D'autres systèmes de fichiers peuvent être utilisés sur certaines partitions. xfs par exemple a de bonnes performances avec de nombreux petits fichiers.

Il est impossible de transformer une partition existante d'un système de fichiers à un autre (sauf parfois pour les ext? qui ont une structure commune), le choix du système de fichiers est donc définitif.

Le système de fichiers lisible par *tous* les OS même les plus anciens est FAT32 mais il est très primaire, interdit les gros fichiers et ne permet pas (ou difficilement) d'installer un linux.

Vous le voyez, tout comme le nombre de partitions et la taille des partitions, le choix du système de fichier n'est pas forcément une chose simple. Soyez prudents et faites confiance au programme d'installation Debian...

Exemples de partitionnements

Si vous choisissez le partitionnement assisté de l'installeur Debian, vous aurez trois choix:

  • Tout dans une seule partition (recommandé pour les débutants)
  • Partition /home séparée
  • Partitions /home, /usr, /var et /tmp séparées

Même si vous êtes débutant, nous recommandons à l'unanimité de mettre /home dans une partition séparée.

En effet en cas de réinstallation "forcée" vos documents et réglages personnels ne seront pas perdus... Il suffira de réinstaller Debian SANS FORMATER votre partition /home.

Station de travail (simple)
Nom de la partition
/ 20 GB (Il est possible de descendre jusqu’à 5)
SWAP 1 fois et demi la Ram
Le reste en /home


Pour une machine moderne, avec 4 Gb de mémoire vive et sur laquelle le DD interne a une capacité de 350 GB :

Station de travail (plus compliqué)
Nom de la partition
/ 3 GB
SWAP 5 GB
/tmp 5 GB
/usr 15 GB
/var 5 GB
/home 317 GB


Pour un serveur, avec 2 Gb de mémoire vive et sur laquelle le DD interne a une capacité de 100 GB :

(Serveur de mail, quelques bases SQL, Serveur Web, un home limité, pour quelques utilisateurs sftp)

Serveur
Nom de la partition
/ 350 MB
/boot 50 MB
/usr 10 GB
/var 70 GB
SWAP 4 GB
/tmp 10 GB
/home 5,6 GB


Discussion forum: comment partitionner ses diques durs

Discussion forum: partitionnement dd pour station bureau

Debian.org: Annexe C. Partitionnement pour Debian

Wikipedia: Partition de disque dur

Wikipedia: Disque dur]

Lol 27 décembre 2010 à 01:10 (CST)