Utilisateur:jcl_vanier

De Wiki de la communauté Mandriva.

Cette page constitue un appel à commentaires (RFC ;)

Sommaire

Combien de partitions peut-on créer sur un même disque dur ?

Réponse: ça dépend

Oui, mais encore ?

Un disque dur d'un PC, peut contenir jusqu'à 4 partitions dites primaires. L'adresse physique de ces 4 partitions est inscrite dans le premier secteur du disque (le MBR ou Master Boot Record). L'une de ces partitions peut être marquée comme partition étendue. Elle pourra alors contenir un certain nombre de nouvelles partitions dites logiques. Chacune de ces partitions logiques contient un premier secteur (EBR ou Extended Boot Record) contenant l'adresse de la partition logique suivante. Il faut donc parcourir cette chaîne d'adresses pour accéder à une partition quelconque.

L'avantage de cette structure est qu'il n'y a pas vraiment de limite au nombre de partitions logiques que l'on peut créer, sinon la limite du bon sens et de la taille du disque.

Cependant traditionnellement linux pouvait gérer 64 partitions (en fait 63 ou 62).

Comment?

Du point de vue du noyau, un disque est un périphérique comme un autre. Son accès est rendu possible par l'intermédiaire de fichiers spéciaux placés dans le répertoire /dev et dont le nom évoque le type de périphérique: hard disk. On a donc une série de fichiers nommés /dev/hd* Le premier disque (du point de vue du bios) porte le nom /dev/hda, le deuxième /dev/hdb etc.

À l'intérieur de chaque disque, les partitions sont reconnues par un numéro. Et contrairement à l'habitude en informatique la numérotation ne commence pas par 0 mais par 1 (ce qui peut causer des confusions lorsqu'on configure grub mais c'est un autre sujet). On a donc:

/dev/hda1 pour la première partition primaire
/dev/hda2 pour la deuxième,
/dev/hda3 pour la troisième et
/dev/hda4 pour la quatrième.


Si une partition primaire est marquée comme étendue, les partitions logiques ont un numéro commençant par 5

/dev/hda5 pour la première
/dev/hda6 pour la deuxième etc.

Une particularité de ce système est que quel que soit le nombre de partitions primaires, la première partition logique portera le nom /dev/hda5.

