1FDISK(8)                     System Administration                    FDISK(8)
2
3
4

NAME

6       fdisk - manipulate disk partition table
7

SYNOPSIS

9       fdisk [options] device
10
11       fdisk -l [device...]
12

DESCRIPTION

14       fdisk is a dialog-driven program for creation and manipulation of
15       partition tables. It understands GPT, MBR, Sun, SGI and BSD partition
16       tables.
17
18       Block devices can be divided into one or more logical disks called
19       partitions. This division is recorded in the partition table, usually
20       found in sector 0 of the disk. (In the BSD world one talks about `disk
21       slices' and a `disklabel'.)
22
23       All partitioning is driven by device I/O limits (the topology) by
24       default. fdisk is able to optimize the disk layout for a 4K-sector size
25       and use an alignment offset on modern devices for MBR and GPT. It is
26       always a good idea to follow fdisk's defaults as the default values
27       (e.g., first and last partition sectors) and partition sizes specified
28       by the +/-<size>{M,G,...} notation are always aligned according to the
29       device properties.
30
31       CHS (Cylinder-Head-Sector) addressing is deprecated and not used by
32       default. Please, do not follow old articles and recommendations with
33       fdisk -S <n> -H <n> advices for SSD or 4K-sector devices.
34
35       Note that partx(8) provides a rich interface for scripts to print disk
36       layouts, fdisk is mostly designed for humans. Backward compatibility in
37       the output of fdisk is not guaranteed. The input (the commands) should
38       always be backward compatible.
39

OPTIONS

41       -b, --sector-size sectorsize
42           Specify the sector size of the disk. Valid values are 512, 1024,
43           2048, and 4096. (Recent kernels know the sector size. Use this
44           option only on old kernels or to override the kernel’s ideas.)
45           Since util-linux-2.17, fdisk differentiates between logical and
46           physical sector size. This option changes both sector sizes to
47           sectorsize.
48
49       -B, --protect-boot
50           Don’t erase the beginning of the first disk sector when creating a
51           new disk label. This feature is supported for GPT and MBR.
52
53       -c, --compatibility[=mode]
54           Specify the compatibility mode, 'dos' or 'nondos'. The default is
55           non-DOS mode. For backward compatibility, it is possible to use the
56           option without the mode argument — then the default is used. Note
57           that the optional mode argument cannot be separated from the -c
58           option by a space, the correct form is for example -c=dos.
59
60       -h, --help
61           Display help text and exit.
62
63       -V, --version
64           Print version and exit.
65
66       -L, --color[=when]
67           Colorize the output. The optional argument when can be auto, never
68           or always. If the when argument is omitted, it defaults to auto.
69           The colors can be disabled; for the current built-in default see
70           the --help output. See also the COLORS section.
71
72       -l, --list
73           List the partition tables for the specified devices and then exit.
74
75           If no devices are given, the devices mentioned in /proc/partitions
76           (if this file exists) are used. Devices are always listed in the
77           order in which they are specified on the command-line, or by the
78           kernel listed in /proc/partitions.
79
80       -x, --list-details
81           Like --list, but provides more details.
82
83       --lock[=mode]
84           Use exclusive BSD lock for device or file it operates. The optional
85           argument mode can be yes, no (or 1 and 0) or nonblock. If the mode
86           argument is omitted, it defaults to yes. This option overwrites
87           environment variable $LOCK_BLOCK_DEVICE. The default is not to use
88           any lock at all, but it’s recommended to avoid collisions with
89           systemd-udevd(8) or other tools.
90
91       -n, --noauto-pt
92           Don’t automatically create a default partition table on empty
93           device. The partition table has to be explicitly created by user
94           (by command like 'o', 'g', etc.).
95
96       -o, --output list
97           Specify which output columns to print. Use --help to get a list of
98           all supported columns.
99
100           The default list of columns may be extended if list is specified in
101           the format +list (e.g., -o +UUID).
102
103       -s, --getsz
104           Print the size in 512-byte sectors of each given block device. This
105           option is DEPRECATED in favour of blockdev(8).
106
107       -t, --type type
108           Enable support only for disklabels of the specified type, and
109           disable support for all other types.
110
111       -u, --units[=unit]
112           When listing partition tables, show sizes in 'sectors' or in
113           'cylinders'. The default is to show sizes in sectors. For backward
114           compatibility, it is possible to use the option without the unit
115           argument — then the default is used. Note that the optional unit
116           argument cannot be separated from the -u option by a space, the
117           correct form is for example '-u=cylinders'.
118
119       -C, --cylinders number
120           Specify the number of cylinders of the disk. I have no idea why
121           anybody would want to do so.
122
123       -H, --heads number
124           Specify the number of heads of the disk. (Not the physical number,
125           of course, but the number used for partition tables.) Reasonable
126           values are 255 and 16.
127
128       -S, --sectors number
129           Specify the number of sectors per track of the disk. (Not the
130           physical number, of course, but the number used for partition
131           tables.) A reasonable value is 63.
132
133       -w, --wipe when
134           Wipe filesystem, RAID and partition-table signatures from the
135           device, in order to avoid possible collisions. The argument when
136           can be auto, never or always. When this option is not given, the
137           default is auto, in which case signatures are wiped only when in
138           interactive mode. In all cases detected signatures are reported by
139           warning messages before a new partition table is created. See also
140           wipefs(8) command.
141
142       -W, --wipe-partitions when
143           Wipe filesystem, RAID and partition-table signatures from a newly
144           created partitions, in order to avoid possible collisions. The
145           argument when can be auto, never or always. When this option is not
146           given, the default is auto, in which case signatures are wiped only
147           when in interactive mode and after confirmation by user. In all
148           cases detected signatures are reported by warning messages before a
149           new partition is created. See also wipefs(8) command.
150
151       -V, --version
152           Display version information and exit.
153

DEVICES

155       The device is usually /dev/sda, /dev/sdb or so. A device name refers to
156       the entire disk. Old systems without libata (a library used inside the
157       Linux kernel to support ATA host controllers and devices) make a
158       difference between IDE and SCSI disks. In such cases the device name
159       will be /dev/hd* (IDE) or /dev/sd* (SCSI).
160
161       The partition is a device name followed by a partition number. For
162       example, /dev/sda1 is the first partition on the first hard disk in the
163       system. See also Linux kernel documentation (the
164       Documentation/admin-guide/devices.txt file).
165

SIZES

167       The "last sector" dialog accepts partition size specified by number of
168       sectors or by +/-<size>{K,B,M,G,...} notation.
169
170       If the size is prefixed by '+' then it is interpreted as relative to
171       the partition first sector. If the size is prefixed by '-' then it is
172       interpreted as relative to the high limit (last available sector for
173       the partition).
174
175       In the case the size is specified in bytes than the number may be
176       followed by the multiplicative suffixes KiB=1024, MiB=1024*1024, and so
177       on for GiB, TiB, PiB, EiB, ZiB and YiB. The "iB" is optional, e.g., "K"
178       has the same meaning as "KiB".
179
180       The relative sizes are always aligned according to device I/O limits.
181       The +/-<size>{K,B,M,G,...} notation is recommended.
182
183       For backward compatibility fdisk also accepts the suffixes KB=1000,
184       MB=1000*1000, and so on for GB, TB, PB, EB, ZB and YB. These 10^N
185       suffixes are deprecated.
186

SCRIPT FILES

188       fdisk allows reading (by 'I' command) sfdisk(8) compatible script
189       files. The script is applied to in-memory partition table, and then it
190       is possible to modify the partition table before you write it to the
191       device.
192
193       And vice-versa it is possible to write the current in-memory disk
194       layout to the script file by command 'O'.
195
196       The script files are compatible between cfdisk(8), sfdisk(8), fdisk and
197       other libfdisk applications. For more details see sfdisk(8).
198

DISK LABELS

200       GPT (GUID Partition Table)
201           GPT is modern standard for the layout of the partition table. GPT
202           uses 64-bit logical block addresses, checksums, UUIDs and names for
203           partitions and an unlimited number of partitions (although the
204           number of partitions is usually restricted to 128 in many
205           partitioning tools).
206
207           Note that the first sector is still reserved for a protective MBR
208           in the GPT specification. It prevents MBR-only partitioning tools
209           from mis-recognizing and overwriting GPT disks.
210
211           GPT is always a better choice than MBR, especially on modern
212           hardware with a UEFI boot loader.
213
214       DOS-type (MBR)
215           A DOS-type partition table can describe an unlimited number of
216           partitions. In sector 0 there is room for the description of 4
217           partitions (called `primary'). One of these may be an extended
218           partition; this is a box holding logical partitions, with
219           descriptors found in a linked list of sectors, each preceding the
220           corresponding logical partitions. The four primary partitions,
221           present or not, get numbers 1-4. Logical partitions are numbered
222           starting from 5.
223
224           In a DOS-type partition table the starting offset and the size of
225           each partition is stored in two ways: as an absolute number of
226           sectors (given in 32 bits), and as a Cylinders/Heads/Sectors triple
227           (given in 10+8+6 bits). The former is OK — with 512-byte sectors
228           this will work up to 2 TB. The latter has two problems. First,
229           these C/H/S fields can be filled only when the number of heads and
230           the number of sectors per track are known. And second, even if we
231           know what these numbers should be, the 24 bits that are available
232           do not suffice. DOS uses C/H/S only, Windows uses both, Linux never
233           uses C/H/S. The C/H/S addressing is deprecated and may be
234           unsupported in some later fdisk version.
235
236           Please, read the DOS-mode section if you want DOS-compatible
237           partitions. fdisk does not care about cylinder boundaries by
238           default.
239
240       BSD/Sun-type
241           A BSD/Sun disklabel can describe 8 partitions, the third of which
242           should be a `whole disk' partition. Do not start a partition that
243           actually uses its first sector (like a swap partition) at cylinder
244           0, since that will destroy the disklabel. Note that a BSD label is
245           usually nested within a DOS partition.
246
247       IRIX/SGI-type
248           An IRIX/SGI disklabel can describe 16 partitions, the eleventh of
249           which should be an entire `volume' partition, while the ninth
250           should be labeled `volume header'. The volume header will also
251           cover the partition table, i.e., it starts at block zero and
252           extends by default over five cylinders. The remaining space in the
253           volume header may be used by header directory entries. No
254           partitions may overlap with the volume header. Also do not change
255           its type or make some filesystem on it, since you will lose the
256           partition table. Use this type of label only when working with
257           Linux on IRIX/SGI machines or IRIX/SGI disks under Linux.
258
259           A sync(2) and an ioctl(BLKRRPART) (rereading the partition table
260           from disk) are performed before exiting when the partition table
261           has been updated.
262

DOS MODE AND DOS 6.X WARNING

264       Note that all this is deprecated. You don’t have to care about things
265       like geometry and cylinders on modern operating systems. If you really
266       want DOS-compatible partitioning then you have to enable DOS mode and
267       cylinder units by using the '-c=dos -u=cylinders' fdisk command-line
268       options.
269
270       The DOS 6.x FORMAT command looks for some information in the first
271       sector of the data area of the partition, and treats this information
272       as more reliable than the information in the partition table. DOS
273       FORMAT expects DOS FDISK to clear the first 512 bytes of the data area
274       of a partition whenever a size change occurs. DOS FORMAT will look at
275       this extra information even if the /U flag is given — we consider this
276       a bug in DOS FORMAT and DOS FDISK.
277
278       The bottom line is that if you use fdisk or cfdisk(8) to change the
279       size of a DOS partition table entry, then you must also use dd(1) to
280       zero the first 512 bytes of that partition before using DOS FORMAT to
281       format the partition. For example, if you were using fdisk to make a
282       DOS partition table entry for /dev/sda1, then (after exiting fdisk and
283       rebooting Linux so that the partition table information is valid) you
284       would use the command dd if=/dev/zero of=/dev/sda1 bs=512 count=1 to
285       zero the first 512 bytes of the partition.
286
287       fdisk usually obtains the disk geometry automatically. This is not
288       necessarily the physical disk geometry (indeed, modern disks do not
289       really have anything like a physical geometry, certainly not something
290       that can be described in the simplistic Cylinders/Heads/Sectors form),
291       but it is the disk geometry that MS-DOS uses for the partition table.
292
293       Usually all goes well by default, and there are no problems if Linux is
294       the only system on the disk. However, if the disk has to be shared with
295       other operating systems, it is often a good idea to let an fdisk from
296       another operating system make at least one partition. When Linux boots
297       it looks at the partition table, and tries to deduce what (fake)
298       geometry is required for good cooperation with other systems.
299
300       Whenever a partition table is printed out in DOS mode, a consistency
301       check is performed on the partition table entries. This check verifies
302       that the physical and logical start and end points are identical, and
303       that each partition starts and ends on a cylinder boundary (except for
304       the first partition).
305
306       Some versions of MS-DOS create a first partition which does not begin
307       on a cylinder boundary, but on sector 2 of the first cylinder.
308       Partitions beginning in cylinder 1 cannot begin on a cylinder boundary,
309       but this is unlikely to cause difficulty unless you have OS/2 on your
310       machine.
311
312       For best results, you should always use an OS-specific partition table
313       program. For example, you should make DOS partitions with the DOS FDISK
314       program and Linux partitions with the Linux fdisk or Linux cfdisk(8)
315       programs.
316

COLORS

318       The output colorization is implemented by terminal-colors.d(5)
319       functionality. Implicit coloring can be disabled by an empty file
320
321          /etc/terminal-colors.d/fdisk.disable
322
323       for the fdisk command or for all tools by
324
325          /etc/terminal-colors.d/disable
326
327       The user-specific $XDG_CONFIG_HOME/terminal-colors.d or
328       $HOME/.config/terminal-colors.d overrides the global setting.
329
330       Note that the output colorization may be enabled by default, and in
331       this case terminal-colors.d directories do not have to exist yet.
332
333       The logical color names supported by fdisk are:
334
335       header
336           The header of the output tables.
337
338       help-title
339           The help section titles.
340
341       warn
342           The warning messages.
343
344       welcome
345           The welcome message.
346

ENVIRONMENT

348       FDISK_DEBUG=all
349           enables fdisk debug output.
350
351       LIBFDISK_DEBUG=all
352           enables libfdisk debug output.
353
354       LIBBLKID_DEBUG=all
355           enables libblkid debug output.
356
357       LIBSMARTCOLS_DEBUG=all
358           enables libsmartcols debug output.
359
360       LIBSMARTCOLS_DEBUG_PADDING=on
361           use visible padding characters.
362
363       LOCK_BLOCK_DEVICE=<mode>
364           use exclusive BSD lock. The mode is "1" or "0". See --lock for more
365           details.
366

AUTHORS

368       Karel Zak <kzak@redhat.com>, Davidlohr Bueso <dave@gnu.org>
369
370       The original version was written by Andries E. Brouwer, A. V. Le Blanc
371       and others.
372

SEE ALSO

374       cfdisk(8), mkfs(8), partx(8), sfdisk(8)
375

REPORTING BUGS

377       For bug reports, use the issue tracker at
378       https://github.com/util-linux/util-linux/issues.
379

AVAILABILITY

381       The fdisk command is part of the util-linux package which can be
382       downloaded from Linux Kernel Archive
383       <https://www.kernel.org/pub/linux/utils/util-linux/>.
384
385
386
387util-linux 2.39.2                 2023-06-14                          FDISK(8)
Impressum