.\" Copyright 1992, 1993 Rickard E. Faith (faith@cs.unc.edu)
.\" Copyright 1998 Andries E. Brouwer (aeb@cwi.nl)
.\" May be distributed under the GNU General Public License
.TH FDISK 8 "11 June 1998" "Linux 2.0" "Linux Programmer's Manual"
.SH NAME
fdisk \- Partition table manipulator for Linux
.SH SYNOPSIS
.B fdisk
.RB [ \-uc ]
.RB [ \-b
.IR sectorsize ]
.RB [ \-C
.IR cyls ]
.RB [ \-H
.IR heads ]
.RB [ \-S
.IR sects ]
.I device
.sp
.B fdisk \-l
.RB [ \-u ]
.RI [ device ...]
.sp
.B fdisk \-s
.IR partition ...
.sp
.B fdisk \-v
.sp
.B fdisk \-h
.SH DESCRIPTION
Hard disks can be divided into one or more logical disks called
.IR partitions .
This division is described in the
.I "partition table"
found in sector 0 of the disk.

In the BSD world one talks about `disk slices' and a `disklabel'.

Linux needs at least one partition, namely for its root file system.
It can use swap files and/or swap partitions, but the latter are more
efficient. So, usually one will want a second Linux partition
dedicated as swap partition.
On Intel compatible hardware, the BIOS that boots the system
can often only access the first 1024 cylinders of the disk.
For this reason people with large disks often create a third partition,
just a few MB large, typically mounted on
.IR /boot ,
to store the kernel image and a few auxiliary files needed at boot time,
so as to make sure that this stuff is accessible to the BIOS.
There may be reasons of security, ease of administration and backup,
or testing, to use more than the minimum number of partitions.

.B fdisk
(in the first form of invocation)
is a menu driven program for creation and manipulation of
partition tables.
It understands DOS type partition tables and BSD or SUN type disklabels.

.B fdisk
doesn't understand GUID Partition Table (GPT) and
it is not designed for large partitions. In particular case use more advanced GNU
.BR parted (8).

The
.I device
is usually /dev/sda, /dev/sdb or so. A device name refers to the entire disk.
The 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 a case the device name will be /dev/hd* (IDE) or /dev/sd*
(SCSI).

The
.I partition
is a
.I device
name followed by a partition number.  For example,
.B /dev/sda1
is the first partition on the first hard disk in the system.
See also Linux kernel documentation (the Documentation/devices.txt file).

A BSD/SUN type 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.

An IRIX/SGI type 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 and make some file system 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.

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 start numbering from 5.

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 Cylinders/Heads/Sectors
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 different
problems. First of all, these C/H/S fields can be filled only
when the number of heads and the number of sectors per track
are known. Secondly, 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.

If possible,
.B fdisk
will obtain 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 simplistic Cylinders/Heads/Sectors form),
but is the disk geometry that MS-DOS uses for the partition table.

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.

Whenever a partition table is printed out, 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 the partition starts
and ends on a cylinder boundary (except for the first partition).

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.

A sync() and a BLKRRPART ioctl() (reread partition table from disk)
are performed before exiting when the partition table has been updated.
Long ago it used to be necessary to reboot after the use of fdisk.
I do not think this is the case anymore - indeed, rebooting too quickly
might cause loss of not-yet-written data. Note that both the kernel
and the disk hardware may buffer data.

.SH "DOS 6.x WARNING"

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.

The bottom line is that if you use cfdisk or fdisk to change the size of a
DOS partition table entry, then you must also use
.B dd
to zero the first 512 bytes of that partition before using DOS FORMAT to
format the partition.  For example, if you were using cfdisk to make a DOS
partition table entry for /dev/sda1, then (after exiting fdisk or cfdisk
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.

.B BE EXTREMELY CAREFUL
if you use the
.B dd
command, since a small typo can make all of the data on your disk useless.

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 program.

.SH OPTIONS
.TP
.BI "\-b " sectorsize
Specify the sector size of the disk. Valid values are 512, 1024, 2048 or 4096.
(Recent kernels know the sector size. Use this only on old kernels or
to override the kernel's ideas.) Since util-linux-ng 2.17 fdisk differentiates
between logical and physical sector size. This option changes both sector sizes to
.IB sectorsize .
.TP
.BI \-h
Print help and then exit.
.TP
.BI \-c
Switch off DOS-compatible mode. (Recommended)
.TP
.BI "\-C " cyls
Specify the number of cylinders of the disk.
I have no idea why anybody would want to do so.
.TP
.BI "\-H " heads
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.
.TP
.BI "\-S " sects
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.
.TP
.B \-l
List the partition tables for the specified devices and then exit.
If no devices are given, those mentioned in
.I /proc/partitions
(if that exists) are used.
.TP
.B \-u
When listing partition tables, give sizes in sectors instead
of cylinders.
.TP
.BI "\-s " partition
The
.I size
of the partition (in blocks) is printed on the standard output.
.TP
.B \-v
Print version number of
.B fdisk
program and exit.
.SH BUGS
There are several *fdisk programs around.
Each has its problems and strengths.
Try them in the order
.BR cfdisk ,
.BR fdisk ,
.BR sfdisk .
(Indeed,
.B cfdisk
is a beautiful program that has strict requirements on
the partition tables it accepts, and produces high quality partition
tables. Use it if you can.
.B fdisk
is a buggy program that does fuzzy things - usually it happens to
produce reasonable results. Its single advantage is that it has
some support for BSD disk labels and other non-DOS partition tables.
Avoid it if you can.
.B sfdisk
is for hackers only - the user interface is terrible, but it is
more correct than fdisk and more powerful than both fdisk and cfdisk.
Moreover, it can be used noninteractively.)
.PP
These days there also is
.BR parted .
The cfdisk interface is nicer, but parted does much more: it not only
resizes partitions, but also the filesystems that live in them.
.PP
The IRIX/SGI type disklabel is currently not supported by the kernel.
Moreover, IRIX/SGI header directories are not fully supported yet.
.PP
The option `dump partition table to file' is missing.
.\" .SH AUTHORS
.\" A. V. Le Blanc (LeBlanc@mcc.ac.uk)
.\" Bernhard Fastenrath (fasten@informatik.uni-bonn.de)
.\" Jakub Jelinek (jj@sunsite.mff.cuni.cz)
.\" Andreas Neuper (ANeuper@GUUG.de)
.\" and many others.
.SH "SEE ALSO"
.BR cfdisk (8),
.BR sfdisk (8),
.BR mkfs (8),
.BR parted (8),
.BR partprobe (8),
.BR kpartx (8)
.SH AVAILABILITY
The fdisk command is part of the util-linux-ng package and is available from
ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.
