summaryrefslogtreecommitdiffstats
path: root/disk-utils/sfdisk.8
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:42:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 02:42:50 +0000
commit8cb83eee5a58b1fad74c34094ce3afb9e430b5a4 (patch)
treea9b2e7baeca1be40eb734371e3c8b11b02294497 /disk-utils/sfdisk.8
parentInitial commit. (diff)
downloadutil-linux-upstream.tar.xz
util-linux-upstream.zip
Adding upstream version 2.33.1.upstream/2.33.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'disk-utils/sfdisk.8')
-rw-r--r--disk-utils/sfdisk.8583
1 files changed, 583 insertions, 0 deletions
diff --git a/disk-utils/sfdisk.8 b/disk-utils/sfdisk.8
new file mode 100644
index 0000000..ff54760
--- /dev/null
+++ b/disk-utils/sfdisk.8
@@ -0,0 +1,583 @@
+.\" sfdisk.8 -- man page for sfdisk
+.\" Copyright (C) 2014 Karel Zak <kzak@redhat.com>
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.TH SFDISK 8 "June 2015" "util-linux" "System Administration"
+.SH NAME
+sfdisk \- display or manipulate a disk partition table
+.SH SYNOPSIS
+.B sfdisk
+[options]
+.I device
+.RB [ \-N
+.IR partition-number ]
+.sp
+.B sfdisk
+[options]
+.I command
+.SH DESCRIPTION
+.B sfdisk
+is a script-oriented tool for partitioning any block device.
+
+Since version 2.26
+.B sfdisk
+supports MBR (DOS), GPT, SUN and SGI disk labels, but no longer provides any
+functionality for CHS (Cylinder-Head-Sector) addressing. CHS has
+never been important for Linux, and this addressing concept does not make any
+sense for new devices.
+.sp
+.B sfdisk
+(since version 2.26)
+.B 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.
+
+The recommended way is not to specify start offsets at all and specify
+partition size in MiB, GiB (or so). In this case sfdisk align all partitions
+to block-device I/O limits (or when I/O limits are too small then to megabyte
+boundary to keep disk layout portable). If this default behaviour is unwanted
+(usually for very small partitions) then specify offsets and sizes in
+sectors. In this case sfdisk entirely follows specified numbers without any
+optimization.
+.sp
+.B sfdisk
+does not create the standard system partitions for SGI and SUN disk labels like
+.BR fdisk (8)
+does.
+It is necessary to explicitly create all partitions including whole-disk system
+partitions.
+
+.B sfdisk
+uses BLKRRPART (reread partition table) ioctl to make sure that the device is
+not used by system or another tools (see also --no-reread). It's possible that
+this feature or another sfdisk activity races with \fBudevd\fR. The recommended way
+how to avoid possible collisions is to use exclusive flock for the whole-disk
+device to serialize device access. The exclusive lock will cause udevd to skip
+the event handling on the device. For example:
+.RS
+.sp
+.nf
+.B "flock /dev/sdc sfdisk /dev/sdc"
+.fi
+.sp
+.RE
+Note, this semantic is not currently supported by udevd for MD and DM devices.
+
+.SH COMMANDS
+The commands are mutually exclusive.
+.TP
+.RB [ \-N " \fIpartition-number\fR] " \fIdevice\fR
+The default \fBsfdisk\fR command is to read the specification for the desired
+partitioning of \fIdevice\fR from standard input, and then create a partition
+table according to the specification. See below for the description of the
+input format. If standard input is a terminal, then \fBsfdisk\fR starts an
+interactive session.
+.sp
+If the option \fB\-N\fR is specified, then the changes are applied to
+the partition addressed by \fIpartition-number\fR. The unspecified fields
+of the partition are not modified.
+.sp
+Note that it's possible to address an unused partition with \fB\-N\fR.
+For example, an MBR always contains 4 partitions, but the number of used
+partitions may be smaller. In this case \fBsfdisk\fR follows the default
+values from the partition table and does not use built-in defaults for the
+unused partition given with \fB\-N\fR. See also \fB\-\-append\fR.
+.TP
+.BR \-A , " \-\-activate \fIdevice " [ \fIpartition-number...]
+Switch on the bootable flag for the specified partitions and switch off the
+bootable flag on all unspecified partitions. The special placeholder '-'
+may be used instead of the partition numbers to switch off the bootable flag
+on all partitions.
+
+The activation command is supported for MBR and PMBR only. If GPT label is detected
+than sfdisk prints warning and automatically enter PMBR.
+
+If no \fIpartition-number\fR is specified, then list the partitions with an
+enabled flag.
+.TP
+.BR "\-\-delete \fIdevice " [ \fIpartition-number ...]
+Delete all or the specified partitions.
+.TP
+.BR \-d , " \-\-dump " \fIdevice\fR
+Dump the partitions of a device in a format that is usable as input to \fBsfdisk\fR.
+See the section \fBBACKING UP THE PARTITION TABLE\fR.
+.TP
+.BR \-g , " \-\-show\-geometry " [ \fIdevice ...]
+List the geometry of all or the specified devices. For backward
+compatibility the deprecated option \fB\-\-show\-pt\-geometry\fR have the same
+meaning as this one.
+.TP
+.BR \-J , " \-\-json " \fIdevice\fR
+Dump the partitions of a device in JSON format. Note that \fBsfdisk\fR is
+not able to use JSON as input format.
+.TP
+.BR \-l , " \-\-list " [ \fIdevice ...]
+List the partitions of all or the specified devices. This command can be used
+together with \fB\-\-verify\fR.
+.TP
+.BR \-F , " \-\-list-free " [ \fIdevice ...]
+List the free unpartitioned areas on all or the specified devices.
+.TP
+.BR "\-\-part\-attrs \fIdevice partition-number " [ \fIattributes ]
+Change the GPT partition attribute bits. If \fIattributes\fR is not specified,
+then print the current partition settings. The \fIattributes\fR argument is a
+comma- or space-delimited list of bits. The currently supported attribute
+bits are: RequiredPartition, NoBlockIOProtocol, LegacyBIOSBootable
+and GUID-specific bits in the range from 48 to 63. For example, the string
+"RequiredPartition,50,51" sets three bits.
+.TP
+.BR "\-\-part\-label \fIdevice partition-number " [ \fIlabel ]
+Change the GPT partition name (label). If \fIlabel\fR is not specified,
+then print the current partition label.
+.TP
+.BR "\-\-part\-type \fIdevice partition-number " [ \fItype ]
+Change the partition type. If \fItype\fR is not specified, then print the
+current partition type. The \fItype\fR argument is hexadecimal for MBR,
+or a GUID for GPT. For backward compatibility the options \fB\-c\fR and
+\fB\-\-id\fR have the same meaning as this one.
+.TP
+.BR "\-\-part\-uuid \fIdevice partition-number " [ \fIuuid ]
+Change the GPT partition UUID. If \fIuuid\fR is not specified,
+then print the current partition UUID.
+.TP
+.BR \-r , " \-\-reorder " \fIdevice
+Renumber the partitions, ordering them by their start offset.
+.TP
+.BR \-s , " \-\-show\-size " [ \fIdevice ...]
+List the sizes of all or the specified devices in units of 1024 byte size.
+This command is DEPRECATED in favour of
+.BR blockdev (1).
+.TP
+.BR \-T , " \-\-list\-types"
+Print all supported types for the current disk label or the label specified by
+\fB\-\-label\fR.
+.TP
+.BR \-V , " \-\-verify " [ \fIdevice ...]
+Test whether the partition table and partitions seem correct.
+
+.SH OPTIONS
+.TP
+.BR \-a , " \-\-append"
+Don't create a new partition table, but only append the specified partitions.
+.TP
+.BR \-b , " \-\-backup"
+Back up the current partition table sectors before starting the partitioning.
+The default backup file name is ~/sfdisk-<device>-<offset>.bak; to use another
+name see option \fB\-O\fR, \fB\-\-backup\-file\fR.
+.TP
+.BR \-\-color [ =\fIwhen ]
+Colorize the output. The optional argument \fIwhen\fP
+can be \fBauto\fR, \fBnever\fR or \fBalways\fR. If the \fIwhen\fR argument is omitted,
+it defaults to \fBauto\fR. The colors can be disabled; for the current built-in default
+see the \fB\-\-help\fR output. See also the \fBCOLORS\fR section.
+.TP
+.BR \-f , " \-\-force"
+Disable all consistency checking.
+.TP
+.B \-\-Linux
+Deprecated and ignored option. Partitioning that is compatible with
+Linux (and other modern operating systems) is the default.
+.TP
+.BR \-n , " \-\-no\-act"
+Do everything except writing to the device.
+.TP
+.B \-\-no\-reread
+Do not check through the re-read-partition-table ioctl whether the device is in use.
+.TP
+.B \-\-no\-tell\-kernel
+Don't tell the kernel about partition changes. This option is recommended together
+with \fB\-\-no\-reread\fR to modify a partition on used disk. The modified partition
+should not be used (e.g. mounted).
+.TP
+.BR \-O , " \-\-backup\-file " \fIpath
+Override the default backup file name. Note that the device name and offset
+are always appended to the file name.
+.TP
+.BR \-\-move-data [ =\fIpath ]
+Move data after partition relocation, for example when moving the beginning
+of a partition to another place on the disk. The size of the partition has
+to remain the same, the new and old location may overlap. This option requires
+option \fB\-N\fR in order to be processed on one specific partition only.
+
+The \fIpath\fR overrides the default log file name
+(the default is ~/sfdisk-<devname>.move). The log file contains information
+about all read/write operations on the partition data.
+
+Note that this operation is risky and not atomic. \fBDon't forget to backup your data!\fR
+
+In the example below, the first command creates a 100MiB free area before
+the first partition and moves the data it contains (e.g. a filesystem),
+the next command creates a new partition from the free space (at offset 2048),
+and the last command reorders partitions to match disk order
+(the original sdc1 will become sdc2).
+.RS
+.sp
+.B "echo '+100M,' | sfdisk --move-data /dev/sdc -N 1"
+.br
+.B "echo '2048,' | sfdisk /dev/sdc --append
+.br
+.B sfdisk /dev/sdc --reorder
+.sp
+.RE
+
+.TP
+.BR \-o , " \-\-output " \fIlist
+Specify which output columns to print. Use
+.B \-\-help
+to get a list of all supported columns.
+.sp
+The default list of columns may be extended if \fIlist\fP is
+specified in the format \fI+list\fP (e.g. \fB-o +UUID\fP).
+.TP
+.BR \-q , " \-\-quiet"
+Suppress extra info messages.
+.TP
+.BR \-u , " \-\-unit S"
+Deprecated option. Only the sector unit is supported. This option is not
+supported when using the --show-size command.
+.TP
+.BR \-X , " \-\-label " \fItype
+Specify the disk label type (e.g. \fBdos\fR, \fBgpt\fR, ...). If this option
+is not given, then \fBsfdisk\fR defaults to the existing label, but if there
+is no label on the device yet, then the type defaults to \fBdos\fR. The default
+or the current label may be overwritten by the "label: <name>" script header
+line. The option \fB\-\-label\fR does not force \fBsfdisk\fR to create empty
+disk label (see the \fBEMPTY DISK LABEL\fR section below).
+.TP
+.BR \-Y , " \-\-label\-nested " \fItype
+Force editing of a nested disk label. The primary disk label has to exist already.
+This option allows to edit for example a hybrid/protective MBR on devices with GPT.
+
+.TP
+.BR -w , " \-\-wipe "\fIwhen
+Wipe filesystem, RAID and partition-table signatures from the device, in order
+to avoid possible collisions. The argument \fIwhen\fR can be \fBauto\fR,
+\fBnever\fR or \fBalways\fR. When this option is not given, the default is
+\fBauto\fR, in which case signatures are wiped only when in interactive mode;
+except the old partition-table signatures which are always wiped before create
+a new partition-table if the argument \fIwhen\fR is not \fBnever\fR. In all
+cases detected signatures are reported by warning messages before a new
+partition table is created. See also
+.BR wipefs (8)
+command.
+
+.TP
+.BR -W , " \-\-wipe-partitions "\fIwhen
+Wipe filesystem, RAID and partition-table signatures from a newly created
+partitions, in order to avoid possible collisions. The argument \fIwhen\fR can
+be \fBauto\fR, \fBnever\fR or \fBalways\fR. When this option is not given, the
+default is \fBauto\fR, in which case signatures are wiped only when in
+interactive mode and after confirmation by user. In all cases detected
+signatures are reported by warning messages after a new partition is created.
+See also
+.BR wipefs (8)
+command.
+
+.TP
+.BR \-v , " \-\-version"
+Display version information and exit.
+.TP
+.BR \-h , " \-\-help"
+Display help text and exit.
+
+.SH "INPUT FORMATS"
+.B sfdisk
+supports two input formats and generic header lines.
+
+.B Header lines
+.RS
+The optional header lines specify generic information that apply to the partition
+table. The header-line format is:
+.RS
+.sp
+.B "<name>: <value>"
+.sp
+.RE
+The currently recognized headers are:
+.RS
+.TP
+.B unit
+Specify the partitioning unit. The only supported unit is \fBsectors\fR.
+.TP
+.B label
+Specify the partition table type. For example \fBdos\fR or \fBgpt\fR.
+.TP
+.B label-id
+Specify the partition table identifier. It should be a hexadecimal number
+(with a 0x prefix) for MBR and a UUID for GPT.
+.TP
+.B first-lba
+Specify the first usable sector for GPT partitions.
+.TP
+.B last-lba
+Specify the last usable sector for GPT partitions.
+.TP
+.B table-length
+Specify the maximal number of GPT partitions.
+.TP
+.B grain
+Specify minimal size in bytes used to calculate partitions alignment. The
+default is 1MiB and it's strongly recommended to use the default. Do not
+modify this variable if you're not sure.
+.RE
+.sp
+Note that it is only possible to use header lines before the first partition
+is specified in the input.
+.RE
+
+.B Unnamed-fields format
+.RS
+.RS
+.sp
+.I start size type bootable
+.sp
+.RE
+where each line fills one partition descriptor.
+.sp
+Fields are separated by whitespace, comma or semicolon possibly
+followed by whitespace; initial and trailing whitespace is ignored.
+Numbers can be octal, decimal or hexadecimal; decimal is the default.
+When a field is absent, empty or specified as '-' a default value is
+used. But when the \fB-N\fR option (change a single partition) is
+given, the default for each field is its previous value.
+.sp
+The default value of
+.I start
+is the first non-assigned sector aligned according to device I/O limits.
+The default start offset for the first partition is 1 MiB. The offset may
+be followed by the multiplicative suffixes (KiB, MiB, GiB, TiB, PiB,
+EiB, ZiB and YiB) then the number is interpreted as offset in bytes.
+.sp
+The default value of
+.I size
+indicates "as much as possible"; i.e. until the next partition or
+end-of-device. A numerical argument is by default interpreted as a
+number of sectors, however if the size is followed by one of the
+multiplicative suffixes (KiB, MiB, GiB, TiB, PiB, EiB, ZiB and YiB)
+then the number is interpreted as the size of the partition in bytes
+and it is then aligned according to the device I/O limits. A '+' can
+be used instead of a number to enlarge the partition as much as
+possible. Note '+' is equivalent to the default behaviour for a new
+partition; existing partitions will be resized as required.
+.sp
+The partition
+.I type
+is given in hex for MBR (DOS), without the 0x prefix, a GUID string for GPT, or
+a shortcut:
+.RS
+.TP
+.B L
+Linux; means 83 for MBR and 0FC63DAF-8483-4772-8E79-3D69D8477DE4 for GPT.
+.TP
+.B S
+swap area; means 82 for MBR and 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F for GPT
+.TP
+.B E
+extended partition; means 5 for MBR
+.TP
+.B H
+home partition; means 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 for GPT
+.TP
+.B X
+linux extended partition; means 85 for MBR.
+.TP
+.B U
+EFI System partition, means EF for MBR and C12A7328-F81F-11D2-BA4B-00A0C93EC93B for GPT
+.TP
+.B R
+Linux RAID; means FD for MBR and A19D880F-05FC-4D3B-A006-743F0F84911E for GPT
+.TP
+.B V
+LVM; means 8E for MBR and E6D6D379-F507-44C2-A23C-238F2A3DF928 for GPT
+.RE
+.PP
+The default
+.I type
+value is
+.I L
+
+.I bootable
+is specified as [\fB*\fR|\fB-\fR], with as default not-bootable. The
+value of this field is irrelevant for Linux - when Linux runs it has
+been booted already - but ir might play a role for certain boot
+loaders and for other operating systems.
+.RE
+
+.B Named-fields format
+.RS
+This format is more readable, robust, extensible and allows to specify additional
+information (e.g. a UUID). It is recommended to use this format to keep your scripts
+more readable.
+.RS
+.sp
+.RI [ "device \fB:" ] " name" [\fB= value "], ..."
+.sp
+.RE
+The
+.I device
+field is optional. \fBsfdisk\fR extracts the partition number from the
+device name. It allows to specify the partitions in random order.
+This functionality is mostly used by \fB\-\-dump\fR.
+Don't use it if you are not sure.
+
+The
+.I value
+can be between quotation marks (e.g. name="This is partition name").
+The currently supported fields are:
+.RS
+.TP
+.BI start= number
+The first non-assigned sector aligned according to device I/O limits. The default
+start offset for the first partition is 1 MiB. The offset may be followed by
+the multiplicative suffixes (KiB, MiB, GiB, TiB, PiB, EiB, ZiB and YiB) then
+the number is interpreted as offset in bytes.
+.TP
+.BI size= number
+Specify the partition size in sectors. The number may be followed by the multiplicative
+suffixes (KiB, MiB, GiB, TiB, PiB, EiB, ZiB and YiB), then it's interpreted as size
+in bytes and the size is aligned according to device I/O limits.
+.TP
+.B bootable
+Mark the partition as bootable.
+.TP
+.BI attrs= string
+Partition attributes, usually GPT partition attribute bits. See
+\fB\-\-part\-attrs\fR for more details about the GPT-bits string format.
+.TP
+.BI uuid= string
+GPT partition UUID.
+.TP
+.BI name= string
+GPT partition name.
+.TP
+.BI type= code
+A hexadecimal number (without 0x) for an MBR partition, or a GUID for a GPT partition.
+For backward compatibility the \fBId=\fR field has the same meaning.
+.RE
+.RE
+
+.SH "EMPTY DISK LABEL"
+.B 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:
+.RS
+.sp
+.B "echo 'label: gpt' | sfdisk /dev/sdb"
+.sp
+.RE
+creates empty GPT partition table. Note that the \fB\-\-append\fR disables this feature.
+
+.SH "BACKING UP THE PARTITION TABLE"
+It is recommended to save the layout of your devices.
+.B sfdisk
+supports two ways.
+.sp
+Use the \fB\-\-dump\fR option to save a description of the device layout
+to a text file. The dump format is suitable for later \fBsfdisk\fR input.
+For example:
+.RS
+.sp
+.B "sfdisk --dump /dev/sda > sda.dump"
+.sp
+.RE
+This can later be restored by:
+.RS
+.sp
+.B "sfdisk /dev/sda < sda.dump"
+.RE
+
+If you want to do a full (binary) backup of all sectors where the
+partition table is stored,
+then use the \fB\-\-backup\fR option. It writes the sectors to
+~/sfdisk-<device>-<offset>.bak files. The default name of the backup file can
+be changed with the \fB\-\-backup\-file\fR option. The backup files
+contain only raw data from the \fIdevice\fR.
+Note that the same concept of backup files is used by
+.BR wipefs (8).
+For example:
+.RS
+.sp
+.B "sfdisk --backup /dev/sda"
+.sp
+.RE
+The GPT header can later be restored by:
+.RS
+.sp
+.nf
+.B "dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda \e"
+.B " seek=$((0x00000200)) bs=1 conv=notrunc"
+.fi
+.sp
+.RE
+Note that \fBsfdisk\fR since version 2.26 no longer provides the \fB\-I\fR option to
+restore sectors.
+.BR dd (1)
+provides all necessary functionality.
+
+.SH COLORS
+Implicit coloring can be disabled by an empty file \fI/etc/terminal-colors.d/sfdisk.disable\fR.
+
+See
+.BR terminal-colors.d (5)
+for more details about colorization configuration. The logical color names
+supported by
+.B sfdisk
+are:
+.TP
+.B header
+The header of the output tables.
+.TP
+.B warn
+The warning messages.
+.TP
+.B welcome
+The welcome message.
+
+.SH NOTES
+Since version 2.26 \fBsfdisk\fR no longer provides the \fB\-R\fR or
+\fB\-\-re\-read\fR option to force the kernel to reread the partition table.
+Use \fBblockdev \-\-rereadpt\fR instead.
+.PP
+Since version 2.26 \fBsfdisk\fR does not provide the \fB\-\-DOS\fR, \fB\-\-IBM\fR, \fB\-\-DOS\-extended\fR,
+\fB\-\-unhide\fR, \fB\-\-show\-extended\fR, \fB\-\-cylinders\fR, \fB\-\-heads\fR, \fB\-\-sectors\fR,
+\fB\-\-inside\-outer\fR, \fB\-\-not\-inside\-outer\fR options.
+
+.SH ENVIRONMENT
+.IP SFDISK_DEBUG=all
+enables sfdisk debug output.
+.IP LIBFDISK_DEBUG=all
+enables libfdisk debug output.
+.IP LIBBLKID_DEBUG=all
+enables libblkid debug output.
+.IP LIBSMARTCOLS_DEBUG=all
+enables libsmartcols debug output.
+
+.SH "SEE ALSO"
+.BR fdisk (8),
+.BR cfdisk (8),
+.BR parted (8),
+.BR partprobe (8),
+.BR partx (8)
+
+.SH AUTHOR
+Karel Zak <kzak@redhat.com>
+.PP
+The current sfdisk implementation is based on the original sfdisk
+from Andries E. Brouwer.
+
+.SH AVAILABILITY
+The sfdisk command is part of the util-linux package and is available from
+https://www.kernel.org/pub/linux/utils/util-linux/.