FDISK(8)

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

SYNOPSIS

fdisk [options] périphérique

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

DESCRIPTION

fdisk est un programme piloté par des fenêtres de dialogue permettant la création et la manipulation des tables de partitions. Les tables de partitions GPT, MBR, Sun, SGI et BSD sont prises en charge.

Les périphériques blocs 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 habituellement sur le secteur 0 du disque (dans l’univers BSD, les termes « tranche » et « étiquette de disque » sont utilisés).

Tout le partitionnement est piloté par les limites d’E/S du périphérique (la topologie) par défaut. fdisk permet d’optimiser la disposition de disque pour une taille de secteur de 4 Ko et utilise un décalage d’alignement sur les périphériques modernes pour les MBR et GPT. C’est toujours une bonne idée d’accepter les valeurs par défaut de fdisk car ces valeurs (par exemple, les premier et dernier secteurs de partition) et les tailles de partition indiquées par la notation +/-<taille>{M,G,...} sont toujours alignées sur les propriétés du périphérique.

L’adressage CHS (Cylinder-Head-Sector) est obsolescent et n’est pas utilisé par défaut. Veuillez ne pas suivre les vieux articles et les recommandations avec fdisk -S <n> -H <n> pour les SSD et les périphériques blocs de secteurs 4 Ko.

Remarquez que partx(8) fournit une interface évoluée pour afficher les dispositions de disque dans les scripts, fdisk est surtout conçu pour les humains. La rétrocompatibilité de la sortie de fdisk n’est pas garantie. L’entrée (les commandes) devraient toujours être rétrocompatibles.

OPTIONS

-b, --sector-size taille
    Indiquer la taille des secteurs du disque. Les valeurs possibles sont 512, 1024, 2048 et 4096. Le noyau connaît la taille de secteur pour les périphériques blocs normaux. N’utilisez cette option que sur des noyaux très anciens, en travaillant avec des images disque ou pour passer outre la taille par défaut du kernel. Depuis util-linux 2.17, fdisk fait la différence entre les tailles de secteurs logique et physique. Cette option modifie les deux tailles de secteurs par taille.

-B, --protect-boot
    Ne pas écraser le début du premier secteur de disque lors de la création d’une nouvelle étiquette de disque. Cette fonctionnalité est gérée pour les GPT et MBR.

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

-L, --color[=quand]
    Colorer la sortie. L’argument facultatif quand peut être auto, never ou always. En absence d’argument quand, auto est la valeur par défaut. Les couleurs peuvent être désactivées. Pour les valeurs par défaut internes, consultez la sortie de la commande avec --help. Consultez également la section COULEURS.

-l, --list
    Liste les tables de partitions pour le périphérique spécifié puis arrête.

    Si aucun périphérique est donné, les périphériques mentionnés dans /proc/partitions (si le fichier existe) sont utilisés. Les périphériques sont toujours listés dans l’ordre spécifié sur la ligne de commande ou par le noyau listé dans /proc/partitions.

-x, --list-details
    Identique à --list, mais avec plus de détails.

--lock[=mode]
    Utiliser un verrou BSD exclusif pour le périphérique ou le fichier visé. L’argument facultatif mode peut être yes, no (ou 1 et 0) ou nonblock. Si cet argument est absent, sa valeur par défaut est yes. Cette option écrase la variable d’environnement $LOCK_BLOCK_DEVICE. Le comportement par défaut est de n’utiliser aucun verrou, mais cela est recommandé pour éviter des collisions avec systemd-udevd(8) ou d’autres outils.

-n, --noauto-pt
    Ne pas créer automatiquement par défaut une table de partitions sur les périphériques vides. La table de partitions doit être explicitement créée par l’utilisateur (avec une commande telle que « o », « g », etc.).

-o, --output liste
    Indiquer les colonnes à afficher. Utilisez --help pour obtenir une liste de toutes les colonnes disponibles.

    La liste de colonnes par défaut peut être étendue si liste est indiquée sous la forme +liste (par exemple, -o +UUID).

-s, --getsz
    Afficher la taille, en secteur de 512 octets, de chaque périphérique bloc donné. Cette option est obsolète, remplacée par blockdev(8).

-t, --type type
    N’activer la prise en charge que pour les étiquettes de disque du type indiqué et désactiver la prise en charge pour tous les autres types.

