Provided by:
manpages-fr-extra_20101103_all 
NOM
sfdisk - Manipulateur de tables de partitions pour Linux
SYNOPSIS
sfdisk [options] p'eriph'erique
sfdisk -s [partition]
DESCRIPTION
sfdisk a quatre (principales) utilisations : donner la taille d'une
partition, lister les partitions d'un peripherique, verifier les
partitions d'un peripherique et - tres dangereux - repartitionner un
peripherique.
sfdisk ne comprend pas les tables de partitions GUID (GPT: << GUID
Partition Table >>) et n'est pas concu pour les partitions de grandes
tailles. Pour ces cas particuliers, utilisez GNU parted(8), qui est
plus avance.
Lister les tailles
sfdisk -s partition donne la taille de la partition en blocs. Ceci peut
etre utile avec des programmes comme mkswap ou d'autres du meme genre.
Ici, partition est en general quelque chose comme /dev/hda1 ou
/dev/sdb12, mais peut egalement etre un disque entier, comme /dev/xda.
% sfdisk -s /dev/hda9
81599
%
Si l'argument partition est omis, sfdisk listera la taille de tous les
disques, et le total :
% sfdisk -s
/dev/hda: 208896
/dev/hdb: 1025136
/dev/hdc: 1031063
/dev/sda: 8877895
/dev/sdb: 1758927
total: 12901917 blocks
%
Lister les partitions
Le deuxieme type d'invocation : sfdisk -l [options] p'eriph'erique
listera les partitions de ce peripherique. Si l'argument peripherique
est omis, les partitions de tous les disques durs sont listees.
% sfdisk -l /dev/hdc
Disque /dev/hdc: 2045 cylindres, 16 tetes, 63 secteurs
Unites = cylindres de 516096 octets, blocs de 1024 octets, decompte a partir de 0
Periph Amor Debut Fin #cyls #blocs Id Systeme
/dev/hdc1 0+ 406 407- 205096+ 83 Linux natif
/dev/hdc2 407 813 407 205128 83 Linux natif
/dev/hdc3 814 2044 1231 620424 83 Linux natif
/dev/hdc4 0 - 0 0 0 Vide
%
Les signes - et + finaux indiquent qu'un arrondi a ete effectue, et que
la valeur reelle est legerement plus petite (grande). Pour voir les
valeurs exactes, demandez un listing avec des secteurs comme unite.
V'erifier les partitions
Le troisieme type d'invocation : sfdisk -V p'eriph'erique effectuera
differents tests de coherence sur la table des partitions du
p'eriph'erique. Il affichera << OK >> ou se plaindra. L'option -V peut
etre utilisee avec -l. Dans un script shell, on peut utiliser sfdisk -V
-q p'eriph'erique qui renvoie uniquement une valeur de retour (de
statut).
Cr'eer des partitions
Le quatrieme type d'invocation : sfdisk p'eriph'erique fera lire par
sfdisk les specifications du partitionnement desire de p'eriph'erique a
partir de son entree standard, et lui fera ensuite modifier la table
des partitions sur ce disque. Ainsi, il est possible d'utiliser sfdisk
a partir d'un script shell. Quand sfdisk determine que son entree
standard est un terminal, il sera interactif ; sinon, il s'arretera a
la premiere erreur.
SOYEZ EXTREMEMENT PRUDENT. UNE FAUTE DE FRAPPE ET TOUTES VOS DONNEES
PEUVENT ETRE PERDUES !
Comme mesure de precaution, vous pouvez sauvegarder les secteurs
modifies par sfdisk :
% sfdisk /dev/hdd -O hdd-partition-sectors.save
...
%
Ensuite, si vous decouvrez que vous avez fait quelque chose de stupide
(avant d'avoir ecrit quoi que ce soit d'autre sur le disque), il peut
etre possible de retrouver l'ancienne situation avec
% sfdisk /dev/hdd -I hdd-partition-sectors.save
%
Ce n'est pas la meme chose que de sauvegarder l'ancienne table des
partitions : une version lisible de l'ancienne table des partitions
peut etre sauvee avec l'option -d. Neanmoins, si vous creez des
partitions logiques, les secteurs les decrivant sont situes quelque
part sur le disque, eventuellement sur des secteurs qui ne faisaient
pas partie de l'ancienne table des partitions. Par consequent, les
informations sauvees par l'option -O ne sont pas une version binaire de
la sortie de -d.
Il y a beaucoup d'options.
OPTIONS
-v ou --version
Afficher le numero de version de sfdisk et se terminer
immediatement.
-? ou --help
Afficher un message d'utilisation et se terminer immediatement.
-T ou --list-types
Afficher les types de systemes de fichiers reconnus (les
identifiants).
-s ou --show-size
Afficher la taille d'une partition.
-g ou --show-geometry
Afficher la facon dont le noyau concoit la geometrie du(des)
disque(s) indique(s).
-G ou --show-pt-geometry
Afficher la geometrie des disques indiques devines par
l'observation de la table des partitions
-l ou --list
Lister les partitions d'un peripherique.
-d Produire les partitions d'un peripherique dans un format
utilisable comme entree pour sfdisk. Par exemple :
% sfdisk -d /dev/hda > hda.out
% sfdisk /dev/hda < hda.out
corrigera la derniere mauvaise partition etendue que le fdisk
OS/2 a cree.
-V ou --verify
Tester si les partitions semblent correctes (voyez ci-dessus).
-i ou --increment
Numeroter les cylindres (etc.) en commencant a partir de 1 au
lieu de 0.
-N num'ero
Ne modifier que la seule partition indiquee par num'ero. Par
exemple :
% sfdisk /dev/hdb -N5
,,,*
%
rendra la cinquieme partition de /dev/hdb amorcable
(<< active >>) et ne changera rien d'autre. (Celle-ci sera
probablement appelee /dev/hdb5, mais vous etes libre de
l'appeler autrement, comme par exemple
<< /mon_equipement/disques/2/5 >> ou quelque chose du genre).
-A num'ero
Rendre la(les) partition(s) indiquee(s) active(s), et toutes les
autres inactives.
-c ou --id num'ero [Id]
Si aucun parametre Id n'est donne, afficher l'identifiant de
partition de la partition indiquee. S'il est present, remplacer
le type (Id) de la partition indiquee par la valeur fournie.
Cette option a egalement 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 possede l'Id 6, et le remplace
ensuite par 83.
-uS ou -uB ou -uC ou -uM
Accepter ou rapporter en unites de secteurs (ou blocs,
cylindres, megaoctets respectivement). L'unite par defaut est le
cylindre, du moins quand la geometrie est connue.
-x ou --show-extended
Lister egalement les partitions etendues non primaires en
sortie, ou en attendre des descripteurs en entree.
-C cylindres
Indiquer le nombre de cylindres, en le substituant a l'avis du
noyau.
-H t^etes
Indiquer le nombre de tetes, en le substituant a l'avis du
noyau.
-S secteurs
Indiquer le nombre de secteurs, en le substituant a l'avis du
noyau.
-f ou --force
Faire ce que vous dites, meme si c'est stupide.
-q ou --quiet
Supprimer les messages d'avertissement.
-L ou --Linux
Ne pas se plaindre de choses non pertinentes pour Linux.
-D ou --DOS
Pour la compatibilite DOS : gaspiller un petit espace. Plus
precisement : si une partition ne peut contenir le secteur 0,
par exemple parce qu'il est occupe par le MBR (Master Boot
Record, secteur d'amorcage principal) du peripherique, ou si
elle contient la table des partitions d'une partition etendue,
alors sfdisk la fera debuter au secteur suivant. Neanmoins,
quand cette option est fournie, il passe toute la piste courante
pour debuter a 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 demarrage (comme OSBS, mais pas comme LILO ou le gestionnaire
d'amorcage OS/2) vivent egalement dans cet espace vide, et vous
pourriez donc avoir besoin d'utiliser cette option si vous
utilisez l'un d'entre eux.
-E ou --DOS-extended
Considerer que les numeros des secteurs de demarrage des
partitions etendues << internes >> sont relatifs a la limite du
cylindre debutant la partition externe, (comme le font certaines
versions du DOS), plutot que relatifs au secteur de demarrage
(comme le fait Linux). Le fait qu'il y ait ici une difference
signifie qu'il faudrait toujours laisser les partitions etendues
debuter sur une limite de cylindre si DOS et Linux doivent
interpreter la table des partitions de la meme maniere. Bien
sur, on ne peut savoir ou se situent les limites de cylindres
que lorsque l'on sait quelle geometrie DOS utilisera pour ce
disque.
--IBM ou --leave-last
Certains programmes IBM de diagnostic supposent qu'ils peuvent
utiliser le dernier cylindre d'un disque a des fins de tests de
disque. Si vous pensez devoir utiliser de tels programmes,
utilisez cette option pour dire a sfdisk qu'il ne devrait pas
allouer le dernier cylindre. Parfois, le dernier cylindre
contient une table des secteurs defectueux.
-n Effectuer tout ce qu'il y a a faire, mais ne pas reellement
ecrire sur le disque.
-R Executer uniquement l'ioctl BLKRRPART (pour faire relire au
noyau la table des partitions). Ceci peut etre utile pour
verifier a l'avance que le BLKRRPART final se terminera avec
succes, et egalement quand vous modifiez la table des partitions
<< a la main >> (par exemple en utilisant dd a partir d'une
sauvegarde). Si le noyau se plaint (<< device busy for
revalidation (usage = 2) >>, c'est-a-dire << peripherique occupe
pour la revalidation (utilisation = 2) >>), alors quelque chose
utilise encore ce peripherique, et vous devrez demonter certains
systemes de fichiers, ou desactiver certaines partitions
d'echange avec swapoff.
--no-reread
Au debut du repartitionnement d'un disque, sfdisk verifie que ce
disque n'est pas monte, ou n'est pas utilise en tant que
peripherique d'echange, et refuse de continuer si c'est le cas.
Cette option supprime le test (d'un autre cote, l'option -f
forcerait sfdisk a continuer meme si ce test echouait).
-O fichier
Juste avant d'ecrire la nouvelle partition, sauvegarder les
secteurs qui vont etre ecrases dans fichier (il vaut mieux que
fichier reside sur un autre disque, ou sur une disquette).
-I fichier
Apres avoir detruit vos systemes de fichiers par une commande
sfdisk malheureuse, vous ne pourrez restaurer l'ancienne
situation que si vous l'avez preservee au prealable en utilisant
l'option -O.
TH'EORIE
Le bloc 0 d'un disque (le Master Boot Record) contient entre autres
choses quatre descripteurs de partition. Les partitions decrites ici
sont appelees partitions primaires.
Un descripteur de partition comporte 6 champs :
struct partition {
unsigned char bootable; /* 0 or 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 tete (<< head >>), le secteur et le
cylindre du debut 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 disques (disons > 8 Go). En fait, a cause du
gaspillage dans la representation (qui utilise un octet pour le nombre
de tetes, alors qu'il est typiquement de 16), les problemes commencent
deja a partir de 0.5 Go. Neanmoins, Linux n'utilise pas ces champs, et
les problemes ne peuvent survenir qu'au moment de l'amorcage, avant que
Linux ait ete demarre. Pour plus de details, consultez la documentation
de lilo.
Chaque partition a un type, son << Id >>, et si ce type est 5 ou f
(<< partition 'etendue >>), le secteur de debut de la partition
contiendra egalement 4 descripteurs de partition. MSDOS n'utilise que
les deux premiers : le premier comme partition des donnees reelles, et
le second comme partition etendue (ou vide). De cette facon, on obtient
une chaine de partitions etendues. D'autres systemes d'exploitation
obeissent a des conventions legerement differentes. Linux accepte
egalement le type 85 comme etant equivalent a 5 - ceci peut etre utile
si vous voulez avoir des partitions etendues sous Linux apres la limite
des 1024 cylindres, sans plantage du FDISK de DOS (a moins d'avoir une
bonne raison, vous devriez utiliser 5, qui est compris par les autres
systemes).
Les partitions qui ne sont ni primaires ni etendues sont appelees
logiques. Souvent, on ne peut amorcer a partir de partitions logiques
(car leur processus de recherche est plus complique que de simplement
regarder le MBR). Notez que sur une partition etendue, seuls l'Id et le
debut sont utilises. Il y a differentes conventions concernant ce qu'il
y a lieu d'ecrire dans les autres champs. On ne devrait pas essayer
d'utiliser des partitions etendues pour le stockage de donnees ou pour
une partition d'echange.
FORMAT D'ENTR'EE
sfdisk lit des lignes de la forme
<debut> <taille> <id> <amorcable> <c,t,s> <c,t,s>
ou chaque ligne remplit a un descripteur de partition.
Les champs sont separes par des caracteres d'espacement, des virgules
ou des points-virgules eventuellement suivis par des caracteres
d'espacement ; les caracteres d'espacement initiaux et finals sont
ignores. Les nombres peuvent etre octaux, decimaux ou hexadecimaux
(representation decimale par defaut). Quand un champ est absent ou
vide, une valeur par defaut est utilisee.
Les parties <c,t,s> peuvent (et probablement devraient) etre omises car
sfdisk les calcule a partir de <debut> et <taille>, et la geometrie du
disque est donnee par le noyau ou est specifiee par les drapeaux -H, -S
et -C.
Bootable (amorcable) est specifie par [*|-] (non bootable par defaut).
La valeur de ce champ n'a pas d'importance pour Linux - quand Linux
tourne, il a deja ete amorce - mais pourrait jouer un role pour
certains gestionnaires de demarrage ou pour d'autres systemes
d'exploitation. Par exemple, quand il y a plusieurs partitions DOS
primaires, DOS affecte C: a la premiere d'entre elles qui est bootable.
Id est donne en hexadecimal, sans le prefixe 0x, ou sous la forme
[E|S|L|X], ou L (LINUX_NATIVE (83)) est utilise par defaut, S est
LINUX_SWAP (82) (partition d'echange Linux), E est EXTENDED_PARTITION
(5) (partition etendue), et X est LINUX_EXTENDED (85).
La valeur par defaut de debut est le premier secteur/cylindre/... non
affecte.
La valeur par defaut de taille est aussi grande que possible (jusqu'a
la partition suivante ou la fin du disque).
Neanmoins, pour les quatre partitions a l'interieur d'une partition
etendue, l'occupation par defaut est : partition Linux, partition
etendue, vide, vide.
Mais quand l'option -N est fournie (modifier uniquement une partition),
la valeur par defaut pour chaque champ est sa valeur precedente.
EXEMPLE
La commande
sfdisk /dev/hdc << EOF
0,407
,407
;
;
EOF
partitionnera /dev/hdc comme indique ci-dessus.
La commande
sfdisk /dev/hdb << EOF
,3,L
,60,L
,19,S
,,E
,130,L
,130,L
,130,L
,,L
EOF
partitionnera /dev/hdb en deux partitions Linux de 3 et 60 cylindres,
un espace swap de 19 cylindres, et une partition etendue sur tout le
reste de l'espace. A l'interieur de la partition etendue il y a quatre
partitions logique Linux, trois de 130 cylindres et une sur l'espace
restant.
Avec l'option -x, le nombre de lignes d'entree doit etre un multiple
de 4 : vous devez lister les deux partitions vides que vous ne voulez
pas en utilisant deux lignes vides. Sans l'option -x, vous donnez une
ligne pour les partitions a l'interieur d'une partition etendue, au
lieu de quatre, et vous terminez par un caractere de fin de fichier
(Ctrl-D). (Et sfdisk supposera que votre ligne d'entree represente la
premiere des quatre, que la deuxieme est etendue, et que les troisieme
et quatrieme sont vides).
AVERTISSEMENT CONCERNANT DOS 6.x
La commande FORMAT de DOS 6.x recherche certaines informations dans le
premier secteur de la section de donnees de la partition. Elle
considere ces informations comme etant plus fiables que celles de la
table des partitions. La commande DOS FORMAT s'attend a ce que DOS
FDISK efface les 512 premiers octets de la section de donnees d'une
partition chaque fois qu'il y a une modification de sa taille. La
commande DOS FORMAT recherchera cette information supplementaire meme
si l'indicateur /U est indique - nous considerons que ceci est un bogue
des commandes DOS FORMAT et DOS FDISK.
Si vous utilisez sfdisk pour modifier la taille d'une entree DOS de la
table des partitions, alors vous devrez egalement utiliser dd pour
mettre a zero les 512 premiers octets de cette partition avant
d'utiliser FORMAT DOS pour formater cette partition. Par exemple, si
vous avez utilise sfdisk pour creer une entree DOS dans la table des
partitions pour /dev/hda1, alors (apres la sortie de sfdisk et apres
avoir redemarre Linux afin 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 a zero les 512
premiers octets de la partition. SOYEZ EXTR^EMEMENT PRUDENT si vous
utilisez la commande dd, car une petite faute de frappe peut rendre
toutes les donnees de votre disque inutilisables.
Pour obtenir les meilleurs resultats, vous devriez toujours utiliser un
programme de partitionnement specifique au systeme d'exploitation. Par
exemple, vous devriez creer des partitions DOS avec le programme FDISK
DOS, et des partitions Linux avec le programme Linux sfdisk.
AVERTISSEMENTS DRDOS
Stephen Tweedie rapporta (15/05/1993) : << La plupart des rapports de
corruption de superbloc s'averent etre dus a un mauvais
partitionnement, ou un systeme de fichiers ecrase le debut du suivant
et corrompt son superbloc. J'ai meme eu ce probleme avec le
pretendument fiable DRDOS. C'etait probablement du a la commande FDISK
du DRDOS-6.0. A moins de creer une piste ou un cylindre vide entre la
partition DRDOS et celle la suivant immediatement, DRDOS ecrase
joyeusement le debut de la partition suivante. Remarquez qu'aussi
longtemps que je garde un petit espace disque vide apres toute
partition DRDOS, je n'ai aucun autre probleme de coexistence entre les
deux partitions sur le meme disque. >>
A. V. Le Blanc a ecrit dans README.efdisk: << On a rapporte des
problemes de cooperation entre Dr. DOS 5.0 et 6.0 et Linux, et avec
cette version de efdisk en particulier. Ce efdisk fixe le type de
systeme de fichiers a 81 (hexadecimal). Dr. DOS semble le confondre
avec le 1 hexadecimal, un code DOS. Si vous utilisez Dr. DOS, utilisez
la commande << t >> de efdisk pour remplacer le code de systeme de
fichiers de toute partition Linux en un nombre plus petit que 80 en
hexadecimal. Je suggere 41 et 42 pour le moment. >>
A. V. Le Blanc a ecrit dans README.fdisk: << DR-DOS 5.0 et 6.0 ont
certaines difficultes avec les codes d'ID de partition de 80 ou plus.
Le fdisk Linux fixe habituellement le type des nouvelles partitions a
81 en hexadecimal. DR-DOS semble le confondre avec le 1 hexadecimal, un
code DOS. Les valeurs 82 pour la partition d'echange et 83 pour les
systemes de fichiers ne devraient pas causer de problemes avec DR-DOS.
S'il y en a, vous pouvez utiliser la commande << t >> du fdisk Linux
pour modifier le code du systeme de fichiers de toute partition Linux
en un nombre plus petit que 80 en hexadecimal. Je suggere 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 listes comme etant DOS 2.0.
Neanmoins, DRDOS lui-meme semble utiliser l'octet complet. Je n'ai pas
ete 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'E
La commande sfdisk fait partie du paquet util-linux-ng, elle est
disponible sur ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.
TRADUCTION
Cette page de manuel a ete traduite par Frederic Delanoy en 2000. La
version presente 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.