]> git.ipfire.org Git - thirdparty/util-linux.git/blob - disk-utils/sfdisk.8
docs: update v2.30-ReleaseNotes
[thirdparty/util-linux.git] / disk-utils / sfdisk.8
1 .\" sfdisk.8 -- man page for sfdisk
2 .\" Copyright (C) 2014 Karel Zak <kzak@redhat.com>
3 .\"
4 .\" Permission is granted to make and distribute verbatim copies of this
5 .\" manual provided the copyright notice and this permission notice are
6 .\" preserved on all copies.
7 .\"
8 .\" Permission is granted to copy and distribute modified versions of this
9 .\" manual under the conditions for verbatim copying, provided that the
10 .\" entire resulting derived work is distributed under the terms of a
11 .\" permission notice identical to this one.
12 .\"
13 .TH SFDISK 8 "June 2015" "util-linux" "System Administration"
14 .SH NAME
15 sfdisk \- display or manipulate a disk partition table
16 .SH SYNOPSIS
17 .B sfdisk
18 [options]
19 .I device
20 .RB [ \-N
21 .IR partition-number ]
22 .sp
23 .B sfdisk
24 [options]
25 .I command
26 .SH DESCRIPTION
27 .B sfdisk
28 is a script-oriented tool for partitioning any block device.
29
30 Since version 2.26
31 .B sfdisk
32 supports MBR (DOS), GPT, SUN and SGI disk labels, but no longer provides any
33 functionality for CHS (Cylinder-Head-Sector) addressing. CHS has
34 never been important for Linux, and this addressing concept does not make any
35 sense for new devices.
36 .sp
37 .B sfdisk
38 (since version 2.26)
39 .B aligns the start and end of partitions
40 to block-device I/O limits when relative sizes are specified, when the default
41 values are used or when multiplicative suffixes (e.g MiB) are used for sizes.
42 It is possible that partition size will be optimized (reduced or enlarged) due
43 to alignment if the start offset is specified exactly in sectors and partition
44 size relative or by multiplicative suffixes.
45
46 The recommended way is not to specify start offsets at all and specify
47 partition size in MiB, GiB (or so). In this case sfdisk align all partitions
48 to block-device I/O limits (or when I/O limits are too small then to megabyte
49 boundary to keep disk layout portable). If this default behaviour is unwanted
50 (usually for very small partitions) then specify offsets and sizes in
51 sectors. In this case sfdisk entirely follows specified numbers without any
52 optimization.
53 .sp
54 .B sfdisk
55 does not create the standard system partitions for SGI and SUN disk labels like
56 .BR fdisk (8)
57 does.
58 It is necessary to explicitly create all partitions including whole-disk system
59 partitions.
60
61 .SH COMMANDS
62 The commands are mutually exclusive.
63 .TP
64 .RB [ \-N " \fIpartition-number\fR] " \fIdevice\fR
65 The default \fBsfdisk\fR command is to read the specification for the desired
66 partitioning of \fIdevice\fR from standard input, and then create a partition
67 table according to the specification. See below for the description of the
68 input format. If standard input is a terminal, then \fBsfdisk\fR starts an
69 interactive session.
70 .sp
71 If the option \fB\-N\fR is specified, then the changes are applied to
72 the partition addressed by \fIpartition-number\fR. The unspecified fields
73 of the partition are not modified.
74 .sp
75 Note that it's possible to address an unused partition with \fB\-N\fR.
76 For example, an MBR always contains 4 partitions, but the number of used
77 partitions may be smaller. In this case \fBsfdisk\fR follows the default
78 values from the partition table and does not use built-in defaults for the
79 unused partition given with \fB\-N\fR. See also \fB\-\-append\fR.
80 .TP
81 .BR \-A , " \-\-activate \fIdevice " [ \fIpartition-number ...]
82 Switch on the bootable flag for the specified partitions.
83 If no \fIpartition-number\fR is specified,
84 then list the partitions with an enabled flag.
85 .TP
86 .BR "\-\-delete \fIdevice " [ \fIpartition-number ...]
87 Delete all or the specified partitions.
88 .TP
89 .BR \-d , " \-\-dump " \fIdevice\fR
90 Dump the partitions of a device in a format that is usable as input to \fBsfdisk\fR.
91 See the section \fBBACKING UP THE PARTITION TABLE\fR.
92 .TP
93 .BR \-g , " \-\-show\-geometry " [ \fIdevice ...]
94 List the geometry of all or the specified devices. For backward
95 compatibility the deprecated option \fB\-\-show\-pt\-geometry\fR have the same
96 meaning as this one.
97 .TP
98 .BR \-J , " \-\-json " \fIdevice\fR
99 Dump the partitions of a device in JSON format. Note that \fBsfdisk\fR is
100 not able to use JSON as input format.
101 .TP
102 .BR \-l , " \-\-list " [ \fIdevice ...]
103 List the partitions of all or the specified devices. This command can be used
104 together with \fB\-\-verify\fR.
105 .TP
106 .BR \-F , " \-\-list-free " [ \fIdevice ...]
107 List the free unpartitioned areas on all or the specified devices.
108 .TP
109 .BR "\-\-part\-attrs \fIdevice partition-number " [ \fIattributes ]
110 Change the GPT partition attribute bits. If \fIattributes\fR is not specified,
111 then print the current partition settings. The \fIattributes\fR argument is a
112 comma- or space-delimited list of bits. The currently supported attribute
113 bits are: RequiredPartition, NoBlockIOProtocol, LegacyBIOSBootable
114 and GUID-specific bits in the range from 48 to 63. For example, the string
115 "RequiredPartition,50,51" sets three bits.
116 .TP
117 .BR "\-\-part\-label \fIdevice partition-number " [ \fIlabel ]
118 Change the GPT partition name (label). If \fIlabel\fR is not specified,
119 then print the current partition label.
120 .TP
121 .BR "\-\-part\-type \fIdevice partition-number " [ \fItype ]
122 Change the partition type. If \fItype\fR is not specified, then print the
123 current partition type. The \fItype\fR argument is hexadecimal for MBR,
124 or a GUID for GPT. For backward compatibility the options \fB\-c\fR and
125 \fB\-\-id\fR have the same meaning as this one.
126 .TP
127 .BR "\-\-part\-uuid \fIdevice partition-number " [ \fIuuid ]
128 Change the GPT partition UUID. If \fIuuid\fR is not specified,
129 then print the current partition UUID.
130 .TP
131 .BR \-r , " \-\-reorder " \fIdevice
132 Renumber the partitions, ordering them by their start offset.
133 .TP
134 .BR \-s , " \-\-show\-size " [ \fIdevice ...]
135 List the sizes of all or the specified devices in units of 1024 byte size.
136 This command is DEPRECATED in favour of
137 .BR blockdev (1).
138 .TP
139 .BR \-T , " \-\-list\-types"
140 Print all supported types for the current disk label or the label specified by
141 \fB\-\-label\fR.
142 .TP
143 .BR \-V , " \-\-verify " [ \fIdevice ...]
144 Test whether the partition table and partitions seem correct.
145
146 .SH OPTIONS
147 .TP
148 .BR \-a , " \-\-append"
149 Don't create a new partition table, but only append the specified partitions.
150 .TP
151 .BR \-b , " \-\-backup"
152 Back up the current partition table sectors before starting the partitioning.
153 The default backup file name is ~/sfdisk-<device>-<offset>.bak; to use another
154 name see option \fB\-O\fR, \fB\-\-backup\-file\fR.
155 .TP
156 .BR \-\-color [ =\fIwhen ]
157 Colorize the output. The optional argument \fIwhen\fP
158 can be \fBauto\fR, \fBnever\fR or \fBalways\fR. If the \fIwhen\fR argument is omitted,
159 it defaults to \fBauto\fR. The colors can be disabled; for the current built-in default
160 see the \fB\-\-help\fR output. See also the \fBCOLORS\fR section.
161 .TP
162 .BR \-f , " \-\-force"
163 Disable all consistency checking.
164 .TP
165 .BR \-\-Linux
166 Deprecated and ignored option. Partitioning that is compatible with
167 Linux (and other modern operating systems) is the default.
168 .TP
169 .BR \-n , " \-\-no\-act"
170 Do everything except writing to the device.
171 .TP
172 .B \-\-no\-reread
173 Do not check through the re-read-partition-table ioctl whether the device is in use.
174 .TP
175 .B \-\-no\-tell\-kernel
176 Don't tell the kernel about partition changes. This option is recommended together
177 with \fB\-\-no\-reread\fR to modify a partition on used disk. The modified partition
178 should not be used (e.g. mounted).
179 .TP
180 .BR \-O , " \-\-backup\-file " \fIpath
181 Override the default backup file name. Note that the device name and offset
182 are always appended to the file name.
183 .TP
184 .BR \-\-move-data [ =\fIpath ]
185 Move data after partition relocation, for example when moving the beginning
186 of a partition to another place on the disk. The size of the partition has
187 to remain the same, the new and old location may overlap. This option requires
188 option \fB\-N\fR in order to be processed on one specific partition only.
189
190 The \fIpath\fR overrides the default log file name
191 (the default is ~/sfdisk-<devname>.move). The log file contains information
192 about all read/write operations on the partition data.
193
194 Note that this operation is risky and not atomic. \fBDon't forget to backup your data!\fR
195
196 In the example below, the first command creates a 100MiB free area before
197 the first partition and moves the data it contains (e.g. a filesystem),
198 the next command creates a new partition from the free space (at offset 2048),
199 and the last command reorders partitions to match disk order
200 (the original sdc1 will become sdc2).
201 .RS
202 .sp
203 .B "echo '+100M,' | sfdisk --move-data /dev/sdc -N 1"
204 .br
205 .B "echo '2048,' | sfdisk /dev/sdc --append
206 .br
207 .B sfdisk /dev/sdc --reorder
208 .sp
209 .RE
210
211 .TP
212 .BR \-o , " \-\-output " \fIlist
213 Specify which output columns to print. Use
214 .B \-\-help
215 to get a list of all supported columns.
216 .sp
217 The default list of columns may be extended if \fIlist\fP is
218 specified in the format \fI+list\fP (e.g. \fB-o +UUID\fP).
219 .TP
220 .BR \-q , " \-\-quiet"
221 Suppress extra info messages.
222 .TP
223 .BR \-u , " \-\-unit S"
224 Deprecated option. Only the sector unit is supported. This option is not
225 supported when using the --show-size command.
226 .TP
227 .BR \-X , " \-\-label " \fItype
228 Specify the disk label type (e.g. \fBdos\fR, \fBgpt\fR, ...). If this option
229 is not given, then \fBsfdisk\fR defaults to the existing label, but if there
230 is no label on the device yet, then the type defaults to \fBdos\fR. The default
231 or the current label may be overwritten by the "label: <name>" script header
232 line. The option \fB\-\-label\fR does not force \fBsfdisk\fR to create empty
233 disk label (see the \fBEMPTY DISK LABEL\fR section below).
234 .TP
235 .BR \-Y , " \-\-label\-nested " \fItype
236 Force editing of a nested disk label. The primary disk label has to exist already.
237 This option allows to edit for example a hybrid/protective MBR on devices with GPT.
238
239 .TP
240 .BR -w , " \-\-wipe "\fIwhen
241 Wipe filesystem, RAID and partition-table signatures from the device, in order
242 to avoid possible collisions. The argument \fIwhen\fR can be \fBauto\fR,
243 \fBnever\fR or \fBalways\fR. When this option is not given, the default is
244 \fBauto\fR, in which case signatures are wiped only when in interactive mode;
245 except the old partition-table signatures which are always wiped before create
246 a new partition-table if the argument \fIwhen\fR is not \fBnever\fR. In all
247 cases detected signatures are reported by warning messages before a new
248 partition table is created. See also
249 .BR wipefs (8)
250 command.
251
252 .TP
253 .BR -W , " \-\-wipe-partitions "\fIwhen
254 Wipe filesystem, RAID and partition-table signatures from a newly created
255 partitions, in order to avoid possible collisions. The argument \fIwhen\fR can
256 be \fBauto\fR, \fBnever\fR or \fBalways\fR. When this option is not given, the
257 default is \fBauto\fR, in which case signatures are wiped only when in
258 interactive mode and after confirmation by user. In all cases detected
259 signatures are reported by warning messages after a new partition is created.
260 See also
261 .BR wipefs (8)
262 command.
263
264 .TP
265 .BR \-v , " \-\-version"
266 Display version information and exit.
267 .TP
268 .BR \-h , " \-\-help"
269 Display help text and exit.
270
271 .SH "INPUT FORMATS"
272 .B sfdisk
273 supports two input formats and generic header lines.
274
275 .B Header lines
276 .RS
277 The optional header lines specify generic information that apply to the partition
278 table. The header-line format is:
279 .RS
280 .sp
281 .B "<name>: <value>"
282 .sp
283 .RE
284 The currently recognized headers are:
285 .RS
286 .TP
287 .B unit
288 Specify the partitioning unit. The only supported unit is \fBsectors\fR.
289 .TP
290 .B label
291 Specify the partition table type. For example \fBdos\fR or \fBgpt\fR.
292 .TP
293 .B label-id
294 Specify the partition table identifier. It should be a hexadecimal number
295 (with a 0x prefix) for MBR and a UUID for GPT.
296 .RE
297 .sp
298 Note that it is only possible to use header lines before the first partition
299 is specified in the input.
300 .RE
301
302 .B Unnamed-fields format
303 .RS
304 .RS
305 .sp
306 .I start size type bootable
307 .sp
308 .RE
309 where each line fills one partition descriptor.
310 .sp
311 Fields are separated by whitespace, comma or semicolon possibly
312 followed by whitespace; initial and trailing whitespace is ignored.
313 Numbers can be octal, decimal or hexadecimal; decimal is the default.
314 When a field is absent, empty or specified as '-' a default value is
315 used. But when the \fB-N\fR option (change a single partition) is
316 given, the default for each field is its previous value.
317 .sp
318 The default value of
319 .I start
320 is the first non-assigned sector aligned according to device I/O limits.
321 The default start offset for the first partition is 1 MiB. The offset may
322 be followed by the multiplicative suffixes (KiB, MiB, GiB, TiB, PiB,
323 EiB, ZiB and YiB) then the number is interpreted as offset in bytes.
324 .sp
325 The default value of
326 .I size
327 indicates "as much as possible"; i.e. until the next partition or
328 end-of-device. A numerical argument is by default interpreted as a
329 number of sectors, however if the size is followed by one of the
330 multiplicative suffixes (KiB, MiB, GiB, TiB, PiB, EiB, ZiB and YiB)
331 then the number is interpreted as the size of the partition in bytes
332 and it is then aligned according to the device I/O limits. A '+' can
333 be used instead of a number to enlarge the partition as much as
334 possible. Note '+' is equivalent to the default behaviour for a new
335 partition; existing partitions will be resized as required.
336 .sp
337 The partition
338 .I type
339 is given in hex for MBR (DOS), without the 0x prefix, a GUID string for GPT, or
340 a shortcut:
341 .RS
342 .TP
343 .B L
344 Linux; means 83 for MBR and 0FC63DAF-8483-4772-8E79-3D69D8477DE4 for GPT.
345 .TP
346 .B S
347 swap area; means 82 for MBR and 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F for GPT
348 .TP
349 .B E
350 extended partition; means 5 for MBR
351 .TP
352 .B H
353 home partition; means 933AC7E1-2EB4-4F13-B844-0E14E2AEF915 for GPT
354 .TP
355 .B X
356 linux extended partition; means 85 for MBR.
357 .TP
358 .B U
359 EFI System partition, means EF for MBR and C12A7328-F81F-11D2-BA4B-00A0C93EC93B for GPT
360 .RE
361 .PP
362 The default
363 .I type
364 value is
365 .I L
366
367 .I bootable
368 is specified as [\fB*\fR|\fB-\fR], with as default not-bootable. The
369 value of this field is irrelevant for Linux - when Linux runs it has
370 been booted already - but ir might play a role for certain boot
371 loaders and for other operating systems.
372 .RE
373
374 .B Named-fields format
375 .RS
376 This format is more readable, robust, extensible and allows to specify additional
377 information (e.g. a UUID). It is recommended to use this format to keep your scripts
378 more readable.
379 .RS
380 .sp
381 .RI [ "device \fB:" ] " name" [\fB= value "], ..."
382 .sp
383 .RE
384 The
385 .I device
386 field is optional. \fBsfdisk\fR extracts the partition number from the
387 device name. It allows to specify the partitions in random order.
388 This functionality is mostly used by \fB\-\-dump\fR.
389 Don't use it if you are not sure.
390
391 The
392 .I value
393 can be between quotation marks (e.g. name="This is partition name").
394 The currently supported fields are:
395 .RS
396 .TP
397 .BI start= number
398 The first non-assigned sector aligned according to device I/O limits. The default
399 start offset for the first partition is 1 MiB. The offset may be followed by
400 the multiplicative suffixes (KiB, MiB, GiB, TiB, PiB, EiB, ZiB and YiB) then
401 the number is interpreted as offset in bytes.
402 .TP
403 .BI size= number
404 Specify the partition size in sectors. The number may be followed by the multiplicative
405 suffixes (KiB, MiB, GiB, TiB, PiB, EiB, ZiB and YiB), then it's interpreted as size
406 in bytes and the size is aligned according to device I/O limits.
407 .TP
408 .B bootable
409 Mark the partition as bootable.
410 .TP
411 .BI attrs= string
412 Partition attributes, usually GPT partition attribute bits. See
413 \fB\-\-part\-attrs\fR for more details about the GPT-bits string format.
414 .TP
415 .BI uuid= string
416 GPT partition UUID.
417 .TP
418 .BI name= string
419 GPT partition name.
420 .TP
421 .BI type= code
422 A hexadecimal number (without 0x) for an MBR partition, or a GUID for a GPT partition.
423 For backward compatibility the \fBId=\fR field has the same meaning.
424 .RE
425 .RE
426
427 .SH "EMPTY DISK LABEL"
428 .B sfdisk
429 does not create partition table without partitions by default. The lines with
430 partitions are expected in the script by default. The empty partition table has
431 to be explicitly requested by "label: <name>" script header line without any
432 partitions lines. For example:
433 .RS
434 .sp
435 .B "echo 'label: gpt' | sfdisk /dev/sdb"
436 .sp
437 .RE
438 creates empty GPT partition table. Note that the \fB\-\-append\fR disables this feature.
439
440 .SH "BACKING UP THE PARTITION TABLE"
441 It is recommended to save the layout of your devices.
442 .B sfdisk
443 supports two ways.
444 .sp
445 Use the \fB\-\-dump\fR option to save a description of the device layout
446 to a text file. The dump format is suitable for later \fBsfdisk\fR input.
447 For example:
448 .RS
449 .sp
450 .B "sfdisk --dump /dev/sda > sda.dump"
451 .sp
452 .RE
453 This can later be restored by:
454 .RS
455 .sp
456 .B "sfdisk /dev/sda < sda.dump"
457 .RE
458
459 If you want to do a full (binary) backup of all sectors where the
460 partition table is stored,
461 then use the \fB\-\-backup\fR option. It writes the sectors to
462 ~/sfdisk-<device>-<offset>.bak files. The default name of the backup file can
463 be changed with the \fB\-\-backup\-file\fR option. The backup files
464 contain only raw data from the \fIdevice\fR.
465 Note that the same concept of backup files is used by
466 .BR wipefs (8).
467 For example:
468 .RS
469 .sp
470 .B "sfdisk --backup /dev/sda"
471 .sp
472 .RE
473 The GPT header can later be restored by:
474 .RS
475 .sp
476 .nf
477 .B "dd if=~/sfdisk-sda-0x00000200.bak of=/dev/sda \e"
478 .B " seek=$((0x00000200)) bs=1 conv=notrunc"
479 .fi
480 .sp
481 .RE
482 Note that \fBsfdisk\fR since version 2.26 no longer provides the \fB\-I\fR option to
483 restore sectors.
484 .BR dd (1)
485 provides all necessary functionality.
486
487 .SH COLORS
488 Implicit coloring can be disabled by an empty file \fI/etc/terminal-colors.d/sfdisk.disable\fR.
489
490 See
491 .BR terminal-colors.d (5)
492 for more details about colorization configuration. The logical color names
493 supported by
494 .B sfdisk
495 are:
496 .TP
497 .B header
498 The header of the output tables.
499 .TP
500 .B warn
501 The warning messages.
502 .TP
503 .B welcome
504 The welcome message.
505
506 .SH NOTES
507 Since version 2.26 \fBsfdisk\fR no longer provides the \fB\-R\fR or
508 \fB\-\-re\-read\fR option to force the kernel to reread the partition table.
509 Use \fBblockdev \-\-rereadpt\fR instead.
510 .PP
511 Since version 2.26 \fBsfdisk\fR does not provide the \fB\-\-DOS\fR, \fB\-\-IBM\fR, \fB\-\-DOS\-extended\fR,
512 \fB\-\-unhide\fR, \fB\-\-show\-extended\fR, \fB\-\-cylinders\fR, \fB\-\-heads\fR, \fB\-\-sectors\fR,
513 \fB\-\-inside\-outer\fR, \fB\-\-not\-inside\-outer\fR options.
514
515 .SH ENVIRONMENT
516 .IP SFDISK_DEBUG=all
517 enables sfdisk debug output.
518 .IP LIBFDISK_DEBUG=all
519 enables libfdisk debug output.
520 .IP LIBBLKID_DEBUG=all
521 enables libblkid debug output.
522 .IP LIBSMARTCOLS_DEBUG=all
523 enables libsmartcols debug output.
524
525 .SH "SEE ALSO"
526 .BR fdisk (8),
527 .BR cfdisk (8),
528 .BR parted (8),
529 .BR partprobe (8),
530 .BR partx (8)
531
532 .SH AUTHOR
533 Karel Zak <kzak@redhat.com>
534 .PP
535 The current sfdisk implementation is based on the original sfdisk
536 from Andries E. Brouwer.
537
538 .SH AVAILABILITY
539 The sfdisk command is part of the util-linux package and is available from
540 https://www.kernel.org/pub/linux/utils/util-linux/.