Provided by:
manpages-fr-extra_20111118_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, afficher 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.
Afficher les tailles
sfdisk -s partition donne la taille de la partition en blocs. Cela 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 affichera 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 blocs
%
Afficher les partitions
Le deuxieme type d'invocation : sfdisk -l [options] p'eriph'erique
affichera les partitions de ce peripherique. Si l'argument peripherique
est omis, les partitions de tous les disques durs sont affichees.
% sfdisk -l /dev/hdc
Disque /dev/hdc : 2045 cylindres, 16 tetes, 63 secteurs/piste
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
/dev/hdc2 407 813 407 205128 83 Linux
/dev/hdc3 814 2044 1231 620424 83 Linux
/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 affichage avec le secteur comme unite.
V'erifier les partitions
Le troisieme type d'invocation : sfdisk -V p'eriph'erique effectuera
differents tests de coherence sur la table de 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 ne renvoie qu'une valeur de retour (d'etat).
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 de
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 extr^emement prudent. Une faute de frappe et toutes vos donn'ees
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 de
partitions : une version lisible de l'ancienne table de 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 de 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 des disques
indiques.
-G ou --show-pt-geometry
Afficher la geometrie des disques indiques devinee par
l'observation de la table de partitions
-l ou --list
Afficher 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 l'unique 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 les partitions indiquees actives, et toutes les autres
inactives.
-c ou --id num'ero [Id]
Si aucun parametre Id n'est fourni, 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
Choisir l'unite : respectivement secteur, bloc, cylindre, ou
megaoctet. L'unite par defaut est le cylindre, du moins quand la
geometrie est connue.
-x ou --show-extended
Afficher 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 qui est demande, 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 secteur d'amorcage
principal (MBR pour << Master Boot Record >>) du peripherique,
ou si elle contient la table de 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 de partitions de la meme maniere. Bien sur,
les emplacements des limites de cylindres ne peuvent etre connus
que lorsque la geometrie DOS qui sera utilisee pour ce disque
est connue.
--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 de partitions). Cela peut etre utile pour
verifier a l'avance que le BLKRRPART final se terminera avec
succes, et egalement quand vous modifiez la table de 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 secteur d'amorcage principal) 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 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 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 (par exemple > 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 -- cela 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 secteur d'amorcage principal). Notez que sur une partition
etendue, seuls l'identifiant et le debut sont utilises. Il y a
differentes conventions concernant ce qu'il y a lieu d'ecrire dans les
autres champs. Les partitions etendues ne devrait pas etre utilisees
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 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 finaux 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 indiquee par les options -H, -S
et -C.
Amorcable (<< bootable >>) est indique par [*|-] (non amorcable par
defaut). La valeur de ce champ n'a pas d'importance pour Linux -- quand
Linux fonctionne, 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
amorcable.
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'exterieur 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.
Un + peut etre indique a la place d'un nombre pour la taille, ce qui
signifie autant que possible. C'est pratique avec l'option -N.
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 d'echange 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
quatre : vous devez afficher 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 de partitions. La commande FORMAT de DOS s'attend a ce que FDISK
de DOS 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 FORMAT de DOS recherchera cette information supplementaire
meme si l'indicateur /U est indique -- nous considerons que c'est un
bogue des commandes FORMAT et FDISK de DOS.
Par consequent, si vous utilisez sfdisk pour modifier la taille d'une
partition DOS, vous devez aussi utiliser dd pour mettre a zero les 512
premiers octets de cette partition avant d'utiliser la commande FORMAT
de DOS pour formater cette partition. Par exemple, si vous avez utilise
sfdisk pour creer une entree de table de partitions pour /dev/hda1,
vous devriez alors (apres la sortie de sfdisk et apres avoir redemarre
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 a zero les 512 premiers octets de la partition.
Soyez tr`es vigilant si vous utilisez la commande dd, car une simple
faute de frappe dans la ligne de commande peut detruire toutes les
donnees de votre disque.
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
de DOS, et des partitions Linux avec le programme sfdisk de Linux.
AVERTISSEMENTS DRDOS
Stephen Tweedie a signale (15/05/1993) : << La plupart des
comptes-rendus 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 : << Des problemes de
cooperation ont ete signales 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'identifiant de partition de 80
ou plus. Le fdisk de 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 consideres 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, elle est
disponible sur <URL:ftp://ftp.kernel.org/pub/linux/utils/util-linux/>.
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.