FDISK(8)

NOM
fdisk - Manipuler la table de partitions d'un disque

SYNOPSIS
fdisk [-uc] [-b taille_du_secteur] [-C cyls] [-H têtes] [-S sects] périphérique

fdisk -l [-u] [périphérique ...]

fdisk -s partition ...

fdisk -v

fdisk -h

DESCRIPTION
La première manière de lancer fdisk se fait à l'aide d'un programme piloté par un menu qui permet la création et la manipulation des tables de partitions, y compris les tables de partitions de type DOS, et les étiquettes de disques BSD ou SUN.

fdisk ne comprend pas les tables de partitions GUID (GPT: « GUID Partition Table ») et n'est pas conçu pour les partitions de grandes tailles. Pour ces cas, utilisez GNU parted(8), qui est plus avancé.

fdisk n'utilise ni le mode de compatibilité DOS, ni le cylindre comme unité d'affichage par défaut. L'ancien comportement DOS obsolète peut être activé avec les options -c=dos -u=cylinders en ligne de commande.

Les disques durs peuvent être divisés en un ou plusieurs disques logiques appelés partitions. Cette division est enregistrée dans la table de partitions qui se trouve sur le secteur 0 du disque (dans l'univers BSD, elles sont appelées « tranches » et « étiquette de disque »).

Linux a besoin d'au moins une partition, en particulier pour la racine de son système de fichiers. Il peut utiliser des fichiers 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 à l'espace 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. Pour diverses raisons de sécurité, de facilité d'administration et de sauvegarde, ou de tests, on peut avoir besoin d'utiliser plus que le nombre minimal de partitions.

PÉRIPHÉRIQUES
Le périphérique est habituellement du genre /dev/sda, /dev/sdb, etc. Un nom de périphérique fait référence au disque entier. Les vieux systèmes sans libata (une bibliothèque utilisée dans le noyau Linux pour gérer les contrôleurs et les périphériques ATA) font une différence entre les disques IDE et SCSI. Dans un tel cas, le nom de périphérique sera /dev/hd* (IDE) ou /dev/sd* (SCSI).

La partition est un nom de périphérique suivi d'un numéro de partition. Par exemple, /dev/sda1 est la première partition du premier disque dur du système. Consultez également Documentation/devices.txt.

ÉTIQUETTES DE DISQUE
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 étiquetée « en-tête de volume ». L'en-tête de volume couvre également la table de partitions, c'est-à-dire 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 les 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 de 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 se trouvent dans une liste chaînée de secteurs, chacun décrivant 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 fonctionnera jusqu'à 2 To. La seconde possibilité souffre de deux problèmes. Tout d'abord, ces champs C/T/S ne peuvent être remplis que si le nombre de têtes et le nombre de secteurs par piste sont connus. Ensuite, même ces nombres étaient connus, 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 de 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 créer au moins une autre partition avec un fdisk d'un autre système d'exploitation. Quand Linux démarre, il examine la table de partitions, et essaie de déduire quelle est la géométrie factice dont on a besoin pour une bonne coopération avec les autres systèmes.

Chaque fois qu'une table de partitions est écrite, un test de cohérence est effectué sur les entrées de la table de partitions. Ce test vérifie que les débuts et fins physiques et logiques sont identiques, et que chaque 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 d'avoir également OS/2 sur la machine.

Un sync() et un ioctl(BLKRRPART) (relire la table de partitions à partir du disque) sont exécutés avant la sortie quand la table de partitions a été mise à jour. Il y a longtemps, il était nécessaire de redémarrer après 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 qui ne seraient pas encore écrites sur le disque. Remarquez que le noyau et le disque peuvent tous deux placer des données dans la mémoire tampon.

AVERTISSEMENT CONCERNANT DOS 6.x

La commande FORMAT de DOS 6.x recherche certaines informations dans le premier secteur de la section de données de la partition. Elle considère ces informations comme étant plus fiables que celles de la table de partitions. La commande FORMAT de DOS s'attend à ce que FDISK de DOS efface les 512 premiers octets de la section de données d'une partition chaque fois qu'il y a une modification de sa taille. La commande FORMAT de DOS recherchera cette information supplémentaire même si l'indicateur /U est indiqué — nous considérons que c'est un bogue des commandes FORMAT et FDISK de DOS.

Par conséquent, si vous utilisez cfdisk ou fdisk pour modifier la taille d'une partition DOS, vous devez aussi utiliser dd pour mettre à zéro les 512 premiers octets de cette partition avant d'utiliser la commande FORMAT de DOS pour formater cette partition. Par exemple, si vous avez utilisé cfdisk pour créer une entrée de table de partitions DOS pour /dev/sda1, vous devriez alors (après la sortie de fdisk ou de cfdisk et après avoir redémarré Linux afin que les informations sur la table de partitions soient correctes) utiliser la commande « dd if=/dev/zero of=/dev/sda1 bs=512 count=1 » pour mettre à zéro les 512 premiers octets de la partition.

Soyez très vigilant si vous utilisez la commande dd, car une simple faute de frappe dans la ligne de commande peut détruire toutes les données du disque.

De façon à obtenir de meilleurs résultats, vous devriez toujours utiliser un programme de table de partitions spécifique au système d'exploitation. Par exemple, vous devriez créer des partitions DOS avec le programme DOS FDISK et des partitions Linux avec le programme Linux fdisk ou le programme Linux cfdisk.

OPTIONS

-b taille_du_secteur
    Indiquer la taille des secteurs du disque. Les valeurs possibles sont 512, 1024, 2048 et 4096 (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). Depuis util-linux 2.17, fdisk fait la différence entre les tailles de secteurs logique et physique. Cette option modifie les tailles des deux secteurs en taille_du_secteur.

-c[=mode]
    Indiquer le mode de compatibilité, dos ou nondos. Le mode non DOS est sélectionné par défaut. Pour compatibilité ascendante, cette option peut être utilisée sans le paramètre mode — le mode par défaut est alors utilisé. Remarquez que le paramètre mode facultatif ne peut pas être séparé de l'option -c par une espace, la forme correcte est par exemple « -c=dos ».

-C cylindres
    Indiquer le nombre de cylindres du disque. Je ne vois pas à quoi cela peut servir.

-H têtes
    Indique le nombre de têtes du disque (pas le nombre physique, bien sûr, mais celui utilisé pour la table de partitions). Valeurs raisonnables : 255 et 16.

-S secteurs
    Indiquer le nombre de secteurs par piste du disque (pas le nombre physique,bien sûr, mais celui utilisé pour la table de partitions). 63 est une valeur raisonnable.

-h  Afficher l'aide puis quitter.

-l  Afficher les tables de partitions des périphériques indiqués puis quitter. Si aucun périphérique n'est fourni, ceux mentionnés dans /proc/partitions (si ce fichier existe) sont utilisés.

-s partition ...
    Afficher la taille (en bloc) de chaque partition donnée.

-u[=unité]
    Lors de l'affichage des tables de partitions, montrer les taille en secteur (sectors) ou en cylindre (cylinders). L'affichage par défaut est en secteur. Pour compatibilité ascendante, cette option peut être utilisée sans le paramètre unité — le mode par défaut est alors utilisé. Remarquez que le paramètre unité facultatif ne peut pas être séparé de l'option -u par une espace, la forme correcte est par exemple « -c=cylinders ».

-v  Afficher le numéro de version de fdisk et quitter.

BOGUES
Il existe plusieurs programmes *fdisk. Chacun a ses points forts et ses points faibles. Essayez-les dans l'ordre cfdisk, fdisk et sfdisk. (En effet, cfdisk est un beau programme qui a des exigences strictes quant aux 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 fonctionne sur les étiquettes de disque BSD, et d'autres tables de partitions non DOS. Évitez-le si vous le pouvez. sfdisk est destiné uniquement aux spécialistes — l'interface utilisateur est rebutante, mais il fonctionne mieux que fdisk et est plus puissant que cfdisk. De plus, il peut être utilisé de façon non interactive.)

L'option parted existe depuis peu. L'interface pour cfdisk est plus agréable, mais cette option fait bien plus: elle permet non seulement de redimensionner les partitions, mais également les systèmes de fichiers au sein de celles-ci.

Le noyau ne sait actuellement pas traiter les étiquettes de disque de type IRIX/SGI,et ne sait que partiellement traiter les répertoires d'en-tête IRIX/SGI.

Il manque l'option « écrire la table de partitions dans un fichier ».

VOIR AUSSI
cfdisk(8), sfdisk(8), mkfs(8), parted(8), partprobe(8), kpartx(8)

DISPONIBILITÉ
La commande fdisk fait partie du paquet util-linux, elle est disponible sur <URL:ftp://ftp.kernel.org/pub/linux/utils/util-linux/>.

TRADUCTION
Cette page de manuel a été traduite par Frédéric Delanoy <delanoy_f AT yahoo DOT com> en 2002 et mise à jour par Christophe Blaess en 2003. La version présente dans Debian est maintenue par Jade Alglave <jade DOT alglave AT ens-lyon DOT org> et les membres de la liste <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.