SFDISK(8) | Administration système | SFDISK(8) |
NOM¶
sfdisk - Gestionnaire de tables de partitions pour LinuxSYNOPSIS¶
sfdisk [options] périphériqueDESCRIPTION¶
sfdisk a quatre (principales) utilisations : donner la taille d'une partition, afficher les partitions d'un périphérique, vérifier les partitions d'un périphérique et — très dangereux — repartitionner un périphérique. sfdisk ne comprend pas le format de table de partitions GUID (GPT : « GUID Partition Table ») et n'est pas conçu pour les partitions de grandes tailles. Pour ces cas, utilisez parted(8) de GNU qui est plus avancé. Remarquez que sfdisk n’aligne pas les partitions sur les limites d’E/S du périphérique bloc. Cette fonctionnalité est fournie par fdisk(8).Afficher les tailles¶
sfdisk -s partition donne la taille de la partition en blocs. Cela peut être utile avec des programmes comme mkswap(8). Ici, partition est en général quelque chose comme /dev/hda1 ou /dev/sdb12, mais peut également être un disque entier, comme /dev/xda.% sfdisk -s /dev/hda9 81599
% sfdisk -s /dev/hda: 208896 /dev/hdb: 1025136 /dev/hdc: 1031063 /dev/sda: 8877895 /dev/sdb: 1758927 total : 12901917 blocs
Afficher les partitions¶
Le deuxième type d'invocation : sfdisk -l périphérique affichera les partitions du périphérique indiqué. Si l'argument périphérique est omis, les partitions de tous les périphériques bloc sont affichées.% sfdisk -l /dev/hdc Disque /dev/hdc : 2045 cylindres, 16 têtes, 63 secteurs/piste Unités = cylindres de 516096 octets, blocs de 1024 octets, décompte à partir de 0 Périph Amor Début Fin #cyls #blocs Id Système /dev/hdc1 0+ 406 407- 205096+ 83 Linux /dev/hdc2 407 813 407 205128 83 Linux /dev/hdc3 814 2044 1231 620424 83 Linux /dev/hdc4 0 - 0 0 0 Vide
Vérifier les partitions¶
Le troisième type d'invocation : sfdisk -V périphérique effectuera différents tests de cohérence sur la table de partitions du périphérique. Il affichera « OK » ou se plaindra. L'option -V peut être utilisée avec -l. Dans un script shell, on peut utiliser sfdisk -V -q périphérique qui ne renvoie qu'une valeur de retour (d'état).Créer des partitions¶
Le quatrième type d'invocation : sfdisk périphérique fera lire par sfdisk les spécifications du partitionnement désiré de périphérique à partir de l'entrée standard, et lui fera ensuite modifier la table de partitions sur ce périphérique bloc. Ainsi, sfdisk peut être utilisé à partir d'un script shell. Quand sfdisk détermine que son entrée standard est un terminal, il sera interactif ; sinon, il s'arrêtera à la première erreur. Soyez extrêmement prudent. Une faute de frappe et toutes les données peuvent être perdues. Comme mesure de précaution, vous pouvez sauvegarder les secteurs modifiés par sfdisk :% sfdisk /dev/hdd -O hdd-partition-secteurs.sauve ...
% sfdisk /dev/hdd -I hdd-partition-secturs.sauve
OPTIONS¶
- -v, --version
- Afficher les informations sur la version et quitter.
- -h, --help
- Afficher un texte d'aide puis quitter.
- -T, --list-types
- Afficher les types de systèmes de fichiers reconnus (les identifiants).
- -s, --show-size
- Afficher la taille d'une partition.
- -g, --show-geometry
- Afficher la façon dont le noyau conçoit la géométrie du ou des périphériques bloc indiqués.
- -G, --show-pt-geometry
- Afficher la géométrie des périphériques bloc indiqués devinée par l'observation de la table de partitions
- -l, --list
- Afficher les partitions d'un périphérique.
- -d, --dump
- Produire les partitions d'un périphérique dans un format
utilisable en entrée pour sfdisk. Par exemple :
% sfdisk -d /dev/hda > hda.out % sfdisk /dev/hda < hda.out
corrigera la dernière mauvaise partition étendue que le fdisk OS/2 a créée.
- -V, --verify
- Tester si les partitions semblent correctes (consultez le troisième type d'invocation ci-dessus).
- -i, --increment
- Numéroter les cylindres, etc., en commençant à partir de 1 au lieu de 0.
- -N numéro
- Ne modifier que l'unique partition indiquée par
numéro. Par exemple :
% sfdisk /dev/hdb -N5 ,,,*
rendra la cinquième partition de /dev/hdb amorçable (« active ») et ne changera rien d'autre (celle-ci sera probablement appelée /dev/hdb5, mais vous êtes libre de l'appeler autrement, comme par exemple « /mon_équipement/disques/2/5 » ou quelque chose du genre).
- -A, --activate[=périphérique|numéro]
- Activer l’attribut amorçable.
- Cette option accepte un argument facultatif. Quand aucun argument d’option n’est donné, la commande affichera les partitions qui ont l’attribut amorçable défini pour le périphérique indiqué comme argument de commande. Par exemple :
-
% sfdisk --activate /dev/sda
- Quand un nom de périphérique est donnée comme argument d’option, les partitions indiquées comme argument de commande auront l’attribut amorçable activé. Les autres partitions du même périphérique auront l’attribut amorçable désactivé. Par exemple, avec la commande suivante, les partitions 1 et 4 seront définies amorçables, alors que l’attribut pour 2 et 3 sera supprimé :
-
% sfdisk --activate=/dev/sda 1 4
- Si juste une seule partition est à activer, alors le numéro de partition doit être donné comme un argument d’option et le périphérique comme un argument de commande. Par exemple :
-
% sfdisk --activate=1 /dev/sda
- L’option --activate est activée par défaut quand le nom d’appel du programme est activate.
- -c, --id numéro [Id]
- Si aucun paramètre Id n'est fourni, afficher l'identifiant
de partition de la partition indiquée. S'il est présent,
remplacer le type ( Id) de la partition indiquée par la
valeur fournie. Cette option a également les deux formes longues
--print-id et --change-id. Par exemple :
% sfdisk --print-id /dev/hdb 5 6 % sfdisk --change-id /dev/hdb 5 83 OK
indique d'abord que /dev/hdb5 possède l'Id 6, et le remplace ensuite par 83.
- -u, --unit lettre
- Interpréter l'entrée et montrer la sortie dans l'unité indiquée par lettre. La lettre peut être S, C, B ou M pour secteur, cylindre, bloc ou mégaoctet. L'unité par défaut est le cylindre, du moins quand la géométrie est connue.
- -x, --show-extended
- Afficher également les partitions étendues non primaires en sortie, ou en attendre des descripteurs en entrée.
- -C, --cylinders cylindres
- Indiquer le nombre de cylindres, en le substituant à l'avis du noyau.
- -H, --heads têtes
- Indiquer le nombre de têtes, en le substituant à l'avis du noyau.
- -S, --sectors secteurs
- Indiquer le nombre de secteurs, en le substituant à l'avis du noyau.
- -f, --force
- Faire ce qui est demandé, même si c'est stupide.
- -q, --quiet
- Supprimer les messages d'avertissement.
- -L, --Linux
- Ne pas se plaindre de choses non pertinentes pour Linux.
- -D, --DOS
- Pour la compatibilité DOS : gaspiller un petit espace. Plus précisément : si une partition ne peut contenir le secteur 0, par exemple parce qu'il est occupé par le secteur d'amorçage principal (MBR pour « Master Boot Record ») du périphérique, ou si elle contient la table de partitions d'une partition étendue, alors sfdisk la fera débuter au secteur suivant. Néanmoins, quand cette option est fournie, il passe toute la piste actuelle pour débuter à la piste suivante, en gaspillant par exemple 33 secteurs (s'il y a 34 secteurs/piste), comme le font certaines versions de DOS. Certains gestionnaires de disque et chargeurs de démarrage (comme OSBS, mais pas comme LILO ou le gestionnaire d'amorçage OS/2) vivent également dans cet espace vide, et vous pourriez donc avoir besoin d'utiliser cette option si vous utilisez l'un d'entre eux.
- -E, --DOS-extended
- Considérer que les numéros de secteur commençant les partitions étendues « internes » sont relatifs à la limite du cylindre commençant la partition externe (comme le font certaines versions du DOS), plutôt que relatifs au véritable secteur commençant (comme le fait Linux). Le fait qu'il y ait ici une différence signifie qu'il faudrait toujours laisser les partitions étendues débuter sur une limite de cylindre si DOS et Linux doivent interpréter la table de partitions de la même manière. Bien sûr, les emplacements des limites de cylindres ne peuvent être connus que lorsque la géométrie DOS qui sera utilisée pour ce périphérique bloc est connue.
- -U, --unhide périphérique
- Rendre divers types de partition Microsoft non cachés. Pour la liste complète, consultez la sortie de --list-types.
-
% sfdisk --list-types | grep Hidden
- Remarquez que le Hidden NTFS WinRE (environnement de récupération Windows) n’a pas d’équivalent non caché.
- --IBM, --leave-last
- Certains programmes IBM de diagnostic supposent qu'ils peuvent utiliser le dernier cylindre d'un périphérique à des fins de tests de disque. Si vous pensez devoir utiliser de tels programmes, utilisez cette option pour dire à sfdisk qu'il ne devrait pas allouer le dernier cylindre. Parfois, le dernier cylindre contient une table des secteurs défectueux.
- -n
- Effectuer tout ce qu'il y a à faire, mais ne pas réellement écrire sur le périphérique bloc.
- -R, --re-read
- Exécuter uniquement l'ioctl BLKRRPART (pour faire relire au noyau la table de partitions). Cela peut être utile pour vérifier à l'avance que le BLKRRPART final se terminera correctement, et également quand vous modifiez la table de partitions vous-même (par exemple en utilisant dd à partir d'une sauvegarde). Si le noyau se plaint (« device busy for revalidation (usage = 2) », c'est-à-dire « périphérique occupé pour la revalidation (utilisation = 2) »), alors quelque chose utilise encore ce périphérique, et vous devrez démonter certains systèmes de fichiers, ou désactiver certaines partitions d'échange avec swapoff.
- --no-reread
- Au début du repartitionnement d'un périphérique bloc, sfdisk vérifie que ce périphérique n'est pas monté, ou n'est pas utilisé en tant que périphérique d'échange, et refuse de continuer si c'est le cas. Cette option supprime le test (d'un autre côté, l'option -f forcerait sfdisk à continuer même si ce test échouait).
- --in-order
- Les partitions sont dans l’ordre. Consultez également la section d’avertissement.
- --not-in-order
- Les partitions ne pas sont dans l’ordre. Consultez également la section d’avertissement.
- --inside-outer
- Toutes les partitions logiques sont dans l’étendue la plus à l'extrémité. Consultez également la section d’avertissement.
- --not-inside-outer
- Certaines (ou aucune) des partitions logiques ne sont pas dans l’étendue la plus à l'extrémité. Consultez également la section d’avertissement.
- --nested
- Attention, consultez la section d'avertissement. Chaque partition est contenue dans les partitions adjacentes et est distincte de toutes les autres.
- --chained
- Attention, consultez la section d'avertissement. Chaque partition de données est contenue dans les partitions adjacentes et est distincte de toutes les autres, mais les partitions étendues peuvent résider ailleurs (dans la mesure permise par all_logicals_inside_outermost_extended).
- --onesector
- Attention, consultez la section d'avertissement. Toutes les partitions de données sont mutuellement distinctes. Les partitions étendues n'utilisent qu'un secteur chacune (à part peut-être celle la plus à l'extrémité).
- -O fichier
- Juste avant d'écrire la nouvelle partition, sauvegarder les secteurs qui vont être écrasés dans fichier (mieux vaux que fichier soit sur un autre périphérique bloc ou sur une disquette).
- -I fichier
- Après avoir détruit les systèmes de fichiers par une commande sfdisk malheureuse, vous ne pourrez restaurer l'ancienne situation que si vous l'avez préservée au préalable en utilisant l’attribut -O.
- -1, --one-only
- Option réservée qui ne fait rien actuellement.
THÉORIE¶
Le bloc 0 d'un périphérique bloc (le secteur d'amorçage principal) contient entre autres choses quatre descripteurs de partition. Les partitions décrites ici sont appelées partitions primaires. Un descripteur de partition comporte 6 champs :struct partition { unsigned char bootable; /* 0 ou 0x80 */ hsc begin_hsc; unsigned char id; hsc end_hsc; unsigned int starting_sector; unsigned int nr_of_sectors; }
Les deux champs hsc indiquent la tête (« head »), le secteur et le cylindre du début et de la fin de la partition. Puisque chaque champ hsc ne prend que 3 octets, seuls 24 bits sont disponibles, ce qui ne suffit pas pour les gros périphériques blocs (par exemple > 8 Go). En fait, à cause du gaspillage dans la représentation (qui utilise un octet pour le nombre de têtes, alors qu'il est typiquement de 16), les problèmes commencent déjà à partir de 0,5 Go. Néanmoins, Linux n'utilise pas ces champs, et les problèmes ne peuvent survenir qu'au moment de l'amorçage, avant que Linux ait été démarré. Pour plus de précisions, consultez la documentation de lilo. Chaque partition a un type, son « Id », et si ce type est 5 ou f (« partition étendue »), le secteur de début de la partition contiendra également 4 descripteurs de partition. MSDOS n'utilise que les deux premiers : le premier comme partition des données réelles, et le second comme partition étendue (ou vide). De cette façon, on obtient une chaîne de partitions étendues. D'autres systèmes d'exploitation obéissent à des conventions légèrement différentes. Linux accepte également le type 85 comme étant équivalent à 5 et f — cela peut être utile si vous voulez avoir des partitions étendues sous Linux après la limite des 1024 cylindres, sans plantage du FDISK de DOS (à moins d'avoir une bonne raison, vous devriez utiliser 5, qui est compris par les autres systèmes). Les partitions qui ne sont ni primaires ni étendues sont appelées logiques. Souvent, on ne peut amorcer à partir de partitions logiques (car leur processus de recherche est plus compliqué que de simplement regarder le secteur d'amorçage principal). Notez que sur une partition étendue, seuls l'identifiant et le début sont utilisés. Il y a différentes conventions concernant ce qu'il y a lieu d'écrire dans les autres champs. Les partitions étendues ne devrait pas être utilisées pour le stockage de données ou pour une partition d'échange.
FORMAT D'ENTRÉE¶
sfdisk lit des lignes de la forme<début> <taille> <id>
<amorçable> <c,t,s> <c,t,s>
où chaque ligne remplit un descripteur de partition.
Les champs sont séparés par des caractères d'espacement,
des virgules ou des points-virgules éventuellement suivis par des
caractères d'espacement ; les caractères d'espacement
initiaux et finaux sont ignorés. Les nombres peuvent être
octaux, décimaux ou hexadécimaux (représentation
décimale par défaut). Quand un champ est absent ou vide, une
valeur par défaut est utilisée.
Les parties <c,t,s> peuvent (et probablement devraient) être omises
car sfdisk les calcule à partir de <début> et
<taille>, et la géométrie du périphérique
bloc est donnée par le noyau ou est indiquée par les attributs
-H, -S et -C.
Amorçable (« bootable ») est indiqué
par [*|-] (non amorçable par défaut). La valeur de ce champ n'a
pas d'importance pour Linux — quand Linux fonctionne, il a
déjà été amorcé — mais
pourrait jouer un rôle pour certains gestionnaires de démarrage
ou pour d'autres systèmes d'exploitation. Par exemple, quand il y a
plusieurs partitions DOS primaires, DOS affecte C: à la première
d'entre elles qui est amorçable.
Id est donné en hexadécimal, sans le préfixe 0x, ou sous la
forme [E | S | L | X ],
où L (LINUX_NATIVE (83)) est utilisé par défaut, S est
LINUX_SWAP (82) (partition d'échange Linux), E est EXTENDED_PARTITION
(5) (partition étendue), et X est LINUX_EXTENDED (85).
La valeur par défaut de début est le premier secteur/cylindre/...
non affecté.
La valeur par défaut de taille est aussi grande que possible
(jusqu'à la partition suivante ou la fin du
périphérique).
Néanmoins, pour les quatre partitions à l'intérieur d'une
partition étendue, l'occupation par défaut est :
partition Linux, partition étendue, vide, vide.
Mais quand l'option -N est fournie (modifier uniquement une partition),
la valeur par défaut pour chaque champ est sa valeur
précédente.
Un + peut être indiqué à la place d'un nombre pour
la taille, ce qui signifie autant que possible. C'est pratique avec l'option
-N.
EXEMPLE¶
La commandesfdisk /dev/hdc << EOF 0,407 ,407 ; ; EOF
sfdisk /dev/hdb << EOF ,3,L ,60,L ,19,S ,,E ,130,L ,130,L ,130,L ,,L EOF
AVERTISSEMENTS IMPORTANTS¶
Les options désignées avec « Attention » sont dangereuses. Par exemple, les fonctionnalités ne sont pas toutes complètement implémentées, ce qui peut être la source de résultats inattendus.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’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 sfdisk 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é sfdisk pour créer une entrée de table de partitions pour /dev/hda1, vous devriez alors (après la sortie de sfdisk 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/hda1 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 périphérique bloc. 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 de DOS, et des partitions Linux avec le programme sfdisk de Linux.AVERTISSEMENTS DRDOS¶
Stephen Tweedie a signalé (15/05/1993) : « La plupart des comptes-rendus de corruption de superbloc s'avèrent être dûs à un mauvais partitionnement, où un système de fichiers écrase le début du suivant et corrompt son superbloc. J'ai même eu ce problème avec le prétendument fiable DRDOS. C'était probablement dû à la commande FDISK du DRDOS 6.0. À moins de créer une piste ou un cylindre vide entre la partition DRDOS et celle la suivant immédiatement, DRDOS écrase joyeusement le début de la partition suivante. Remarquez qu'aussi longtemps que je garde un petit espace de périphérique vide après toute partition DRDOS, je n'ai aucun autre problème de coexistence entre les deux partitions sur le même disque. » A. V. Le Blanc a écrit dans README.efdisk : « Des problèmes de coopération ont été signalés entre DRDOS 5.0 et 6.0 et Linux, et avec cette version de efdisk en particulier. Ce efdisk fixe le type de système de fichiers à 81 (hexadécimal). DRDOS semble le confondre avec le 1 hexadécimal, un code DOS. Si vous utilisez DRDOS, utilisez la commande « t » de efdisk pour remplacer le code de système de fichiers de toute partition Linux en un nombre plus petit que 80 en hexadécimal. Je suggère 41 et 42 pour le moment. » A. V. Le Blanc a écrit dans README.fdisk : « DRDOS 5.0 et 6.0 ont certaines difficultés avec les codes d'identifiant de partition de 80 ou plus. Le fdisk de Linux fixe habituellement le type des nouvelles partitions à 81 en hexadécimal. DRDOS semble le confondre avec le 1 hexadécimal, un code DOS. Les valeurs 82 pour la partition d'échange et 83 pour les systèmes de fichiers ne devraient pas causer de problèmes avec DRDOS. S'il y en a, vous pouvez utiliser la commande « t » du fdisk Linux pour modifier le code du système de fichiers de toute partition Linux en un nombre plus petit que 80 en hexadécimal. Je suggère 42 et 43 pour le moment. » En fait, il semble que seuls 4 bits soient significatifs pour le FDISK de DRDOS. Ainsi, par exemple, 11 et 21 sont considérés comme étant DOS 2.0. Néanmoins, DRDOS lui-même semble utiliser l'octet complet. Je n'ai pas été capable de reproduire une corruption avec DRDOS ou avec son fdisk.BOGUES¶
Il y a trop d'options. Il n'y a pas de prise en charge des types de partitions non DOS.VOIR AUSSI¶
cfdisk(8), fdisk(8), mkfs(8), parted(8), partprobe(8), kpartx(8)DISPONIBILITɶ
La commande sfdisk fait partie du paquet util-linux, elle est disponible sur < ftp://ftp.kernel.org/pub/linux/utils/util-linux/>.TRADUCTION¶
Cette page de manuel a été traduite par Frédéric Delanoy en 2000. La version présente dans Debian est maintenue par 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.août 2011 | util-linux |