-u, --units[=unité]
    Lors de l’affichage des tables de partitions, montrer les tailles en secteurs (sectors) ou en cylindres (cylinders). L’affichage par défaut est en secteur. Par rétrocompatibilité, cette option peut être utilisée sans l’argument unité — le mode par défaut est alors utilisé. Remarquez que l’argument unité facultatif ne peut pas être séparé de l’option -u par une espace, la forme correcte est par exemple « -u=cylindres ».

-C, --cylinders nombre
    Indiquer le nombre de cylindres du disque. L’utilité de cette option est inconnue.

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

-S, --sectors nombre
    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.

-w, --wipe quand
    Effacer les signatures de système de fichiers, de RAID et de table de partitions du périphérique dans le but d’éviter de possibles collisions. L’argument quand peut être auto, never ou always. Quand cette option n’est pas fournie, auto est la valeur par défaut, auquel cas les signatures sont effacées seulement dans le mode interactif. Dans tous les cas, les signatures détectées sont rapportées par des messages d’avertissement avant la création d’une nouvelle table de partitions. Consultez aussi la commande wipefs(8).

-W, --wipe-partitions quand
    Effacer les signatures de système de fichiers, de RAID et de table de partitions de partitions nouvellement créées dans le but d’éviter de possibles collisions. L’argument quand peut être auto, never ou always. Quand cette option n’est pas fournie, auto est la valeur par défaut, auquel cas les signatures sont effacées seulement dans le mode interactif et après confirmation de l’utilisateur. Dans tous les cas, les signatures détectées sont rapportées par des messages d’avertissement avant la création d’une nouvelle table de partitions. Consultez aussi la commande wipefs(8).

-h, --help
    Afficher l’aide-mémoire puis quitter.

-V, --version
    Afficher la version et quitter.

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/admin-guide/devices.txt dans la documentation du noyau Linux.

TAILLES

La fenêtre de dialogue « last sector » (dernier secteur) accepte une taille de partition indiquée par un nombre de secteurs ou par une notation +/-<taille>{K,B,M,G,...}.

Si le préfixe de taille est « + », alors elle est interprétée relativement au premier secteur de partition. Si le préfixe est « - », alors elle est interprétée relativement à la limite haute (dernier secteur disponible pour la partition).

Si la taille est indiquée en octets, elle peut être suivie d’un suffixe multiplicatif KiB (1024 octets), MiB (1024*1024 octets) et ainsi de suite pour GiB, TiB, PiB, EiB, ZiB et YiB (la partie « iB » est facultative, par exemple « K » est identique à « KiB »).

Les tailles relatives, si spécifiées avec des suffixes multiplicatifs (par ex, +100MiB), sont toujours alignées d’après les limites du périphérique d’E/S. La notation +/-<taille>{K,B,M,G,...} est recommandée.

Le dernier secteur de la partition est calculé strictement comme <début>
<taille> (sans -1) si la taille est spécifiée par la notation +<secteurs>. Dans ce cas, la taille n’est pas alignée sur les limites du périphérique d’E/S

Par compatibilité ascendante, fdisk accepte aussi les suffixes KB (1000 octets), MB (1000*1000 octets) et ainsi de suite pour GB, TB, PB, EB, ZB et YB. Ces suffixes en 10^N sont dépréciés.

FICHIERS DE SCRIPTS

fdisk permet de lire (avec la commande « I ») les fichiers script compatibles avec sfdisk(8). Le script est appliqué à la table de partitions en mémoire et la table de partitions peut ensuite être modifiée avant d’être écrite sur le périphérique.

À l’inverse, l’agencement de la table de partitions actuellement en mémoire peut être écrite dans un fichier script à l’aide de la commande « O ».

Les fichiers script sont compatibles entre cfdisk(8), sfdisk(8), fdisk et les autres applications libfdisk. Pour plus de précisions, consultez sfdisk(8).

ÉTIQUETTES DE DISQUE

GPT (table de partitions GUID)
    GPT est la norme moderne pour la disposition de la table de partitions. GPT utilise des adresses de blocs logiques sur 64 bits, des sommes de contrôle, des UUID et des noms pour les partitions, et n’est pas limitée en nombre de partitions (bien que le nombre de partitions soit souvent restreint à 128 dans de nombreux outils de partitionnement).

    Remarquez que le premier secteur est toujours réservé pour un secteur d’amorçage principal de protection (protective MBR) dans la spécification GPT. Cela empêche les outils de partitionnement ne prenant en charge que le MBR de ne pas reconnaître et d’écraser les disques GPT.

    GPT est toujours un meilleur choix que MBR, en particulier sur du matériel moderne avec un chargeur d’amorçage UEFI.

