diff options
Diffstat (limited to 'disk-utils/sfdisk.8')
-rw-r--r-- | disk-utils/sfdisk.8 | 661 |
1 files changed, 661 insertions, 0 deletions
diff --git a/disk-utils/sfdisk.8 b/disk-utils/sfdisk.8 new file mode 100644 index 0000000..12c94eb --- /dev/null +++ b/disk-utils/sfdisk.8 @@ -0,0 +1,661 @@ +.\" 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. It +runs in interactive mode if executed on terminal (stdin refers to a terminal). + +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 other 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 \fB\-\-lock\fR option. +The exclusive lock will cause udevd to skip the event handling on the device. +.PP +The sfdisk prompt is only a hint for users and a displayed partition number does +not mean that the same partition table entry will be created (if -N not +specified), especially for tables with gaps. + +.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 numbers or bit names. For example, the +string "RequiredPartition,50,51" sets three bits. The currently supported +attribute bits are: +.RS +.TP +.BR "Bit 0 (RequiredPartition)" +If this bit is set, the partition is required for the platform to function. The +creator of the partition indicates that deletion or modification of the contents +can result in loss of platform features or failure for the platform to boot or +operate. The system cannot function normally if this partition is removed, and it +should be considered part of the hardware of the system. +.TP +.BR "Bit 1 (NoBlockIOProtocol)" +EFI firmware should ignore the content of the partition and not try to read from it. +.TP +.BR "Bit 2 (LegacyBIOSBootable)" +The partition may be bootable by legacy BIOS firmware. +.TP +.BR "Bits 3-47" +Undefined and must be zero. Reserved for expansion by future versions of the +UEFI specification. +.TP +.BR "Bits 48-63" +Reserved for GUID specific use. The use of these bits will vary depending on +the partition type. For example Microsoft uses bit 60 to indicate read-only, +61 for shadow copy of another partition, 62 for hidden partitions and 63 to +disable automount. +.RE +.sp +.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. +.sp +The \fItype\fR argument is hexadecimal for MBR, +GUID for GPT, type alias (e.g. "linux") or type shortcut (e.g. 'L'). +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 "\-\-disk\-id \fIdevice " [ \fIid ] +Change the disk identifier. If \fIid\fR is not specified, +then print the current identifier. The identifier is UUID for GPT +or unsigned integer for MBR. +.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 (8). +.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. +.TP +.BR "\-\-relocate \fIoper " \fIdevice +Relocate partition table header. This command is currently supported for GPT header only. +The argument \fIoper\fP can be: +.RS +.TP +.B gpt-bak-std +Move GPT backup header to the standard location at the end of the device. +.TP +.B gpt-bak-mini +Move GPT backup header behind the last partition. Note that UEFI +standard requires the backup header at the end of the device and partitioning +tools can automatically relocate the header to follow the standard. +.RE +.SH OPTIONS +.TP +.BR \-a , " \-\-append" +Don't create a new partition table, but only append the specified partitions. +.sp +Note that unused partition maybe be re-used in this case although it is not the +last partition in the partition table. See also \fB\-N\fR to specify entry in +the partition table. +.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 +\fB\-\-lock\fR[=\fImode\fR] +Use exclusive BSD lock for device or file it operates. The optional argument +\fImode\fP can be \fByes\fR, \fBno\fR (or 1 and 0) or \fBnonblock\fR. If the \fImode\fR +argument is omitted, it defaults to \fB"yes"\fR. This option overwrites +environment variable \fB$LOCK_BLOCK_DEVICE\fR. The default is not to use any +lock at all, but it's recommended to avoid collisions with udevd or other +tools. +.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 optional \fIpath\fR specifies log file name. The log file contains information +about all read/write operations on the partition data. The word "@default" as +a \fIpath\fR forces sfdisk to use ~/sfdisk-<devname>.move for the log. The log is +optional since v2.35. + +Note that this operation is risky and not atomic. \fBDon't forget to backup your data!\fR + +See also \fB\-\-move\-use\-fsync\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 +.B \-\-move\-use\-fsync +Use fsync system call after each write when move data to a new location by +\fB\-\-move\-data\fR. +.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 editing 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. +.TP +.B sector-size +Specify sector size. This header is informative only and it is not used when +sfdisk creates a new partition table, in this case the real device specific +value is always used and sector size from the dump is ignored. +.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) where 0x prefix is optional; a GUID string for +GPT; a shortcut or an alias. It's recommended to use two letters for MBR hex codes to +avoid collision between deprecated shortcut 'E' and '0E' MBR hex code. For backward +compatibility sfdisk tries to interpret +.I type +as a shortcut as a first possibility in partitioning scripts although on other places (e.g. +\fB\-\-part-type command)\fR it tries shortcuts as the last possibility. + +Since v2.36 libfdisk supports partition type aliases as extension to shortcuts. The alias is a +simple human readable word (e.g. "linux"). + +Supported shortcuts and aliases: +.RS +.TP +.B L - alias 'linux' +Linux; means 83 for MBR and 0FC63DAF-8483-4772-8E79-3D69D8477DE4 for GPT. +.TP +.B S - alias 'swap' +swap area; means 82 for MBR and 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F for GPT +.TP +.B Ex - alias 'extended' +MBR extended partition; means 05 for MBR. The original shortcut 'E' is deprecated due to collision with +0x0E MBR partition type. +.TP +.B H - alias 'home' +home partition; means 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 for GPT +.TP +.B U - alias 'uefi' +EFI System partition, means EF for MBR and C12A7328-F81F-11D2-BA4B-00A0C93EC93B for GPT +.TP +.B R - alias 'raid' +Linux RAID; means FD for MBR and A19D880F-05FC-4D3B-A006-743F0F84911E for GPT +.TP +.B V - alias 'lvm' +LVM; means 8E for MBR and E6D6D379-F507-44C2-A23C-238F2A3DF928 for GPT +.RE +.PP +The default +.I type +value is +.I linux +.sp +The shortcut 'X' for Linux extended partition (85) is deprecated in favour of 'Ex'. + +.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 it 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 specifying 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 specifying 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, a GUID for a GPT partition, +or a shortcut as for unnamed-fields format. +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 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. +.IP LOCK_BLOCK_DEVICE=<mode> +use exclusive BSD lock. The mode is "1" or "0". See \fB\-\-lock\fR for more details. + +.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 AUTHORS +Karel Zak <kzak@redhat.com> +.PP +The current sfdisk implementation is based on the original sfdisk +from Andries E. Brouwer. + +.SH SEE ALSO +.BR fdisk (8), +.BR cfdisk (8), +.BR parted (8), +.BR partprobe (8), +.BR partx (8) + +.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/. |