fdisk -l [-u] [ périphérique ...]
fdisk -s partition ...
Dans le monde BSD, on parle de « tranches de disque » (disk slices) et d'« étiquette de disque » (disklabels).
Linux a besoin d'au moins une partition, à savoir pour son système de fichiers racine. Il peut utiliser des fichiers et/ou des partitions d'échange (swap) d'échange, mais ces dernières sont plus efficaces. C'est pourquoi on dédie en général une seconde partition Linux comme partition d'échange. Sur le matériel compatible Intel, le BIOS qui démarre le système ne peut souvent accéder qu'aux 1024 premiers cylindres du disque. Pour cette raison, les personnes possédant des disques volumineux créent souvent une troisième partition, d'à peine quelques Mo de large, montée typiquement en /boot, pour y conserver l'image du noyau et quelques fichiers auxiliaires nécessaires au démarrage, afin de s'assurer que ce matériel soit accessible depuis le BIOS. Il peut y avoir des raisons de sécurité, de facilité d'administration et de sauvegarde, ou de tests qui nécessitent d'utiliser plus que le nombre minimal de partitions.
fdisk (dans la première forme d'invocation) est un programme piloté par menu utilisé pour la création et la manipulation de tables de partitions. Il comprend les tables de partitions de type DOS, et les étiquettes de disque BSD ou SUN.
fdisk ne comprend pas les table de partitions GUID (GPT) et n'est pas conçue pour les grandes partitions. Pour les cas particuliers, veuillez utiliser la commande parted(8) du projet GNU.
Le périphérique est en général l'un des suivants :
(/dev/hd[a-h] pour les disques IDE, /dev/sd[a-p] pour les disques SCSI, /dev/ed[a-d] pour les disques ESDI, /dev/xd[ab] pour les disques XT). Un nom de périphérique référence le disque entier.
La partition est un nom de périphérique suivi d'un numéro de partition. Par exemple, /dev/hda1 est la première partition du premier disque dur IDE du système. Les disques peuvent contenir jusqu'à 15 partitions. Voyez également /usr/src/linux/Documentation/devices.txt.
Une étiquette de disque de type BSD/SUN peut décrire 8 partitions, dont la troisième devrait être une partition de « disque entier ». Ne faites pas démarrer de partition utilisant réellement son premier secteur sur le cylindre 0 (comme une partition d'échange), car cela détruirait l'étiquette du disque.
Une étiquette de disque de type IRIX/SGI peut décrire 16 partitions, dont la onzième devrait être une partition entière de « volume », alors que la neuvième devrait être un « en-tête de volume ». L'en-tête de volume couvre également la table des partitions, c.-à-d. qu'il débute au bloc zéro et s'étend par défaut sur 5 cylindres. L'espace restant dans l'en-tête de volume peut être utilisé par des entrées de répertoires d'en-tête. Aucune partition ne peut empiéter sur l'en-tête de volume. Ne modifiez pas son type ni ne créez de système de fichiers dessus, car vous perdriez alors la table des partitions. N'utilisez ce type d'étiquette que lorsque vous travaillez sur des machines IRIX/SGI ou avec des disques IRIX/SGI sous Linux.
Une table de partitions de type DOS peut décrire un nombre illimité de partitions. Dans le secteur 0, il y a de la place pour décrire 4 partitions (appelées « primaires »). L'une d'entre elles peut être une partition étendue ; c'est une sorte de boîte contenant des partitions logiques, dont les descripteurs sont trouvés dans une liste chaînée de secteurs, chacun précédant les partitions logiques correspondantes. Les quatre partitions primaires, présentes ou pas, portent les numéros 1-4. Les partitions logiques sont numérotées à partir de 5.
Dans une table de partitions de type DOS, le décalage de départ et la taille de chaque partition sont conservés de deux façons : comme un nombre absolu de secteurs (sur 32 bits), ou comme un triplet Cylindres/Têtes/Secteurs (sur 10+8+6 bits). La première manière fonctionne bien - avec des secteurs de 512 octets, cela marchera jusqu'à 2 To. La seconde possibilité souffre de deux problèmes différents. Primo, ces champs C/T/S ne peuvent être remplis que lorsque le nombre de têtes et le nombre de secteurs par piste sont connus. Secundo, même si l'on connaissait ces nombres, les 24 bits qui sont disponibles ne suffiraient pas. DOS utilise uniquement C/T/S, Windows utilise les deux, Linux n'utilise jamais C/T/S.
Si c'est possible, fdisk déterminera automatiquement la géométrie du disque. Ce n'est pas nécessairement la géométrie physique du disque (en effet, les disques modernes ne possèdent pas à proprement parler quoi que ce soit pouvant être assimilé à une géométrie physique, et encore moins quelque chose pouvant être décrit par la forme simpliste Cylindres/Têtes/Secteurs), mais c'est la géométrie de disque qu'utilise MS-DOS pour la table des partitions.
D'habitude, tout se passe bien par défaut, et il n'y a aucun problème si Linux est le seul système sur le disque. Néanmoins, si le disque doit être partagé avec d'autres systèmes d'exploitation, c'est en général une bonne idée de laisser créer au moins une partition par un fdisk d'un autre système d'exploitation. Quand Linux démarre, il examine la table des partitions, et essaie de déduire quelle (fausse) géométrie est requise pour une bonne coopération avec les autres systèmes.
Chaque fois qu'une table des partitions est écrite, un test de cohérence est effectué sur les entrées de la table des partitions. Ce test vérifie que les débuts et fins physiques et logiques sont identiques, et que la partition commence et se termine sur une limite de cylindre (sauf pour la première partition).
Certaines versions de MS-DOS créent une première partition qui ne commence pas sur une limite de cylindre, mais sur le secteur 2 du premier cylindre. Les partitions commençant au cylindre 1 ne peuvent débuter sur une limite de cylindre, mais il est peu probable que cela pose problème à moins que vous n'ayez également OS/2 sur votre machine.
Un sync(2) et un ioctl(2) BLKRRPART (relire la table des partitions à partir du disque) sont exécutés avant la sortie quand la table des partitions a été mise à jour. Il y a longtemps, il était nécessaire de redémarrer après l'utilisation de fdisk. Je ne crois pas que cela soit encore le cas - en effet, redémarrer trop rapidement pourrait causer la perte de données non encore écrites sur disque. Notez que le noyau et le matériel disque peuvent tous deux placer des données en mémoire tampon.
Si vous utilisez cfdisk ou fdisk pour modifier la taille d'une entrée DOS de la table des partitions, alors vous devrez également utiliser dd pour mettre à zéro les 512 premiers octets de cette partition avant d'utiliser FORMAT DOS pour formater cette partition. Par exemple, si vous avez utilisé cfdisk pour créer une entrée DOS dans la table des partitions pour /dev/hda1, alors (après la sortie de fdisk ou de cfdisk et après avoir redémarré Linux afin que les informations sur la table des partitions soient valides) vous devriez utiliser la commande « dd if=/dev/zero of=/dev/hda1 bs=512 count=1 » pour mettre à zéro les 512 premiers octets de la partition.
SOYEZ EXTRÊMEMENT PRUDENT si vous utilisez la commande dd, car une petite faute de frappe peut rendre toutes les données de votre disque inutilisables.
Pour obtenir les meilleurs résultats, vous devriez toujours utiliser un programme de partitionnement spécifique au système d'exploitation. Par exemple, vous devriez créer des partitions DOS avec le programme FDISK DOS, et des partitions Linux avec l'un des programmes Linux fdisk ou cfdisk.
Depuis quelque temps il y a aussi parted. L'interface de cfdisk est plus jolie, mais parted fait bien plus : il ne redimensionne pas seulement les partitions, il redimensionne également les systèmes de fichiers qui y sont installés.
L'étiquette de disque de type IRIX/SGI n'est pas supportée actuellement par le noyau. De plus, les répertoires d'en-tête IRIX/SGI ne sont pas encore entièrement supportés.
Il manque l'option « écrire la table des partitions dans un fichier ».
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 8 fdisk ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Dernière mise à jour : 26 mai 2008