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.