]> git.ipfire.org Git - thirdparty/util-linux.git/blame - disk-utils/fdisk.8.adoc
Merge branch 'vla-alloca' of https://github.com/t-8ch/util-linux
[thirdparty/util-linux.git] / disk-utils / fdisk.8.adoc
CommitLineData
295b3979 1//po4a: entry man manual
c6a568fc
MB
2////
3Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu)
4Copyright 1998 Andries E. Brouwer (aeb@cwi.nl)
5Copyright 2012 Davidlohr Bueso <dave@gnu.org>
6Copyright (C) 2013 Karel Zak <kzak@redhat.com>
7May be distributed under the GNU General Public License
8////
9= fdisk(8)
10:doctype: manpage
11:man manual: System Administration
12:man source: util-linux {release-version}
13:page-layout: base
14:command: fdisk
299604dd 15:plus: +
c6a568fc
MB
16
17== NAME
18
19fdisk - manipulate disk partition table
20
21== SYNOPSIS
22
4d297435 23*fdisk* [options] _device_
c6a568fc
MB
24
25*fdisk* *-l* [_device_...]
26
27== DESCRIPTION
28
29*fdisk* is a dialog-driven program for creation and manipulation of partition tables. It understands GPT, MBR, Sun, SGI and BSD partition tables.
30
31Block devices can be divided into one or more logical disks called _partitions_. This division is recorded in the _partition table_, usually found in sector 0 of the disk. (In the BSD world one talks about `disk slices' and a `disklabel'.)
32
299604dd
MB
33//TRANSLATORS: Keep {plus} untranslated.
34All partitioning is driven by device I/O limits (the topology) by default. *fdisk* is able to optimize the disk layout for a 4K-sector size and use an alignment offset on modern devices for MBR and GPT. It is always a good idea to follow *fdisk*'s defaults as the default values (e.g., first and last partition sectors) and partition sizes specified by the {plus}/-<size>{M,G,...} notation are always aligned according to the device properties.
c6a568fc
MB
35
36CHS (Cylinder-Head-Sector) addressing is deprecated and not used by default. Please, do not follow old articles and recommendations with *fdisk -S <n> -H <n>* advices for SSD or 4K-sector devices.
37
38Note that *partx*(8) provides a rich interface for scripts to print disk layouts, *fdisk* is mostly designed for humans. Backward compatibility in the output of *fdisk* is not guaranteed. The input (the commands) should always be backward compatible.
39
40== OPTIONS
41
42*-b*, *--sector-size* _sectorsize_::
299604dd 43Specify the sector size of the disk. Valid values are 512, 1024, 2048, and 4096. (Recent kernels know the sector size. Use this option only on old kernels or to override the kernel's ideas.) Since util-linux-2.17, *fdisk* differentiates between logical and physical sector size. This option changes both sector sizes to _sectorsize_.
c6a568fc
MB
44
45*-B*, *--protect-boot*::
299604dd 46Don't erase the beginning of the first disk sector when creating a new disk label. This feature is supported for GPT and MBR.
c6a568fc
MB
47
48*-c*, *--compatibility*[=_mode_]::
299604dd 49Specify the compatibility mode, 'dos' or 'nondos'. The default is non-DOS mode. For backward compatibility, it is possible to use the option without the _mode_ argument -- then the default is used. Note that the optional _mode_ argument cannot be separated from the *-c* option by a space, the correct form is for example *-c*=_dos_.
c6a568fc 50
2b2d3172 51include::man-common/help-version.adoc[]
c6a568fc
MB
52
53*-L*, *--color*[=_when_]::
299604dd 54Colorize the output. The optional argument _when_ can be *auto*, *never* or *always*. If the _when_ argument is omitted, it defaults to *auto*. The colors can be disabled; for the current built-in default see the *--help* output. See also the *COLORS* section.
c6a568fc
MB
55
56*-l*, *--list*::
299604dd
MB
57List the partition tables for the specified devices and then exit.
58+
59If no devices are given, the devices mentioned in _/proc/partitions_ (if this file exists) are used. Devices are always listed in the order in which they are specified on the command-line, or by the kernel listed in _/proc/partitions_.
c6a568fc
MB
60
61*-x*, *--list-details*::
299604dd 62Like *--list*, but provides more details.
c6a568fc
MB
63
64*--lock*[=_mode_]::
bd67ca44 65Use exclusive BSD lock for device or file it operates. The optional argument _mode_ can be *yes*, *no* (or 1 and 0) or *nonblock*. If the _mode_ argument is omitted, it defaults to *yes*. This option overwrites environment variable *$LOCK_BLOCK_DEVICE*. The default is not to use any lock at all, but it's recommended to avoid collisions with *systemd-udevd*(8) or other tools.
c6a568fc
MB
66
67*-n*, *--noauto-pt*::
299604dd 68Don't automatically create a default partition table on empty device. The partition table has to be explicitly created by user (by command like 'o', 'g', etc.).
c6a568fc
MB
69
70*-o*, *--output* _list_::
299604dd
MB
71Specify which output columns to print. Use *--help* to get a list of all supported columns.
72+
73The default list of columns may be extended if _list_ is specified in the format _{plus}list_ (e.g., *-o {plus}UUID*).
74//TRANSLATORS: Keep {plus} untranslated.
c6a568fc
MB
75
76*-s*, *--getsz*::
299604dd 77Print the size in 512-byte sectors of each given block device. This option is DEPRECATED in favour of *blockdev*(8).
c6a568fc
MB
78
79*-t*, *--type* _type_::
299604dd 80Enable support only for disklabels of the specified _type_, and disable support for all other types.
c6a568fc
MB
81
82*-u*, *--units*[=_unit_]::
5f618ca4 83When listing partition tables, show sizes in 'sectors' or in 'cylinders'. The default is to show sizes in sectors. For backward compatibility, it is possible to use the option without the _unit_ argument -- then the default is used. Note that the optional _unit_ argument cannot be separated from the *-u* option by a space, the correct form is for example '**-u=**__cylinders__'.
c6a568fc
MB
84
85*-C*, *--cylinders* _number_::
e6743239 86Specify the _number_ of cylinders of the disk. I have no idea why anybody would want to do so.
c6a568fc
MB
87
88*-H*, *--heads* _number_::
299604dd 89Specify the number of heads of the disk. (Not the physical number, of course, but the number used for partition tables.) Reasonable values are 255 and 16.
c6a568fc
MB
90
91*-S*, *--sectors* _number_::
299604dd 92Specify the number of sectors per track of the disk. (Not the physical number, of course, but the number used for partition tables.) A reasonable value is 63.
c6a568fc
MB
93
94*-w*, *--wipe* _when_::
299604dd 95Wipe filesystem, RAID and partition-table signatures from the device, in order to avoid possible collisions. The argument _when_ can be *auto*, *never* or *always*. When this option is not given, the default is *auto*, in which case signatures are wiped only when in interactive mode. In all cases detected signatures are reported by warning messages before a new partition table is created. See also *wipefs*(8) command.
c6a568fc
MB
96
97*-W*, *--wipe-partitions* _when_::
299604dd 98Wipe filesystem, RAID and partition-table signatures from a newly created partitions, in order to avoid possible collisions. The argument _when_ can be *auto*, *never* or *always*. When this option is not given, the default is *auto*, 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 before a new partition is created. See also *wipefs*(8) command.
c6a568fc
MB
99
100*-V*, *--version*::
299604dd 101Display version information and exit.
c6a568fc
MB
102
103== DEVICES
104
105The _device_ is usually _/dev/sda_, _/dev/sdb_ or so. A device name refers to the entire disk. Old systems without libata (a library used inside the Linux kernel to support ATA host controllers and devices) make a difference between IDE and SCSI disks. In such cases the device name will be _/dev/hd*_ (IDE) or _/dev/sd*_ (SCSI).
106
107The _partition_ is a device name followed by a partition number. For example, _/dev/sda1_ is the first partition on the first hard disk in the system. See also Linux kernel documentation (the _Documentation/admin-guide/devices.txt_ file).
108
109== SIZES
110
c6a568fc 111
299604dd
MB
112//TRANSLATORS: Keep {plus} untranslated.
113The "last sector" dialog accepts partition size specified by number of sectors or by {plus}/-<size>{K,B,M,G,...} notation.
114
115
116//TRANSLATORS: Keep {plus} untranslated.
117If the size is prefixed by '{plus}' then it is interpreted as relative to the partition first sector. If the size is prefixed by '-' then it is interpreted as relative to the high limit (last available sector for the partition).
c6a568fc
MB
118
119In the case the size is specified in bytes than the number may be followed by the multiplicative suffixes KiB=1024, MiB=1024*1024, and so on for GiB, TiB, PiB, EiB, ZiB and YiB. The "iB" is optional, e.g., "K" has the same meaning as "KiB".
120
299604dd
MB
121
122//TRANSLATORS: Keep {plus} untranslated.
123The relative sizes are always aligned according to device I/O limits. The {plus}/-<size>{K,B,M,G,...} notation is recommended.
c6a568fc 124
e6743239 125For backward compatibility *fdisk* also accepts the suffixes KB=1000, MB=1000*1000, and so on for GB, TB, PB, EB, ZB and YB. These 10^N suffixes are deprecated.
c6a568fc
MB
126
127== SCRIPT FILES
128
129*fdisk* allows reading (by 'I' command) *sfdisk*(8) compatible script files. The script is applied to in-memory partition table, and then it is possible to modify the partition table before you write it to the device.
130
131And vice-versa it is possible to write the current in-memory disk layout to the script file by command 'O'.
132
133The script files are compatible between *cfdisk*(8), *sfdisk*(8), *fdisk* and other libfdisk applications. For more details see *sfdisk*(8).
134
135== DISK LABELS
136
299604dd 137*GPT (GUID Partition Table)*::
c6a568fc 138GPT is modern standard for the layout of the partition table. GPT uses 64-bit logical block addresses, checksums, UUIDs and names for partitions and an unlimited number of partitions (although the number of partitions is usually restricted to 128 in many partitioning tools).
299604dd 139+
c6a568fc 140Note that the first sector is still reserved for a *protective MBR* in the GPT specification. It prevents MBR-only partitioning tools from mis-recognizing and overwriting GPT disks.
299604dd 141+
c6a568fc 142GPT is always a better choice than MBR, especially on modern hardware with a UEFI boot loader.
c6a568fc 143
299604dd 144*DOS-type (MBR)*::
c6a568fc 145A DOS-type partition table can describe an unlimited number of partitions. In sector 0 there is room for the description of 4 partitions (called `primary'). One of these may be an extended partition; this is a box holding logical partitions, with descriptors found in a linked list of sectors, each preceding the corresponding logical partitions. The four primary partitions, present or not, get numbers 1-4. Logical partitions are numbered starting from 5.
299604dd
MB
146+
147In a DOS-type partition table the starting offset and the size of each partition is stored in two ways: as an absolute number of sectors (given in 32 bits), and as a *Cylinders/Heads/Sectors* triple (given in 10{plus}8{plus}6 bits). The former is OK -- with 512-byte sectors this will work up to 2 TB. The latter has two problems. First, these C/H/S fields can be filled only when the number of heads and the number of sectors per track are known. And second, even if we know what these numbers should be, the 24 bits that are available do not suffice. DOS uses C/H/S only, Windows uses both, Linux never uses C/H/S. The *C/H/S addressing is deprecated* and may be unsupported in some later *fdisk* version.
148//TRANSLATORS: Keep {plus} untranslated.
149+
c6a568fc 150*Please, read the DOS-mode section if you want DOS-compatible partitions.* *fdisk* does not care about cylinder boundaries by default.
c6a568fc 151
299604dd 152*BSD/Sun-type*::
c6a568fc 153A BSD/Sun disklabel can describe 8 partitions, the third of which should be a `whole disk' partition. Do not start a partition that actually uses its first sector (like a swap partition) at cylinder 0, since that will destroy the disklabel. Note that a *BSD label* is usually nested within a DOS partition.
c6a568fc 154
299604dd 155*IRIX/SGI-type*::
c6a568fc 156An IRIX/SGI disklabel can describe 16 partitions, the eleventh of which should be an entire `volume' partition, while the ninth should be labeled `volume header'. The volume header will also cover the partition table, i.e., it starts at block zero and extends by default over five cylinders. The remaining space in the volume header may be used by header directory entries. No partitions may overlap with the volume header. Also do not change its type or make some filesystem on it, since you will lose the partition table. Use this type of label only when working with Linux on IRIX/SGI machines or IRIX/SGI disks under Linux.
299604dd 157+
e6743239 158A *sync*(2) and an ioctl(BLKRRPART) (rereading the partition table from disk) are performed before exiting when the partition table has been updated.
c6a568fc
MB
159
160== DOS mode and DOS 6.x WARNING
161
162*Note that all this is deprecated. You don't have to care about things like* *geometry and cylinders on modern operating systems. If you really want* *DOS-compatible partitioning then you have to enable DOS mode and cylinder* *units by using the '-c=dos -u=cylinders' fdisk command-line options.*
163
164The DOS 6.x FORMAT command looks for some information in the first sector of the data area of the partition, and treats this information as more reliable than the information in the partition table. DOS FORMAT expects DOS FDISK to clear the first 512 bytes of the data area of a partition whenever a size change occurs. DOS FORMAT will look at this extra information even if the /U flag is given -- we consider this a bug in DOS FORMAT and DOS FDISK.
165
e6743239 166The bottom line is that if you use *fdisk* or *cfdisk*(8) to change the size of a DOS partition table entry, then you must also use *dd*(1) to *zero the first 512 bytes* of that partition before using DOS FORMAT to format the partition. For example, if you were using *fdisk* to make a DOS partition table entry for _/dev/sda1_, then (after exiting *fdisk* and rebooting Linux so that the partition table information is valid) you would use the command *dd if=/dev/zero of=/dev/sda1 bs=512 count=1* to zero the first 512 bytes of the partition.
c6a568fc
MB
167
168*fdisk* usually obtains the disk geometry automatically. This is not necessarily the physical disk geometry (indeed, modern disks do not really have anything like a physical geometry, certainly not something that can be described in the simplistic Cylinders/Heads/Sectors form), but it is the disk geometry that MS-DOS uses for the partition table.
169
299604dd 170Usually all goes well by default, and there are no problems if Linux is the only system on the disk. However, if the disk has to be shared with other operating systems, it is often a good idea to let an *fdisk* from another operating system make at least one partition. When Linux boots it looks at the partition table, and tries to deduce what (fake) geometry is required for good cooperation with other systems.
c6a568fc
MB
171
172Whenever a partition table is printed out in DOS mode, a consistency check is performed on the partition table entries. This check verifies that the physical and logical start and end points are identical, and that each partition starts and ends on a cylinder boundary (except for the first partition).
173
174Some versions of MS-DOS create a first partition which does not begin on a cylinder boundary, but on sector 2 of the first cylinder. Partitions beginning in cylinder 1 cannot begin on a cylinder boundary, but this is unlikely to cause difficulty unless you have OS/2 on your machine.
175
299604dd 176For best results, you should always use an OS-specific partition table program. For example, you should make DOS partitions with the DOS FDISK program and Linux partitions with the Linux *fdisk* or Linux *cfdisk*(8) programs.
c6a568fc 177
6c62faf1
KZ
178include::man-common/colors.adoc[]
179The logical color names supported by *fdisk* are:
c6a568fc
MB
180
181*header*::
299604dd 182The header of the output tables.
c6a568fc
MB
183
184*help-title*::
299604dd 185The help section titles.
c6a568fc
MB
186
187*warn*::
299604dd 188The warning messages.
c6a568fc
MB
189
190*welcome*::
299604dd 191The welcome message.
c6a568fc
MB
192
193== ENVIRONMENT
194
195*FDISK_DEBUG*=all::
299604dd 196enables fdisk debug output.
c6a568fc
MB
197
198*LIBFDISK_DEBUG*=all::
299604dd 199enables libfdisk debug output.
c6a568fc
MB
200
201*LIBBLKID_DEBUG*=all::
299604dd 202enables libblkid debug output.
c6a568fc
MB
203
204*LIBSMARTCOLS_DEBUG*=all::
299604dd 205enables libsmartcols debug output.
c6a568fc
MB
206
207*LIBSMARTCOLS_DEBUG_PADDING*=on::
28af0586 208use visible padding characters.
c6a568fc
MB
209
210*LOCK_BLOCK_DEVICE*=<mode>::
299604dd 211use exclusive BSD lock. The mode is "1" or "0". See *--lock* for more details.
c6a568fc
MB
212
213== AUTHORS
214
299604dd 215mailto:kzak@redhat.com[Karel Zak],
c6a568fc
MB
216mailto:dave@gnu.org[Davidlohr Bueso]
217
218The original version was written by Andries E. Brouwer, A. V. Le Blanc and others.
219
220== SEE ALSO
221
222*cfdisk*(8),
223*mkfs*(8),
224*partx*(8),
225*sfdisk*(8)
226
625e9c61 227include::man-common/bugreports.adoc[]
c6a568fc 228
625e9c61 229include::man-common/footer.adoc[]
c6a568fc
MB
230
231ifdef::translation[]
625e9c61 232include::man-common/translation.adoc[]
c6a568fc 233endif::[]