SFDISK(8) | Administration Système | SFDISK(8) |
NOM¶
sfdisk - Afficher ou manipuler une table de partitions de disque
SYNOPSIS¶
sfdisk [options] device [-N partition-number]
sfdisk [options] command
DESCRIPTION¶
sfdisk is a script-oriented tool for partitioning any block device. It runs in interactive mode if executed on a terminal (stdin refers to a terminal).
Depuis la version 2.26, sfdisk prend en charge les étiquettes de disque MBR (DOS), GPT, SUN et SGI, mais ne fournit plus de fonctionnalité pour l’adressage CTS (cylindre tête secteur). CTS n’a jamais été important pour Linux et ce concept d’adressage n’a aucun sens pour les nouveaux périphériques.
sfdisk protects the first disk sector when create a new disk label. The option --wipe always disables this protection. Note that fdisk(8) and cfdisk(8) completely erase this area by default.
sfdisk (since version 2.26) aligns the start and end of partitions to block-device I/O limits when relative sizes are specified, when the default values are used or when multiplicative suffixes (e.g., MiB) are used for sizes. It is possible that partition size will be optimized (reduced or enlarged) due to alignment if the start offset is specified exactly in sectors and partition size relative or by multiplicative suffixes.
La manière préconisée est de ne pas du tout indiquer les positions de départ et d’indiquer les tailles de partition en MiB, GiB, etc. Dans ce cas, sfdisk aligne toutes les partitions aux limites d’E/S du périphérique en mode bloc (ou quand celles-ci sont trop petites, aux limites de mégaoctets pour maintenir portable la disposition du disque). Si ce comportement par défaut n’est pas souhaité (habituellement pour les très petites partitions), alors les positions et les tailles doivent être indiquées en secteurs. Dans ce cas, sfdisk suit intégralement les quantités indiquées sans optimisation.
sfdisk does not create the standard system partitions for SGI and SUN disk labels like fdisk(8) does. It is necessary to explicitly create all partitions including whole-disk system partitions.
sfdisk uses BLKRRPART (reread partition table) ioctl to make sure that the device is not used by system or other tools (see also --no-reread). It’s possible that this feature or another sfdisk activity races with systemd-udevd(8). The recommended way how to avoid possible collisions is to use --lock option. The exclusive lock will cause systemd-udevd to skip the event handling on the device.
L’invite de sfdisk est seulement une astuce pour les utilisateurs et l’affichage d’un numéro de partition ne signifie pas que la même entrée de table de partitions sera créée (si -N n’est pas indiqué), particulièrement pour les tables avec des trous.
COMMANDES¶
Les commandes sont mutuellement exclusives.
[-N numéro-partition] périphérique
Si l’option -N est indiquée, les modifications sont appliquées à la partition indiquée par numéro-partition. Les champs non renseignés de la partition ne sont pas modifiés.
Remarquez qu’il est possible d’indiquer des partitions non utilisées avec -N. Par exemple, le MBR contient toujours quatre partitions, mais le nombre de partitions utilisées peut être plus petit. Dans ce cas, sfdisk suit les valeurs par défaut de la table de partitions et n’utilise pas les valeurs internes par défaut pour la partition non utilisée indiquée par -N. Consultez aussi --append.
-A, --activate périphérique [numéro-partition] ...
La commande d’activation est prise en charge uniquement pour MBR et PMBR. Si une étiquette GPT est détectée, alors sfdisk affiche un avertissement et entre automatiquement dans le PMBR.
Si aucun numéro-partition n’est indiqué, alors toutes les partitions avec un drapeau activé sont affichées.
--backup-pt-sectors périphérique
--delete périphérique [numéro-partition] ...
-d, --dump périphérique
-g, --show-geometry [périphérique...]
-J, --json périphérique
-l, --list [périphérique...]
-F, --list-free [périphérique...]
--part-attrs périphérique numéro-partition [attributs]
Bit 0 (RequiredPartition)
Bit 1 (NoBlockIOProtocol)
Bit 2 (LegacyBIOSBootable)
Bits 3-47
Bits 48-63
--part-label périphérique numéro-partition [étiquette]
--part-type périphérique numéro-partition [type]
L’argument type est hexadécimal pour MBR, un GUID pour GPT, du type alias (par exemple, « linux » ou de type raccourci (par exemple, « L »). Pour la compatibilité ascendante, les options -c et --id ont la même signification que celle-ci.
--part-uuid périphérique numéro-partition [UUID]
--disk-id périphérique [id]
-r, --reorder périphérique
-s, --show-size [périphérique...]
-T, --list-types
-V, --verify [périphérique...]
--relocate oper périphérique
gpt-bak-std
gpt-bak-mini
OPTIONS¶
-a, --append
Remarquez que la partition non utilisée peut dans ce cas être réutilisée bien qu’elle ne soit pas la dernière partition dans la table de partitions. Consultez aussi -N pour indiquer l’entrée de la table de partitions.
-b, --backup
--color[=quand]
-f, --force
--Linux
--lock[=mode]
-n, --no-act
--no-reread
--no-tell-kernel
-O, --backup-file chemin
--move-data[=chemin]
Le chemin facultatif indique le nom du fichier de journal. Celui-ci contient les informations sur toutes les opérations de lecture ou d’écriture des données de la partition. Le mot « @default » comme chemin oblige sfdisk à utiliser ~/sfdisk-<périphérique>.move pour le journal. Le journal est facultatif depuis la version 2.35.
Remarquez que cette opération est périlleuse et pas atomique. Ne pas oublier de sauvegarder les données !
Consultez aussi --move-use-fsync.
Dans l’exemple ci-dessous, la première commande crée une zone libre de 100 MiB avant la première partition et migre les données contenues (par exemple, un système de fichiers), la commande suivante crée une nouvelle partition dans l’espace libre (à la position 2048) et la dernière commande réarrange les partitions pour concorder avec l’ordre du disque (le sdc1 originel devient sdc2).
echo '+100M,' | sfdisk --move-data /dev/sdc -N 1
echo '2048,' | sfdisk /dev/sdc --append
sfdisk /dev/sdc --reorder
--move-use-fsync
-o, --output liste
La liste de colonnes par défaut peut être étendue si liste est indiquée sous la forme +liste (par exemple, -o +UUID).
-q, --quiet
-u, --unit S
-X, --label type
-Y, --label-nested type
-w, --wipe quand
-W, --wipe-partitions quand
-v, --version
-h, --help
FORMATS D’ENTRÉE¶
sfdisk supports two input formats and generic header lines.
Lignes d’en-tête¶
Les lignes de l’en-tête facultatif indiquent des renseignements génériques qui s’appliquent à la table de partitions. Le format de ligne d’en-tête est :
<name>: <value>
Les en-têtes actuellement reconnus sont :
unit
label
label-id
first-lba
last-lba
table-length
grain
sector-size
Remarquez qu’il n’est possible d’utiliser des lignes d’en-tête qu’avant d’indiquer la première partition en entrée.
Format des champs non nommés¶
début taille type amorçable
où chaque ligne remplit un descripteur de partition.
Les champs sont séparés par des caractères d’espacement, des virgules (recommandé) 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, vide ou indiqué par « - », une valeur par défaut est utilisée. Quand l’option -N (modifier une seule partition) est donnée, la valeur par défaut de chaque champ est sa valeur précédente.
La valeur par défaut de début est le premier secteur non assigné aligné conformément aux limites d’entrée et sortie du périphérique. La position de début par défaut pour la première partition est 1 MiB. Si la position est suivie des suffixes multiplicateurs (KiB MiB, GiB, TiB, PiB, EiB, ZiB et YiB), le nombre est interprété comme une position en octet. Depuis v2.38, quand l’option -N (changer une seule partition) est fournie, un « + » peut être utilisé pour agrandir une partition en déplaçant le début de la partition si l’espace est libre avant la partition.
La valeur par défaut de taille est « autant que possible » (c’est-à-dire, jusqu’à la prochaine partition ou la fin du périphérique). Un argument numérique est par défaut interprété comme un nombre de secteurs, cependant si la taille est suivie par un des suffixes multiplicateurs (KiB, MiB, GiB, TiB, PiB, EiB, ZiB et YiB), alors le nombre est interprété comme une taille de partition en octet et est aligné conformément aux limites d’entrée et sortie du périphérique. Un « + » peut être utilisé à la place d’un nombre pour agrandir la partition autant que possible. Remarquez que « + » équivaut au comportement par défaut pour une nouvelle partition. Les partitions existantes seront redimensionnées comme requis.
Le type de partition est indiqué en hexadécimal pour MBR (DOS) où le préfixe 0x est facultatif, par une chaîne GUID pour GPT, par un raccourci ou par un alias. Il est recommandé d’utiliser deux lettres pour les codes hexadécimaux du MBR pour éviter des collisions entre les raccourcis obsolètes « E » et « 0E » du code hexadécimal du MBR. Pour la rétrocompatibilité, sfdisk essaie d’interpréter type comme un raccourci pour la première possibilité dans les scripts de partitionnement, quoique dans d’autres endroits (par exemple, --part-type commande) il essaie les raccourcis comme dernière possibilité.
Depuis la version 2.36, libfdisk gère les alias de type de partition comme des extensions aux raccourcis. Un alias est un mot simple lisible par un humain (par exemple, « linux »).
Depuis la version 2.37, libfdisk supporte les noms de type de partition en entrée. Il ignore la casse des caractères et tout caractère qui n’est pas une lettre ou un chiffre (c-à-d que « Linux /usr x86 » est la même chose que « linux usr-x86 »).
Raccourcis et alias pris en charge
L - alias 'linux'
S - alias 'swap'
Ex - alias 'extended'
H - alias 'home'
U - alias 'uefi'
R - alias 'raid'
V - alias 'lvm'
La valeur type par défaut est linux.
Le raccourci « X » pour les partitions étendues Linux (85) est obsolète, remplacée par « Ex ».
amorçable est indiqué par [*|-] (non amorçable par défaut). La valeur de ce champ n’est pas pertinente 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.
Format des champs nommés¶
Ce format est plus lisible, robuste, extensible et permet d’indiquer des renseignements supplémentaires (par exemple un UUID). C’est le format conseillé pour garder les scripts lisibles.
[périphérique :]
nom[=valeur], ...
Le champ périphérique est facultatif. sfdisk extrait le numéro de partition du nom de périphérique. Cela permet d’indiquer les partitions dans un ordre quelconque. Cette fonctionnalité est surtout utilisée par --dump. En cas de doute, ne l’utilisez pas.
La valeur peut être entre guillemets (par exemple, nom="Ceci est un nom de partition"). Les champs start= et size= supportent « + » et « - » de la même manière que le format des champs non nommés.
Les champs actuellement pris en charge sont :
start=nombre
size=nombre
bootable
Battrs=chaîne
uuid=chaîne
name=chaîne
type=code
ÉTIQUETTES DE DISQUE BLANCHES¶
sfdisk does not create partition table without partitions by default. The lines with partitions are expected in the script by default. The empty partition table has to be explicitly requested by "label: <name>" script header line without any partitions lines. For example:
echo 'label: gpt' | sfdisk /dev/sdb
crée une table de partitions GPT vide. Remarquez que l’option --append désactive cette fonctionnalité.
SAUVEGARDER LA TABLE DE PARTITIONS¶
Sauvegarder la disposition des périphériques est conseillé. sfdisk permet de le faire de deux façons.
Vidanger dans le format compatible avec sfdisk¶
Utiliser la commande --dump pour sauvegarder une description de la disposition dans un fichier texte. Le format de la sauvegarde peut ensuite être utilisé en entrée de sfdisk. Par exemple :
sfdisk --dump /dev/sda > sda.dump
Cela peut ensuite être restauré par :
sfdisk /dev/sda < sda.dump
Note that sfdisk completely restores partition types and partition UUIDs. This could potentially become problematic if you duplicate the same layout to different disks, as it may result in duplicate UUIDs within your system.
Sauvegarder complètement en binaire¶
Pour une sauvegarde binaire complète de tous les secteurs où la table de partitions est gardée, utilisez la commande --backup-pt-sectors. Elle écrit les secteurs dans les fichiers ~/sfdisk-<périphérique>-<position>.bak. Le nom par défaut du fichier de sauvegarde peut être modifié avec l’option --backup-file. Les fichiers de sauvegarde ne contiennent que les données brutes du périphérique. Par exemple :
sfdisk --backup-pt-sectors /dev/sda
L’en-tête GPT peut ensuite être restauré par :
dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda
seek=$((0x00000200)) bs=1 conv=notrunc
Il est également possible d’utiliser l’option --backup pour créer la même sauvegarde immédiatement après le démarrage d’autres commandes de sfdisk. Par exemple, pour sauvegarder la table des partitions avant de supprimer toutes les partitions de la table des partitions :
sfdisk --backup --delete /dev/sda
Le même concept de fichiers de sauvegarde est utilisé par wipefs(8).
Remarquez que sfdisk depuis la version 2.26 ne fournit plus l’option -I pour restaurer les secteurs. dd(1) fournit toutes les fonctionnalités nécessaires.
COULEURS¶
La colorisation de la sortie est implémentée grâce aux fonctionnalités de terminal-colors.d(5). La colorisation implicite peut être désactivée via un fichier vide
/etc/terminal-colors.d/{commande}.disable
pour la commande {commande} ou pour tous les outils par
/etc/terminal-colors.d/disable
$XDG_CONFIG_HOME/terminal-colors.d_ ou $HOME/.config/terminal-colors.d spécifiques à l’utilisateur remplacent les réglages globaux.
Notez que la colorisation de la sortie peut être activée par défaut. Dans ce cas, les répertoires terminal-colors.d n’existent pas forcément automatiquement.
Les noms de couleurs logiques pris en charge par sfdisk sont les suivantes :
header
warn
welcome
ENVIRONNEMENT¶
SFDISK_DEBUG=all
LIBFDISK_DEBUG=all
LIBBLKID_DEBUG=all
LIBSMARTCOLS_DEBUG=all
LOCK_BLOCK_DEVICE=<mode>
NOTES¶
Depuis la version 2.26, sfdisk ne fournit plus l’option -R ou --re-read pour forcer le noyau à relire la table de partitions. Utilisez plutôt blockdev --rereadpt.
Depuis la version 2.26, sfdisk ne fournit plus les options --DOS, --IBM, --DOS-extended, --unhide, --show-extended, --cylinders, --heads, --sectors, --inside-outer ni --not-inside-outer.
EXEMPLES¶
sfdisk --list --label-nested=mbr /dev/sda
echo -e ',10M,L\n,10M,L\n,+,\n' | sfdisk /dev/sdc
echo -e 'size=10M, type=L\n size=10M, type=L\n size=+\n' | sfdisk /dev/sdc
echo -e 'type=swap' | sfdisk -N 3 /dev/sdc
sfdisk --part-type /dev/sdc 3 swap
sfdisk --delete /dev/sdc 2
echo "+,+" | sfdisk -N 3 --move-data /dev/sdc
AUTEURS¶
Karel Zak <kzak@redhat.com>
L’implémentation actuelle de sfdisk est basée sur le sfdisk d’origine d’Andries E. Brouwer.
VOIR AUSSI¶
fdisk(8), cfdisk(8), parted(8), partprobe(8), partx(8)
SIGNALER DES BOGUES¶
Pour signaler un bogue, utilisez le gestionnaire de bogues sur <https://github.com/util-linux/util-linux/issues>.
DISPONIBILITɶ
La commande sfdisk fait partie du paquet util-linux, elle est disponible sur l’archive du noyau Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.
2024-08-05 | util-linux 2.40.2 |