La commande Linux — fdisk

fdisk est une ligne de commande cloison éditeur qui vous permet de créer, éditer et gérer les partitions sur les disques durs de votre ordinateur à partir de la ligne de commande. Il existe d'autres outils similaires, tels que cfdisk et parted, mais fdisk est de loin le plus universel et probablement le plus simple.

Même si vous ne prévoyez pas de l'utiliser régulièrement, il est bon pour tout utilisateur de Linux d'avoir une idée générale de la façon de travailler avec fdisk, car c'est une excellente solution de repli lorsque les options graphiques ne sont pas disponibles, et c'est probablement déjà sur votre Linux système.

Cabines de bureau vides
Jetta Productions/Mélange d'Images/Getty Images

Partitionner un lecteur avec fdisk

Ce guide va vous expliquer les bases du partitionnement d'un disque dur avec fdisk. Il s'agit d'un outil simple mais puissant qui offre de nombreuses options pour gérer vos disques. Pour une description technique plus complète, reportez-vous au manuel technique en fin de guide.

Le partitionnement de votre disque dur effacera toutes les données qu'il contient. Assurez-vous de sauvegarder vos données ou de travailler avec un lecteur vierge.

  1. Commencez par trouver l'emplacement de votre disque dur. Tu peux essayer:

    ls /dev. 

    Ensuite, essayez de déterminer de quel lecteur il s'agit. Votre lecteur principal est probablement /dev/sda, mais vous devez vous en assurer.

    Vous pouvez également jeter un œil à /etc/fstab pour voir quels lecteurs sont montés où. S'il vous donne des numéros UUID, vous pouvez rechercher l'UUID de chaque partition et voir lesquels correspondent.

    sudo blkid /dev/sda1. 
  2. Ensuite, répertoriez la table de partition actuelle sur le lecteur en utilisant le -l drapeau. Remplacez "/dev/sda" par votre lecteur actuel.

    sudo fdisk -l /dev/sda. 
    Partitions de liste fdisk Linux

    Si vous travaillez avec un lecteur vierge, il ne devrait pas y avoir grand-chose.

  3. Exécutez à nouveau la commande fdisk. Cette fois, sans aucun drapeau. Cela vous amènera à la console fdisk.

    sudo fdisk /dev/sda. 
    console fdisk Linux
  4. Une fois que vous êtes dans la console fdisk, vous pouvez commencer à travailler avec vos partitions. Tout d'abord, si vous souhaitez lister les partitions comme avant, vous pouvez entrer le p clé.

    p. 
    Linux fdisk liste les partitions de la console
  5. Ensuite, utilisez le m key pour créer une nouvelle partition.

    n.m. 
  6. L'invite vous demandera alors si vous voulez faire un primaire ou partition étendue. Choisir p(primaire).

    p. 
    Linux fdisk définir le type de partition
  7. Choisissez un numéro de partition. La valeur par défaut est 1, pour la première partition, alors utilisez-la.

    1. 
    Linux fdisk set numéro de partition
  8. Ensuite, il vous demandera de choisir le premier secteur. Ne vous inquiétez pas trop à ce sujet. Appuyez simplement sur Entrer pour la valeur par défaut.

    Linux fdisk définit le premier secteur
  9. L'invite suivante vous permettra de choisir la taille de votre partition. Vous pouvez spécifier la taille de la partition en mégaoctets (M) ou en gigaoctets (G). En supposant que vous configurez un lecteur pour installer Linux, 512M est un bon point de départ pour une partition de démarrage.

    +512M. 
    Linux fdisk définir la taille de la partition
  10. Une fois cela fait, vous pouvez à nouveau visualiser votre nouvelle partition avec le p clé.

    Partition fdisk Linux créée
  11. Si vous prévoyez d'utiliser votre nouvelle partition comme partition de démarrage, vous devrez activer l'indicateur de démarrage. Faites-le en appuyant sur une. Ensuite, si vous y êtes invité, entrez le numéro de partition. Si c'est le seul sur votre disque, c'est 1.

    une
    1.
  12. Maintenant, vous pouvez créer les autres partitions sur votre disque. Commencez par entrer m de nouveau.

  13. presse 1 à nouveau pour une partition principale.

  14. Utilisez le numéro de partition par défaut. Si vous repartez à neuf, c'est 2.

  15. Utilisez également le premier secteur par défaut. Il démarrera immédiatement après la partition précédente. presse Entrer continuer.

  16. Encore une fois, choisissez la taille de votre disque. Si vous cherchez à configurer une partition racine avec une partition d'accueil séparée, quelque chose comme +20G fonctionnera bien. Si vous souhaitez occuper le reste de l'espace disponible, appuyez simplement sur Entrer.

    +20G. 
    Linux fdisk crée les partitions restantes
  17. Répétez ces étapes pour chaque nouvelle partition que vous souhaitez créer sur le lecteur. Lorsque vous avez terminé, appuyez sur w pour écrire la table de partition sur le lecteur.

    w. 
  18. Maintenant, vous pouvez utiliser la commande mkfs pour formater les partitions à utiliser. Pour la plupart des systèmes Linux, le système de fichiers EXT4 est ce que vous voulez, vous pouvez donc exécuter l'ensemble de commandes suivant pour configurer vos partitions. Cela suppose que vous travaillez sur /dev/sda et que vous configurez des partitions home et root séparées.

    sudo mkfs.ext4 /dev/sda1
    sudo mkfs.ext4 /dev/sda2
    sudo mkfs.ext4 /dev/sda3.
    Partitions au format Linux
  19. Votre disque nouvellement partitionné et formaté est prêt à être utilisé. Si vous avez suivi, vous pouvez installer et exécuter une distribution Linux comme Arch Linux hors des partitions que vous venez de créer.

