481 lines
17 KiB
HTML
481 lines
17 KiB
HTML
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<HTML><HEAD><TITLE>Man page of FDISK</TITLE>
|
|
</HEAD><BODY>
|
|
<H1>FDISK</H1>
|
|
Section: System Administration (8)<BR>Updated: February 2016<BR><A HREF="#index">Index</A>
|
|
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
|
|
|
|
<P>
|
|
<A NAME="lbAB"> </A>
|
|
<H2>NAME</H2>
|
|
|
|
fdisk - manipulate disk partition table
|
|
<P>
|
|
<A NAME="lbAC"> </A>
|
|
<H2>SYNOPSIS</H2>
|
|
|
|
<B>fdisk</B>
|
|
|
|
[options]
|
|
<I>device</I>
|
|
|
|
<P>
|
|
<B>fdisk -l</B>
|
|
|
|
[<I>device</I>...]
|
|
|
|
<P>
|
|
<A NAME="lbAD"> </A>
|
|
<H2>DESCRIPTION</H2>
|
|
|
|
<B>fdisk</B>
|
|
|
|
is a dialog-driven program for creation and manipulation of partition tables.
|
|
It understands GPT, MBR, Sun, SGI and BSD partition tables.
|
|
<P>
|
|
Block devices can be divided into one or more logical disks called
|
|
<I>partitions</I>.
|
|
|
|
This division is recorded in the
|
|
<I>partition table</I>,
|
|
|
|
usually found in sector 0 of the disk.
|
|
(In the BSD world one talks about `disk slices' and a `disklabel'.)
|
|
<P>
|
|
All partitioning is driven by device I/O limits (the topology) by default.
|
|
<B>fdisk</B>
|
|
|
|
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 <B>fdisk</B>'s defaults
|
|
as the default values (e.g. first and last partition sectors) and partition
|
|
sizes specified by the +/-<size>{M,G,...} notation are always aligned according
|
|
to the device properties.
|
|
<P>
|
|
CHS (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.
|
|
<P>
|
|
Note that
|
|
<B><A HREF="/cgi-bin/man/man2html?8+partx">partx</A></B>(8)
|
|
|
|
provides a rich interface for scripts to print disk layouts,
|
|
<B>fdisk</B>
|
|
|
|
is mostly designed for humans. Backward compatibility in the output of
|
|
<B>fdisk</B>
|
|
|
|
is not guaranteed. The input (the commands) should always be backward compatible.
|
|
<P>
|
|
<A NAME="lbAE"> </A>
|
|
<H2>OPTIONS</H2>
|
|
|
|
<DL COMPACT>
|
|
<DT id="1"><B>-b</B>, <B>--sector-size</B> <I>sectorsize</I><DD>
|
|
Specify 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, <B>fdisk</B> differentiates
|
|
between logical and physical sector size. This option changes both sector sizes to
|
|
<I>sectorsize</I><B>.</B>
|
|
|
|
<DT id="2"><B>-B</B>, <B>--protect-boot</B><DD>
|
|
Don't erase the begin of the first disk sector when create a new disk label. This
|
|
feature is supported for GPT and MBR.
|
|
<DT id="3"><B>-c</B>, <B>--compatibility</B>[=<I>mode</I>]<DD>
|
|
Specify the compatibility mode, 'dos' or 'nondos'. The default is non-DOS
|
|
mode. For backward compatibility, it is possible to use the option without
|
|
the <I>mode</I> argument -- then the default is used. Note that the optional
|
|
<I>mode</I> argument cannot be separated from the <B>-c</B> option by a space,
|
|
the correct form is for example '-c=dos'.
|
|
<DT id="4"><B>-h</B>, <B>--help</B><DD>
|
|
Display a help text and exit.
|
|
<DT id="5"><B>-L</B>, <B>--color</B>[=<I>when</I>]<DD>
|
|
Colorize the output. The optional argument <I>when</I>
|
|
can be <B>auto</B>, <B>never</B> or <B>always</B>. If the <I>when</I> argument is omitted,
|
|
it defaults to <B>auto</B>. The colors can be disabled; for the current built-in default
|
|
see the <B>--help</B> output. See also the <B>COLORS</B> section.
|
|
<DT id="6"><B>-l</B>, <B>--list</B><DD>
|
|
List the partition tables for the specified devices and then exit.
|
|
If no devices are given, those mentioned in
|
|
<I>/proc/partitions</I>
|
|
|
|
(if that file exists) are used.
|
|
<DT id="7"><B>-o</B>,<B> --output </B><I>list</I>
|
|
|
|
<DD>
|
|
Specify which output columns to print. Use
|
|
<B>--help</B>
|
|
|
|
to get a list of all supported columns.
|
|
<P>
|
|
The default list of columns may be extended if <I>list</I> is
|
|
specified in the format <I>+list</I> (e.g. <B>-o +UUID</B>).
|
|
<DT id="8"><B>-s</B>, <B>--getsz</B><DD>
|
|
Print the size in 512-byte sectors of each given block device. This option is DEPRECATED
|
|
in favour of
|
|
<B><A HREF="/cgi-bin/man/man2html?1+blockdev">blockdev</A></B>(1).
|
|
|
|
<DT id="9"><B>-t</B>, <B>--type</B> <I>type</I><DD>
|
|
Enable support only for disklabels of the specified <I>type</I>, and disable
|
|
support for all other types.
|
|
<DT id="10"><B>-u</B>, <B>--units</B>[=<I>unit</I>]<DD>
|
|
When 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 <I>unit</I> argument -- then the default is used.
|
|
Note that the optional <I>unit</I> argument cannot be separated from the <B>-u</B>
|
|
option by a space, the correct form is for example '-u=cylinders'.
|
|
<P>
|
|
<DT id="11"><B>-C</B>, <B>--cylinders</B> <I>number</I><DD>
|
|
Specify the number of cylinders of the disk.
|
|
I have no idea why anybody would want to do so.
|
|
<DT id="12"><B>-H</B>, <B>--heads</B> <I>number</I><DD>
|
|
Specify 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.
|
|
<DT id="13"><B>-S</B>, <B>--sectors</B> <I>number</I><DD>
|
|
Specify 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.
|
|
<P>
|
|
<DT id="14"><B>-w</B>, <B>--wipe</B> <I>when</I><DD>
|
|
Wipe filesystem, RAID and partition-table signatures from the device, in order
|
|
to avoid possible collisions. The argument <I>when</I> can be <B>auto</B>,
|
|
<B>never</B> or <B>always</B>. When this option is not given, the default is
|
|
<B>auto</B>, 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
|
|
<B><A HREF="/cgi-bin/man/man2html?8+wipefs">wipefs</A></B>(8)
|
|
|
|
command.
|
|
<P>
|
|
<DT id="15"><B>-W</B>, <B>--wipe-partition</B> <I>when</I><DD>
|
|
Wipe filesystem, RAID and partition-table signatures from a newly created
|
|
partitions, in order to avoid possible collisions. The argument <I>when</I> can
|
|
be <B>auto</B>, <B>never</B> or <B>always</B>. When this option is not given, the
|
|
default is <B>auto</B>, 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
|
|
<B><A HREF="/cgi-bin/man/man2html?8+wipefs">wipefs</A></B>(8)
|
|
|
|
command.
|
|
<P>
|
|
<DT id="16"><B>-V</B>, <B>--version</B><DD>
|
|
Display version information and exit.
|
|
<P>
|
|
</DL>
|
|
<A NAME="lbAF"> </A>
|
|
<H2>DEVICES</H2>
|
|
|
|
The
|
|
<I>device</I>
|
|
|
|
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).
|
|
<P>
|
|
The
|
|
<I>partition</I>
|
|
|
|
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/devices.txt file).
|
|
<P>
|
|
<A NAME="lbAG"> </A>
|
|
<H2>SIZES</H2>
|
|
|
|
The "last sector" dialog accepts partition size specified by number of sectors
|
|
or by +/-<size>{K,B,M,G,...} notation.
|
|
<P>
|
|
If the size is prefixed by '+' 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).
|
|
<P>
|
|
In 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".
|
|
<P>
|
|
The relative sizes are always aligned according to device I/O limits. The
|
|
+/-<size>{K,B,M,G,...} notation is recommended.
|
|
<P>
|
|
For 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.
|
|
<P>
|
|
<A NAME="lbAH"> </A>
|
|
<H2>SCRIPT FILES</H2>
|
|
|
|
<B>fdisk</B>
|
|
|
|
allows to read (by 'I' command) sfdisk 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.
|
|
<P>
|
|
|
|
And vice-versa it is possible to write the current in-memory disk layout
|
|
to the script file by command 'O'.
|
|
<P>
|
|
|
|
The script files are compatible between cfdisk, sfdisk, fdisk and another
|
|
libfdisk applications. For more details see
|
|
<B><A HREF="/cgi-bin/man/man2html?8+sfdisk">sfdisk</A></B>(8).
|
|
|
|
<P>
|
|
<A NAME="lbAI"> </A>
|
|
<H2>DISK LABELS</H2>
|
|
|
|
<B>GPT (GUID Partition Table)</B>
|
|
|
|
<DL COMPACT><DT id="17"><DD>
|
|
GPT 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).
|
|
<P>
|
|
Note that the first sector is still reserved for a
|
|
<B>protective MBR</B>
|
|
|
|
in the GPT specification. It prevents MBR-only partitioning tools
|
|
from mis-recognizing and overwriting GPT disks.
|
|
<P>
|
|
GPT is always a better choice than MBR, especially on modern hardware with a UEFI
|
|
boot loader.
|
|
</DL>
|
|
|
|
<P>
|
|
<B>DOS-type (MBR)</B>
|
|
|
|
<DL COMPACT><DT id="18"><DD>
|
|
A 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.
|
|
<P>
|
|
In 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
|
|
<B>Cylinders/Heads/Sectors</B>
|
|
|
|
triple (given in 10+8+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
|
|
<B>C/H/S addressing is deprecated</B>
|
|
|
|
and may be unsupported in some later fdisk version.
|
|
<P>
|
|
<B>Please, read the DOS-mode section if you want DOS-compatible partitions.</B>
|
|
|
|
<B>fdisk</B>
|
|
|
|
does not care about cylinder boundaries by default.
|
|
</DL>
|
|
|
|
<P>
|
|
<B>BSD/Sun-type</B>
|
|
|
|
<DL COMPACT><DT id="19"><DD>
|
|
A 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
|
|
<B>BSD label</B>
|
|
|
|
is usually nested within a DOS partition.
|
|
</DL>
|
|
|
|
<P>
|
|
<B>IRIX/SGI-type</B>
|
|
|
|
<DL COMPACT><DT id="20"><DD>
|
|
An 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.
|
|
</DL>
|
|
|
|
<P>
|
|
A sync() and an ioctl(BLKRRPART) (rereading the partition table from disk)
|
|
are performed before exiting when the partition table has been updated.
|
|
<P>
|
|
<A NAME="lbAJ"> </A>
|
|
<H2>DOS mode and DOS 6.x WARNING</H2>
|
|
|
|
<B>Note that all this is deprecated. You don't have to care about things like</B>
|
|
|
|
<B>geometry and cylinders on modern operating systems. If you really want</B>
|
|
|
|
<B>DOS-compatible partitioning then you have to enable DOS mode and cylinder</B>
|
|
|
|
<B>units by using the '-c=dos -u=cylinders' fdisk command-line options.</B>
|
|
|
|
<P>
|
|
The 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.
|
|
<P>
|
|
The bottom line is that if you use <B>fdisk</B> or <B>cfdisk</B> to change the
|
|
size of a DOS partition table entry, then you must also use
|
|
<B><A HREF="/cgi-bin/man/man2html?1+dd">dd</A></B>(1) to <B>zero the first 512 bytes</B>
|
|
|
|
of that partition before using DOS FORMAT to format the partition. For
|
|
example, if you were using <B>fdisk</B> to make a DOS partition table entry for
|
|
/dev/sda1, then (after exiting <B>fdisk</B> 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.
|
|
<P>
|
|
<B>fdisk</B>
|
|
|
|
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.
|
|
<P>
|
|
Usually 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.
|
|
<P>
|
|
Whenever 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).
|
|
<P>
|
|
Some 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.
|
|
<P>
|
|
For 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 programs.
|
|
<A NAME="lbAK"> </A>
|
|
<H2>COLORS</H2>
|
|
|
|
Implicit coloring can be disabled by an empty file <I>/etc/terminal-colors.d/fdisk.disable</I>.
|
|
<P>
|
|
See
|
|
<B><A HREF="/cgi-bin/man/man2html?5+terminal-colors.d">terminal-colors.d</A></B>(5)
|
|
|
|
for more details about colorization configuration. The logical color names
|
|
supported by
|
|
<B>fdisk</B>
|
|
|
|
are:
|
|
<DL COMPACT>
|
|
<DT id="21"><B>header</B>
|
|
|
|
<DD>
|
|
The header of the output tables.
|
|
<DT id="22"><B>help-title</B>
|
|
|
|
<DD>
|
|
The help section titles.
|
|
<DT id="23"><B>warn</B>
|
|
|
|
<DD>
|
|
The warning messages.
|
|
<DT id="24"><B>welcome</B>
|
|
|
|
<DD>
|
|
The welcome message.
|
|
<P>
|
|
</DL>
|
|
<A NAME="lbAL"> </A>
|
|
<H2>AUTHORS</H2>
|
|
|
|
|
|
Karel Zak
|
|
|
|
<BR>
|
|
|
|
|
|
Davidlohr Bueso
|
|
|
|
<BR>
|
|
|
|
<P>
|
|
|
|
The original version was written by
|
|
Andries E. Brouwer, A. V. Le Blanc and others.
|
|
<P>
|
|
<A NAME="lbAM"> </A>
|
|
<H2>ENVIRONMENT</H2>
|
|
|
|
<DL COMPACT>
|
|
<DT id="25">FDISK_DEBUG=all<DD>
|
|
enables fdisk debug output.
|
|
<DT id="26">LIBFDISK_DEBUG=all<DD>
|
|
enables libfdisk debug output.
|
|
<DT id="27">LIBBLKID_DEBUG=all<DD>
|
|
enables libblkid debug output.
|
|
<DT id="28">LIBSMARTCOLS_DEBUG=all<DD>
|
|
enables libsmartcols debug output.
|
|
<DT id="29">LIBSMARTCOLS_DEBUG_PADDING=on<DD>
|
|
use visible padding characters. Requires enabled LIBSMARTCOLS_DEBUG.
|
|
<P>
|
|
</DL>
|
|
<A NAME="lbAN"> </A>
|
|
<H2>SEE ALSO</H2>
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?8+cfdisk">cfdisk</A></B>(8),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?8+mkfs">mkfs</A></B>(8),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?8+partx">partx</A></B>(8),
|
|
|
|
<B><A HREF="/cgi-bin/man/man2html?8+sfdisk">sfdisk</A></B>(8)
|
|
|
|
<P>
|
|
<A NAME="lbAO"> </A>
|
|
<H2>AVAILABILITY</H2>
|
|
|
|
The fdisk command is part of the util-linux package and is available from
|
|
<A HREF="https://www.kernel.org/pub/linux/utils/util-linux/.">https://www.kernel.org/pub/linux/utils/util-linux/.</A>
|
|
<P>
|
|
|
|
<HR>
|
|
<A NAME="index"> </A><H2>Index</H2>
|
|
<DL>
|
|
<DT id="30"><A HREF="#lbAB">NAME</A><DD>
|
|
<DT id="31"><A HREF="#lbAC">SYNOPSIS</A><DD>
|
|
<DT id="32"><A HREF="#lbAD">DESCRIPTION</A><DD>
|
|
<DT id="33"><A HREF="#lbAE">OPTIONS</A><DD>
|
|
<DT id="34"><A HREF="#lbAF">DEVICES</A><DD>
|
|
<DT id="35"><A HREF="#lbAG">SIZES</A><DD>
|
|
<DT id="36"><A HREF="#lbAH">SCRIPT FILES</A><DD>
|
|
<DT id="37"><A HREF="#lbAI">DISK LABELS</A><DD>
|
|
<DT id="38"><A HREF="#lbAJ">DOS mode and DOS 6.x WARNING</A><DD>
|
|
<DT id="39"><A HREF="#lbAK">COLORS</A><DD>
|
|
<DT id="40"><A HREF="#lbAL">AUTHORS</A><DD>
|
|
<DT id="41"><A HREF="#lbAM">ENVIRONMENT</A><DD>
|
|
<DT id="42"><A HREF="#lbAN">SEE ALSO</A><DD>
|
|
<DT id="43"><A HREF="#lbAO">AVAILABILITY</A><DD>
|
|
</DL>
|
|
<HR>
|
|
This document was created by
|
|
<A HREF="/cgi-bin/man/man2html">man2html</A>,
|
|
using the manual pages.<BR>
|
|
Time: 00:06:12 GMT, March 31, 2021
|
|
</BODY>
|
|
</HTML>
|