Content-type: text/html Manpage of FDISK

FDISK

Section: Manuel du Programmeur Linux (8)
Updated: 11 juin 1998
Index Return to Main Contents
 

NOM

fdisk - manipulateur de tables de partitions pour Linux  

SYNOPSIS

fdisk [-u] [-b taille-secteur ] périphérique

fdisk -l [-u] [-b taille-secteur ] [ périphérique ... ]

fdisk -s partition ...

fdisk -v  

DESCRIPTION

Les disques durs peuvent être divisés en un ou plusieurs disques logiques appelés partitions. Cette division est décrite dans la table des partitions trouvée sur le secteur 0 du disque.

Dans le monde BSD, on parle de « tranches de disque » et de « label de disque ».

Linux a besoin d'au moins une partition, à savoir pour son système de fichiers racine. Il peut utiliser des fichiers d'échange (swap) ou des partitions 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 les matériels compatibles 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, de juste quelques Mo de large, montée typiquement en /boot, pour conserver l'image du noyau et quelques fichiers auxiliaires nécessaires au démarrage, afin de s'assurer que ce matériel sera accessible par le BIOS. Il peut y avoir des raisons de sécurité, de facilité d'administration et de sauvegarde ou de tests nécessitant 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 labels de disque BSD ou SUN.

Le périphérique est en général l'un des suivants :

/dev/hda /dev/hdb /dev/sda /dev/sdb
(/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érencie 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 IDE peuvent contenir jusqu'à 63 partitions, les disques SCSI jusqu'à 15. Voyez également /usr/src/linux/Documentation/devices.txt.

Un label de disque de type BSD/SUN peut décrire 8 partitions, dont la troisième devrait être une partition de « disque entier ». Ne créez pas de partition qui utilise son premier secteur sur le cylindre 0 (comme une partition de swap), car cela détruirait le label du disque.

Un label 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 de label que quand vous travaillez sous Linux sur des machines IRIX/SGI ou quand vous utilisez 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 de secteurs par piste est connu. 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 n'ont pas réellement de géométrie physique, et sûrement pas une géométrie décrite dans 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 cela ne pourrait causer des problèmes que si vous avez OS/2 sur votre machine.

Un sync() et un ioctl() 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 peut causer la perte de données non encore écrites sur disque. Notez qu'aussi bien le noyau que le matériel disque peuvent mettre des données dans des tampons.

 

AVERTISSEMENT DOS 6.x

La commande DOS 6.x FORMAT recherche certaines informations sur le premier secteur de la zone de données de la partition, et suppose que cette information est plus fiable que l'information contenue dans la table des partitions. Le FORMAT DOS suppose que FDISK DOS efface les 512 premiers octets de la zone de données de la partition à chaque fois qu'un changement de taille se produit. FORMAT DOS regardera cette information additionnelle même si le drapeau /U est fourni -- nous considérons que c'est un bogue dans les FORMAT et FDISK DOS.

Le fait est que si vous utilisez cfdisk ou fdisk pour modifier la taille d'une entrée DOS de la table des partitions, alors vous devez aussi 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 pour 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 les partitions Linux avec l'un des programmes Linux fdisk ou cfdisk.

 

OPTIONS

-b taille-secteur
Spécifier la taille de secteur du disque. Les valeurs valides sont 512, 1024 et 2048. (Les noyaux récents connaissent la taille de secteur. N'utilisez cette option que sur des noyaux anciens ou pour passer outre l'avis du noyau.)
-l
Lister les tables de partitions pour les périphériques spécifiés et ensuite se terminer. Si aucun périphérique n'est fourni, ceux mentionnés dans /proc/partitions (si ce fichier existe) sont utilisés.
-u
Lors du listage des tables de partitions, donner les tailles en secteurs plutôt qu'en cylindres.
-s partition
La taille de la partition (en blocs) est affichée sur la sortie standard.
-v
Afficher le numéro de version de fdisk et se terminer normalement.
 

BOGUES

Il existe plusieurs programmes *fdisk. Chacun a ses points forts et ses points faibles. Essayez-les dans l'ordre cfdisk, fdisk, sfdisk. (En effet, cfdisk est un beau programme qui a des exigences strictes sur les tables de partitions qu'il accepte, et qui produit des tables de partitions de haute qualité. Utilisez-le si vous le pouvez. fdisk est un programme bogué qui fait des choses assez floues - d'habitude, il arrive à produire des résultats raisonnables. Son seul avantage est qu'il supporte les labels de disque BSD, et d'autres tables de partitions non DOS. Évitez-le si vous le pouvez. sfdisk est destiné uniquement aux hackers - l'interface utilisateur est quelque peu rebutante, mais il travaille mieux que fdisk et est plus puissant que fdisk et cfdisk. De plus, il peut être utilisé de façon non interactive.)

Le label de disque de type IRIX/SGI n'est pas supporté 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 ».  

VOIR AUSSI

cfdisk(8), parted(8), sfdisk(8)  

TRADUCTION

Frédéric Delanoy <delanoy_f at yahoo.com>, 2002.


 

Index

NOM
SYNOPSIS
DESCRIPTION
AVERTISSEMENT DOS 6.x
OPTIONS
BOGUES
VOIR AUSSI
TRADUCTION

This document was created by man2html, using the manual pages.
Time: 13:53:22 GMT, June 23, 2002