Le noyau, lui, identifie les périphériques par des couples de nombres, associés aux noms de fichiers spéciaux. Ces couples sont composés de ce qu'on appelle un code majeur (type de périphérique) suivi d'un code mineur (numéro d'ordre).

Historiquement, l'attribution d'un code majeur/mineur, était déterminé par une liste type inscrite une fois pour toute dans un fichier permettant aux développeurs l'écriture homogène des pilotes. Il fallait, au démarrage du système créer une grande quantité de fichiers spéciaux dont la majeur partie n'était pas utilisée. Aujourd'hui, seuls les fichiers nécessaires sont créés dynamiquement.

Chaque disque dur peut disposer d'un code majeur et d'une plage de 64 codes mineurs pour les différentes partitions. On attribue au premier disque la plage 0-63, au deuxième disque de même type la plage 64-127 et ainsi de suite.

Le premier numéro de chaque plage identifie le disque lui-même, et les suivants les partitions.

La partition étendue , si elle existe, présente une particularité: elle est référencée dans la liste des codes mais pas dans la liste des fichiers spéciaux. En effet, seules les partitions logiques peuvent être montées, pas la partition étendue qui les contient. Par contre, le noyau a besoin d'y accéder pour retrouver les adresses des partitions logiques.

En bref, sur les 64 codes mineurs attribuables à un disque, le premier concerne le disque lui-même (ce qui permet à un utilitaire comme fdisk de fonctionner) et un autre concerne la partition étendue. On peut donc, sous Linux, monter au maximum 62 partitions sur un disque dur.

Voici un exemple de ce qu'on peut voir avec la commande ls sur un système doté de disques IDE.

# ls -l /dev/hd* | sort -k 6.1  -n
brw-r-----  1 root disk      3,  0 2009-02-18 22:57 /dev/hda
brw-r-----  1 root disk      3,  1 2009-02-18 22:57 /dev/hda1
brw-r-----  1 root disk      3,  2 2009-02-18 22:57 /dev/hda2
brw-r-----  1 root disk      3,  5 2009-02-18 21:57 /dev/hda5
brw-r-----  1 root disk      3,  6 2009-02-18 21:57 /dev/hda6
brw-r-----  1 root disk      3,  7 2009-02-18 22:57 /dev/hda7
brw-r-----  1 root disk      3,  8 2009-02-18 21:57 /dev/hda8
brw-r-----  1 root disk      3,  9 2009-02-18 21:57 /dev/hda9
brw-r-----  1 root disk      3, 10 2009-02-18 21:57 /dev/hda10
brw-r-----  1 root disk      3, 11 2009-02-18 21:57 /dev/hda11
brw-r-----  1 root disk      3, 64 2009-02-18 22:57 /dev/hdb
brw-r-----  1 root disk      3, 65 2009-02-18 22:57 /dev/hdb1
brw-r-----  1 root disk      3, 66 2009-02-18 22:57 /dev/hdb2
brw-r-----  1 root disk      3, 69 2009-02-18 21:57 /dev/hdb5
brw-r-----  1 root disk      3, 70 2009-02-18 21:57 /dev/hdb6
brw-r-----  1 root disk      3, 71 2009-02-18 21:57 /dev/hdb7
brw-rw----+ 1 root floppy   22,  0 2009-02-18 22:57 /dev/hdc
brw-rw----+ 1 jcl  cdwriter 22, 64 2009-02-18 21:57 /dev/hdd
code majeur ----------------^   ^
code mineur --------------------^

On peut voir que les disques hda et hdb ont le même code majeur. hda a le mineur 0 et hdb a le mineur 64 laissant les numéros inférieurs à la disposition de hda.

Les lecteurs de disquettes et de CD ont le même majeur 22 et se voient attribués les mêmes plages de 64 mineurs que les disques durs.

Depuis la version 2008, voir les notes 2008, les disques durs reconnus comme /dev/sd* ne sont plus traité de la même manière. Par défaut, on leur attribue seulement une plage de 16 codes mineurs selon le même principe. Le premier code désigne le disque et un autre code désigne la partition étendue. On peut donc, par défaut, monter un maximum de 14 partitions sur ces disques.

Sur un système plus récent, la commande ls donne:

# ls -l /dev/sd* | sort -k 6.1  -n
brw-rw---- 1 root disk   8,  0 2009-02-20 21:46 /dev/sda
brw-rw---- 1 root disk   8,  1 2009-02-20 21:46 /dev/sda1
brw-rw---- 1 root disk   8,  2 2009-02-20 21:46 /dev/sda2
brw-rw---- 1 root disk   8, 16 2009-02-20 21:46 /dev/sdb
brw-rw---- 1 root disk   8, 17 2009-02-20 21:46 /dev/sdb1
brw-rw---- 1 root disk   8, 18 2009-02-20 21:46 /dev/sdb2
brw-rw---- 1 root disk   8, 19 2009-02-20 21:46 /dev/sdb3
brw-rw---- 1 root disk   8, 21 2009-02-20 20:46 /dev/sdb5
brw-rw---- 1 root disk   8, 22 2009-02-20 20:46 /dev/sdb6
brw-rw---- 1 root disk   8, 23 2009-02-20 20:46 /dev/sdb7
brw-rw---- 1 root disk   8, 24 2009-02-20 20:46 /dev/sdb8
brw-rw---- 1 root disk   8, 25 2009-02-20 20:46 /dev/sdb9
brw-rw---- 1 root disk   8, 26 2009-02-20 21:46 /dev/sdb10
brw-rw---- 1 root disk   8, 27 2009-02-20 20:46 /dev/sdb11
brw-rw---- 1 root disk   8, 28 2009-02-20 20:47 /dev/sdb12
brw-rw---- 1 root disk   8, 29 2009-02-20 20:47 /dev/sdb13
brw-rw---- 1 root disk   8, 30 2009-02-20 21:46 /dev/sdb14
brw-rw---- 1 root floppy 8, 32 2009-02-20 20:46 /dev/sdc
brw-rw---- 1 root floppy 8, 48 2009-02-20 20:46 /dev/sdd
brw-rw---- 1 root floppy 8, 64 2009-02-20 20:46 /dev/sde
brw-rw---- 1 root floppy 8, 80 2009-02-20 20:46 /dev/sdf

On voit bien ici les plages de 16 mineurs.


Extrait des notes 2008

Pilotes modulaires IDE et nouvelle pile libata

Les anciens pilotes PATA (communément appelés IDE) sont maintenant compilés en tant que modules — voir les changements liés au noyau concernant les pilotes modulaires IDE ci-dessous. De ce fait, l'installateur peut maintenant aussi bien utiliser les anciens pilotes comme les nouveaux en utilisant la pile libata.

L'installateur prend par défaut les vieux pilotes pour des raisons de consistance et de fiabilité : utiliser les nouveaux pilotes par défaut a été testé mais n'était pas sans problèmes.

Les nouveaux pilotes possèdent comme nom générique "libata". Tous les disques PATA et SATA contrôlés par libata utilisent désormais /dev/sd* pout leur nom de périphérique au lieu de /dev/hd*.

Quand un contrôleur est supporté seulement par les nouveaux pilotes (libata), l'installation au-delà de la 15ème partition des disques PATA (les disques SCSI, SATA et PATA/IDE sont tous des disques PATA) n'est plus supportée par défaut.

Pour effectuer une installation au delà de la 15ème partition, le noyau d'installation doit être démarré avec le paramètre noauto, qui permettra une sélection manuelle de l'ancien pilote PATA approprié, qui en réalité supporte jusqu'à 63 partitions par disque PATA, comme dans les versions précédentes de Mandriva.

Les personnes ayant besoin de partitionnements complexes peuvent aussi utiliser LVM, qui offre bien plus de flexibilité système pour créer des volumes.


Un problème à éviter

Drakdisk autorise (20/02/09) la création de 15 partitions logiques dans une partition étendue (on suppose qu'on est sur un disque reconnu comme sd*), sans tenir compte des partitions primaires déjà créées. Cela conduit inévitablement à des problèmes. ce fil.

Ad (via La Vignette)
en recherche d’emploi ?