Content-type: text/html
fdisk -l [-u] [-b taille-secteur ] [ périphérique ... ]
fdisk -s partition ...
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 :
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.
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.
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 ».