Synopsis de Fdisk

Voici une description technique de fdisk et de ses options et capacités:

fdisk [-u] [-b taille des secteurs][-C cylindres] [-H têtes] [-S sectesdispositif

fdisk -l [-u] [dispositif ...]

fdisk -s cloison ...

fdisk -v

Fdisk et partitions

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

Dans le monde BSD, on parle de « tranches de disque » et d'« étiquette de disque ».

Linux a besoin d'au moins une partition, notamment pour sa racine système de fichiers. Il peut utiliser des fichiers d'échange et/ou des partitions d'échange, mais cette dernière est plus efficace. Ainsi, on voudra généralement une deuxième partition Linux dédiée comme partition 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 disposant de disques volumineux créent souvent une troisième partition, de quelques Mo seulement, généralement montée sur /boot, pour stocker l'image du noyau et quelques fichiers auxiliaires nécessaires au démarrage, afin de s'assurer que ces éléments sont accessibles au BIOS.

Il peut y avoir des raisons de sécurité, de facilité d'administration et de sauvegarde, ou de test, d'utiliser plus que le nombre minimum de partitions.

Comment fonctionne Fdisk

fdisk (dans la première forme d'invocation) est un programme piloté par menu pour la création et la manipulation de tables de partition. Il comprend les tables de partition de type DOS et les labels de disque de type BSD ou SUN.

Les dispositif est généralement 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 fait référence à l'intégralité du disque.)

Les cloison est un dispositif nom 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 peuvent avoir jusqu'à 15 partitions. Voir également/usr/src/linux/Documentation/devices.txt.

Étiquette de disque de type BSD/SUN

Une étiquette de disque de type BSD/SUN peut décrire 8 partitions, dont la troisième devrait être une partition 'disque entier'. Ne démarrez pas une partition qui utilise réellement son premier secteur (comme une partition d'échange) au cylindre 0, car cela détruirait l'étiquette du disque.

Étiquette de disque de type RIX/SGI

Une étiquette de disque de type IRIX/SGI peut décrire 16 partitions, dont la onzième devrait être une partition 'volume' entière, tandis que la neuvième devrait être étiqueté « en-tête de volume ». L'en-tête de volume couvrira également la table de partition, c'est-à-dire qu'il commence au bloc zéro et s'étend par défaut sur cinq cylindres. L'espace restant dans l'en-tête du volume peut être utilisé par les entrées du répertoire d'en-tête.

Aucune partition ne peut chevaucher l'en-tête de volume. Ne changez pas non plus son type et créez un système de fichiers dessus, car vous perdrez la table de partition. Utilisez ce type d'étiquette uniquement lorsque vous travaillez avec Linux sur des machines IRIX/SGI ou des disques IRIX/SGI sous Linux.

Table de partition de type DOS

Une table de partition de type DOS peut décrire un nombre illimité de partitions. Dans le secteur 0, il y a de la place pour la description de 4 partitions (appelées 'primaires'). L'un d'eux peut être une partition étendue; il s'agit d'une boîte contenant des partitions logiques, avec des descripteurs 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 non, reçoivent les numéros 1-4. Les partitions logiques commencent à être numérotées à partir de 5.

Dans une table de partition de type DOS, l'offset de départ et la taille de chaque partition sont stockés de deux manières: comme un nombre absolu de secteurs (donné en 32 bits) et en triple Cylindres/Têtes/Secteurs (donné en 10+8+6 morceaux). Le premier est OK; avec des secteurs de 512 octets, cela fonctionnera jusqu'à 2 To. Ce dernier a deux problèmes différents. Tout d'abord, ces champs C/H/S ne peuvent être remplis que lorsque le nombre de têtes et le nombre de secteurs par piste sont connus.

Deuxièmement, même si nous savons quels devraient être ces nombres, les 24 bits disponibles ne suffisent pas. DOS utilise uniquement C/H/S, les fenêtres utilise les deux, Linux n'utilise jamais C/H/S.

Géométrie du disque

Si possible, fdisk obtiendra la géométrie du disque automatiquement. Il ne s'agit pas nécessairement de la géométrie physique du disque (en effet, les disques modernes n'ont pas vraiment de géométrie physique, certainement pas quelque chose qui peut être décrit sous la forme simpliste de cylindres/têtes/secteurs), mais c'est la géométrie du disque que MS-DOS utilise pour la partition table.

Habituellement, 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. Cependant, si le disque doit être partagé avec d'autres systèmes d'exploitation, c'est souvent une bonne idée de laisser un fdisk d'un autre système d'exploitation créer au moins une partition. Lorsque Linux démarre, il regarde la table de partition et essaie de déduire quelle (fausse) géométrie est requise pour une bonne coopération avec d'autres systèmes.

Contrôle de cohérence

Chaque fois qu'une table de partition est imprimée, un contrôle de cohérence est effectué sur les entrées de la table de partition. Cette vérification vérifie que les points de départ et de fin physiques et logiques sont identiques et que la partition commence et se termine sur une limite de cylindre (à l'exception de 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 dans le cylindre 1 ne peuvent pas commencer sur une limite de cylindre, mais il est peu probable que cela cause des difficultés à moins que vous n'ayez OS/2 sur votre machine.

Un sync() et un BLKRRPART ioctl() (relecture de la table de partition depuis le disque) sont effectués avant de quitter lorsque la table de partition a été mise à jour. Il y a longtemps, il était nécessaire de redémarrer après l'utilisation de fdisk. Je ne pense plus que ce soit le cas; en effet, un redémarrage trop rapide peut entraîner une perte de données non encore écrites. Notez que le noyau et le matériel du disque peuvent mettre les données en mémoire tampon.

Avertissement Dos 6.x

La commande DOS 6.x FORMAT recherche des informations dans le premier secteur de la zone de données de la partition et traite ces informations comme plus fiables que les informations de la table de partition. DOS FORMAT s'attend à ce que DOS FDISK efface les 512 premiers octets de la zone de données d'une partition chaque fois qu'un changement de taille se produit. DOS FORMAT examinera ces informations supplémentaires même si le drapeau /U est donné — nous considérons cela comme un bogue dans DOS FORMAT et DOS FDISK.

L'essentiel est que si vous utilisez cfdisk ou fdisk pour modifier la taille d'une entrée de table de partition DOS, vous devez également utiliser jj pour mettre à zéro les 512 premiers octets de cette partition avant d'utiliser DOS FORMAT pour formater la partition. Par exemple, si vous utilisiez cfdisk pour créer une entrée de table de partition DOS pour /dev/hda1, alors (après avoir quitté fdisk ou cfdisk et redémarré Linux pour que les informations de la table de partition soient valides), vous utiliseriez la commande "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" pour remettre à zéro le 512 premiers octets de la partition.

Soyez extrêmement prudent si vous utilisez le jj commande, car une petite faute de frappe peut rendre toutes les données de votre disque inutiles.

Pour de meilleurs résultats, vous devez toujours utiliser un programme de table de partition spécifique au système d'exploitation. Par exemple, vous devez créer des partitions DOS avec le programme DOS FDISK et Linux partitions avec le programme Linux fdisk ou Linux cfdisk.

Options fdisk

-b taille des secteurs: Spécifiez la taille du secteur du disque. Les valeurs valides sont 512, 1024 ou 2048. (Les noyaux récents connaissent la taille du secteur. Utilisez ceci uniquement sur les anciens noyaux ou pour remplacer les idées du noyau.)

-C cylindres:Spécifiez le nombre de cylindres du disque. Nous n'avons aucune idée de pourquoi quelqu'un voudrait le faire.

-H têtes: Spécifiez le nombre de têtes du disque. (Pas le nombre physique, bien sûr, mais le nombre utilisé pour les tables de partition.) Les valeurs raisonnables sont 255 et 16.

-S sectes: Spécifiez le nombre de secteurs par piste du disque. (Pas le nombre physique, bien sûr, mais le nombre utilisé pour les tables de partition.) Une valeur raisonnable est 63.

-l: répertorie les tables de partition pour les périphériques spécifiés, puis quittez. Si aucun appareil n'est indiqué, ceux mentionnés dans /proc/partitions (si cela existe) sont utilisés.

-u: Lors de la liste des tables de partition, indiquez les tailles en secteurs au lieu de cylindres.

-s cloison: Les Taille de la partition (en blocs) est imprimé sur la sortie standard.

-v:Imprimer le numéro de version de fdisk programme et sortie.