LinuxPedia

Wiki libre et indépendant dédié à GNU-Linux et BSD.

Outils pour utilisateurs

Outils du site


archlinux:choisir_un_schema_de_partitionnement

Le partitionnement, qu'est ce que c'est ?

Sur les Unices et donc sur Linux, les partitions sont des espaces sur un disque dur. C'est là que seront stockés durablement les données. La question est de savoir comment y accéder. Pour cela, il faut bien comprendre l'arborescence d'un Unix :

            / (racine)
  __________|____________
  |     |   |     |     |
/bin /sbin /usr /var /home

Par définition, il n'existe rien de plus haut que la racine. La racine est propre à chaque machine physique. Cette racine est donc associée à un système de fichiers1) et à une partition2). Partition et système de fichiers sont indissociables. Pour pouvoir y accéder, on monte une partition avec un système de fichier sur un point de montage3). Un point de montage peut être n'importe quel dossier présent dans l'arborescence. À ce stade là, on peut comprendre qu'on peut avoir autant de partitions que le disque le permet et qu'elle seront montés dans l'arborescence. On peut donc imaginer que chaque dossier distinct à la racine4) soit monté depuis une partition différente. En fait l'intérêt de disposer de plusieurs partitions est de pouvoir utiliser différents systèmes de fichiers et différentes options en fonction des dossiers. Je vais illustrer mon propos par un exemple.

Je suis propriétaire d'un cyber-café et j'ai un ordi sous Linux. Les clients se connectent à Internet et ont le droit de tout faire. Mais pour des raisons de sécurité, je ne veux pas qu'ils utilisent d'autres programmes que ceux que j'ai installés. Mon schéma de partitionnement sera la suivant :

  • racine montée avec les permissions d'exécuter les fichiers contenant /usr /bin /var /sbin /opt etc …
  • /home montée sur une partition avec l'option noexec qui interdit d'exécuter un fichier présent sur cette partition

À partir de cet exemple simple, on peut imaginer plein d'autres cas d'utilisation.

Quel schéma de partitionnement choisir pour un ordinateur personnel ?

Dans ce cas d'utilisation, le schéma proposé par l'installeur de Arch est très satisfaisant :

  • une racine qui contient tout sauf /boot et /home en ext3 avec des options par défaut
  • /boot qui contient les info boot en ext2 (que faire de la journalisation sur une partition qui ne sera jamais écrite (ou très rarement))
  • /home qui contient les données utilisateurs

Avec un tel schéma, on va au bout du monde. On peut ensuite affiner en fonction des cas d'utilisation. Si par exemple vous comptez avoir un serveur de mail ou de base de données, il est important d'avoir /var qui soit monté dans une partition à part avec un système de fichier adapté (reiserfs ou xfs). Il peut même être mieux de monter /var/lib/base_de_donnés1 depuis une partition seule. Ceci permet de ne pas perdre la base de données dans le cas d'une panne matérielle.

On peut aussi monter des partitions depuis un “partage réseau” via nfs.

Les mains dans le cambouis

Pour finir, on va mettre un peu les mains dans le cambouis. Il existe pléthore d'outils pour redimensionner ses partitions sur un disque dur. On peut citer :

  • dd
  • fdisk
  • cfdisk
  • parted
  • qtparted
  • gparted

Je ne rentrerai pas en détail dans l'utilisation de ces outils5). De la même façon, il existe des outils pour créer un système de fichier sur une partition. ces outils sont du type mkfs.fs_type.

La syntaxe type pour monter une partition et son système de fichier sur un point de montage est :

mount [-o liste_des_options] [-t fs_type] <emplacement de la partition> [<point de montage>]

mount est capable d'utiliser le fichier /ect/fstab6) pour obtenir les informations telles que les options à passer ou le type du système de fichier. /etc/fstab est aussi lue à chaque démarrage du système pour monter les systèmes de fichiers. La syntaxe de ce fichier est très proche de la syntaxe de mount :

<emplacement de la partition> <point de montage> <liste des types de FS> <options> <sauvegarde> <vérification>
/dev/hda3 / ext3 defaults 1 1
/dev/hda1 /boot ext2 noauto 0 0
/dev/hda2 none sw sw 0 0
/dev/hda5 /var reiserfs defaults 0 2
/dev/hda6 /home ext3 defaults,quota 0 2
192.168.0.1:/home/user /home/user nfs soft,nolock,noexec,user,noauto 0 0
 

Ici, hda3 correspond à la racine. C'est le seul qui soit essentiel ! noauto signifie que /boot ne sera pas monté automatiquement. hda2 correspond au swap, dont je n'ai pas parlé ici. /home est monté avec les quotas d'activés et /home/user est un partage nfs montable seulement par le propriétaire de /home/user. Il faut noter aussi que les binaires ne peuvent pas êtres exécutés sur la partition réseau.

Seuls / est sauvegardé. Au niveau de la vérification automatique au boot, /dev/hda3 est vérifié automatiquement en premier. /dev/hda5 et /dev/hda6 sont vérifiés en parrallèle immédiatement après que /dev/hda3'' a été vérifié.

http://wiki.archlinux.fr/howto:installation:partitionnement#fnt__11) qui dit comment sont stockés les données et comment y accéder

http://wiki.archlinux.fr/howto:installation:partitionnement#fnt__22) un espace physique continu sur un disque dur

http://wiki.archlinux.fr/howto:installation:partitionnement#fnt__33) mount -t fs_type /dev/partition /point/de/montage

http://wiki.archlinux.fr/howto:installation:partitionnement#fnt__44) ls /

http://wiki.archlinux.fr/howto:installation:partitionnement#fnt__55) article à venir sur partition primaire/partition logiques

http://wiki.archlinux.fr/howto:installation:partitionnement#fnt__66) static filesystem table ou table statique des systèmes de fichier

archlinux/choisir_un_schema_de_partitionnement.txt · Dernière modification : 2018/11/17 12:52 de 127.0.0.1