Type DOS (MBR)
    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, la position de départ et la taille de chaque partition sont conservées 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 si 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. L’adressage C/T/S est obsolète et pourrait ne plus être pris en charge dans une future version de fdisk.

    Veuillez lire la section sur le mode DOS si vous voulez des partitions compatibles avec DOS. fdisk ne s’occupe pas des limites de cylindre par défaut.

Type BSD ou Sun
    Une étiquette de disque de type BSD ou Sun peut décrire 8 partitions, dont la troisième devrait être une partition de «\ disque entier\ ». Ne commencez pas une partition utilisant réellement son premier secteur (comme une partition d’échange) sur le cylindre\ 0, car cela détruirait l’étiquette du disque. Remarquez qu’une étiquette BSD est normalement imbriquée dans une partition DOS.

Type IRIX/SGI
    Une étiquette de disque 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 et 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 sync(2) et une ioctl(BLKRRPART (relecture de la table de partitions du disque) sont réalisées avant de quitter quand la table de partitions a été mise à jour.

AVERTISSEMENT SUR LE MODE DOS ET DOS 6.X

Notez que tout cela est obsolète. Vous n’avez pas à vous soucier de la géométrie et des cylindres sur les systèmes d’exploitation modernes. Si vous voulez vraiment un partitionnement compatible DOS, alors vous devez activer le mode DOS et le cylindre comme unité en utilisant les options de ligne de commande « -c=dos -u=cylinders ».

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’attribut /U est indiqué — nous considérons que c’est un bogue des commandes FORMAT et FDISK de DOS.

Par conséquent, si vous utilisez fdisk ou cfdisk(8) pour modifier la taille d’une partition DOS, vous devez aussi utiliser dd(1) 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(8) pour créer une entrée de table de partitions DOS pour /dev/sda1, vous devriez alors (après avoir quitté fdisk et redémarré Linux afin que les informations de 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.

Habituellement, fdisk détermine 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, de géométrie physique et encore moins des paramètres simplistes tels que 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 nécessaire pour une bonne coopération avec les autres systèmes.

Chaque fois qu’une table de partitions est écrite en mode DOS, 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 pas 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.

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 les programmes Linux fdisk ou cfdisk(8).

COULEURS

La colorisation de la sortie est implémentée grâce aux fonctionnalités de terminal-colors.d(5). La colorisation implicite peut être désactivée via un fichier vide

    /etc/terminal-colors.d/{commande}.disable

pour la commande {commande} ou pour tous les outils par

    /etc/terminal-colors.d/disable

Since version 2.41, the $NO_COLOR environment variable is also supported to disable output colorization unless explicitly enabled by a command-line option.

$XDG_CONFIG_HOME/terminal-colors.d_ ou $HOME/.config/terminal-colors.d spécifiques à l’utilisateur remplacent les réglages globaux.

Notez que la colorisation de la sortie peut être activée par défaut. Dans ce cas, les répertoires terminal-colors.d n’existent pas forcément automatiquement.

Les noms de couleurs logiques pris en charge par fdisk sont les suivantes :

header
    L’en-tête des tables en sortie.

help-title
    Les titres de la section d’aide.

warn
    Les messages d’avertissement.

welcome
    Le message de bienvenue.

ENVIRONNEMENT

FDISK_DEBUG=all
    Activer la sortie de débogage de fdisk.

LIBFDISK_DEBUG=all
    Activer la sortie de débogage de libfdisk.

LIBBLKID_DEBUG=all
    Activer la sortie de débogage de libblkid.

LIBSMARTCOLS_DEBUG=all
    Activer la sortie de débogage de libsmartcols.

LIBSMARTCOLS_DEBUG_PADDING=on
    Utiliser des caractères de remplissage visibles.

LOCK_BLOCK_DEVICE=<mode>
    Utiliser un verrou exclusif BSD. Le mode est « 1 » ou « 0 ». Consulter --lock pour davantage de détails.

AUTEURS

La version originale a été écrite par Andries E. Brouwer, A. V. Le Blanc et d’autres.

VOIR AUSSI

cfdisk(8), mkfs(8), partx(8), sfdisk(8)

SIGNALER DES BOGUES

Pour signaler un bogue, utilisez le

DISPONIBILITÉ

La commande fdisk fait partie du paquet util-linux, elle est disponible sur