CFDISK(8) System Administration CFDISK(8)
NAME
cfdisk - display or manipulate disk partition table
SYNOPSIS
cfdisk [-agvz] [-c cylinders] [-h heads] [-s sectors-per-track] [-P opt] [device]
DESCRIPTION
cfdisk is a curses-based program for partitioning any hard disk drive. Typical values of
the device argument are:
/dev/hda [default]
/dev/hdb
/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd
Note that cfdisk does not align partitions to block device I/O limits. This functionality
is provided by fdisk(8).
In order to write the partition table cfdisk needs something called the `geometry' of the
disk: the number of `heads' and the number of `sectors per track'. Linux does not use any
geometry, so if the disk will not be accessed by other operating systems, you can safely
accept the defaults that cfdisk chooses for you. The geometry used by cfdisk is found as
follows. First the partition table is examined, to see what geometry was used by the pre-
vious program that changed it. If the partition table is empty, or contains garbage, or
does not point at a consistent geometry, the kernel is asked for advice. If nothing works
255 heads and 63 sectors/track is assumed. The geometry can be overridden on the command
line or by use of the `g' command. When partitioning an empty large modern disk, picking
255 heads and 63 sectors/track is always a good idea. There is no need to set the number
of cylinders, since cfdisk knows the disk size.
Next, cfdisk tries to read the current partition table from the disk drive. If it is
unable to figure out the partition table, an error is displayed and the program will exit.
This might also be caused by incorrect geometry information, and can be overridden on the
command line. Another way around this problem is with the -z option. This will ignore
the partition table on the disk.
The main display is composed of four sections, from top to bottom: the header, the parti-
tions, the command line and a warning line. The header contains the program name and ver-
sion number followed by the disk drive and its geometry. The partitions section always
displays the current partition table. The command line is the place where commands and
text are entered. The available commands are usually displayed in brackets. The warning
line is usually empty except when there is important information to be displayed. The
current partition is highlighted with reverse video (or an arrow if the -a option is
given). All partition specific commands apply to the current partition.
The format of the partition table in the partitions section is, from left to right: Name,
Flags, Partition Type, Filesystem Type and Size. The name is the partition device name.
The flags can be Boot, which designates a bootable partition or NC, which stands for "Not
Compatible with DOS or OS/2". DOS, OS/2 and possibly other operating systems require the
first sector of the first partition on the disk and all logical partitions to begin on the
second head. This wastes the second through the last sector of the first track of the
first head (the first sector is taken by the partition table itself). cfdisk allows you
to recover these "lost" sectors with the maximize command (m). Note: fdisk(8) and some
early versions of DOS create all partitions with the number of sectors already maximized.
For more information, see the maximize command below. The partition type can be one of
Primary or Logical. For unallocated space on the drive, the partition type can also be
Pri/Log, or empty (if the space is unusable). The filesystem type section displays the
name of the filesystem used on the partition, if known. If it is unknown, then Unknown
and the hex value of the filesystem type are displayed. A special case occurs when there
are sections of the disk drive that cannot be used (because all of the primary partitions
are used). When this is detected, the filesystem type is displayed as Unusable. The size
field displays the size of the partition in megabytes (by default). It can also display
the size in sectors and cylinders (see the change units command below). If an asterisk
(*) appears after the size, this means that the partition is not aligned on cylinder
boundaries.
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 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/hda1, then (after exiting fdisk or cfdisk and
rebooting Linux so that the partition table information is valid) you would use the com-
mand "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" to zero the first 512 bytes of the par-
tition. Note:
BE EXTREMELY CAREFUL if you use the 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 exam-
ple, you should make DOS partitions with the DOS FDISK program and Linux partitions with
the Linux fdisk or Linux cfdisk program.
COMMANDS
cfdisk commands can be entered by pressing the desired key (pressing Enter after the com-
mand is not necessary). Here is a list of the available commands:
b Toggle bootable flag of the current partition. This allows you to select which
primary partition is bootable on the drive.
d Delete the current partition. This will convert the current partition into free
space and merge it with any free space immediately surrounding the current parti-
tion. A partition already marked as free space or marked as unusable cannot be
deleted.
g Change the disk geometry (cylinders, heads, or sectors-per-track). WARNING: This
option should only be used by people who know what they are doing. A command line
option is also available to change the disk geometry. While at the change disk
geometry command line, you can choose to change cylinders (c), heads (h), and sec-
tors per track (s). The default value will be printed at the prompt which you can
accept by simply pressing the Enter key, or you can exit without changes by press-
ing the ESC key. If you want to change the default value, simply enter the desired
value and press Enter. The altered disk parameter values do not take effect until
you return to the main menu (by pressing Enter or ESC at the change disk geometry
command line). If you change the geometry such that the disk appears larger, the
extra sectors are added at the end of the disk as free space. If the disk appears
smaller, the partitions that are beyond the new last sector are deleted and the
last partition on the drive (or the free space at the end of the drive) is made to
end at the new last sector.
h Print the help screen.
m Maximize disk usage of the current partition. This command will recover the unused
space between the partition table and the beginning of the partition, but at the
cost of making the partition incompatible with DOS, OS/2 and possibly other operat-
ing systems. This option will toggle between maximal disk usage and DOS, OS/2,
etc. compatible disk usage. The default when creating a partition is to create
DOS, OS/2, etc. compatible partitions.
n Create new partition from free space. If the partition type is Primary or Logical,
a partition of that type will be created, but if the partition type is Pri/Log, you
will be prompted for the type you want to create. Be aware that (1) there are only
four slots available for primary partitions and (2) since there can be only one
extended partition, which contains all of the logical drives, all of the logical
drives must be contiguous (with no intervening primary partition). cfdisk next
prompts you for the size of the partition you want to create. The default size,
equal to the entire free space of the current partition, is displayed in megabytes.
You can either press the Enter key to accept the default size or enter a different
size at the prompt. cfdisk accepts size entries in megabytes (M) [default], kilo-
bytes (K), cylinders (C) and sectors (S) by entering the number immediately fol-
lowed by one of (M, K, C or S). If the partition fills the free space available,
the partition is created and you are returned to the main command line. Otherwise,
the partition can be created at the beginning or the end of the free space, and
cfdisk will ask you to choose where to place the partition. After the partition is
created, cfdisk automatically adjusts the other partitions' partition types if all
of the primary partitions are used.
p Print the partition table to the screen or to a file. There are several different
formats for the partition that you can choose from:
r Raw data format (exactly what would be written to disk)
s Partition table in sector order format
t Partition table in raw format
The raw data format will print the sectors that would be written to disk if a write
command is selected. First, the primary partition table is printed, followed by
the partition tables associated with each logical partition. The data is printed
in hex byte by byte with 16 bytes per line.
The partition table in sector order format will print the partition table ordered
by sector number. The fields, from left to right, are the number of the partition,
the partition type, the first sector, the last sector, the offset from the first
sector of the partition to the start of the data, the length of the partition, the
filesystem type (with the hex value in parenthesis), and the flags (with the hex
value in parenthesis). In addition to the primary and logical partitions, free and
unusable space is printed and the extended partition is printed before the first
logical partition.
If a partition does not start or end on a cylinder boundary or if the partition
length is not divisible by the cylinder size, an asterisk (*) is printed after the
non-aligned sector number/count. This usually indicates that a partition was cre-
ated by an operating system that either does not align partitions to cylinder
boundaries or that used different disk geometry information. If you know the disk
geometry of the other operating system, you could enter the geometry information
with the change geometry command (g).
For the first partition on the disk and for all logical partitions, if the offset
from the beginning of the partition is not equal to the number of sectors per track
(i.e., the data does not start on the first head), a number sign (#) is printed
after the offset. For the remaining partitions, if the offset is not zero, a num-
ber sign will be printed after the offset. This corresponds to the NC flag in the
partitions section of the main display.
The partition table in raw format will print the partition table ordered by parti-
tion number. It will leave out all free and unusable space. The fields, from left
to right, are the number of the partition, the flags (in hex), the starting head,
sector and cylinder, the filesystem ID (in hex), the ending head, sector and cylin-
der, the starting sector in the partition and the number of sectors in the parti-
tion. The information in this table can be directly translated to the raw data
format.
The partition table entries only have 10 bits available to represent the starting
and ending cylinders. Thus, when the absolute starting (ending) sector number is
on a cylinder greater than 1023, the maximal values for starting (ending) head,
sector and cylinder are printed. This is the method used by OS/2, and thus fixes
the problems associated with OS/2's fdisk rewriting the partition table when it is
not in this format. Since Linux and OS/2 use absolute sector counts, the values in
the starting and ending head, sector and cylinder are not used.
q Quit program. This will exit the program without writing any data to disk.
t Change the filesystem type. By default, new partitions are created as Linux parti-
tions, but since cfdisk can create partitions for other operating systems, change
partition type allows you to enter the hex value of the filesystem you desire. A
list of the know filesystem types is displayed. You can type in the filesystem
type at the prompt or accept the default filesystem type [Linux].
u Change units of the partition size display. It will rotate through megabytes, sec-
tors and cylinders.
W Write partition table to disk (must enter an upper case W). Since this might
destroy data on the disk, you must either confirm or deny the write by entering
`yes' or `no'. If you enter `yes', cfdisk will write the partition table to disk
and the tell the kernel to re-read the partition table from the disk. The re-read-
ing of the partition table does not work in some cases, for example for device-map-
per devices. In particular case you need to inform kernel about new partitions by
partprobe(8), kpartx(8) or reboot the system.
Up Arrow
Down Arrow
Move cursor to the previous or next partition. If there are more partitions than
can be displayed on a screen, you can display the next (previous) set of partitions
by moving down (up) at the last (first) partition displayed on the screen.
CTRL-L Redraws the screen. In case something goes wrong and you cannot read anything, you
can refresh the screen from the main command line.
? Print the help screen.
All of the commands can be entered with either upper or lower case letters (except for
Writes). When in a sub-menu or at a prompt to enter a filename, you can hit the ESC key
to return to the main command line.
OPTIONS
-a Use an arrow cursor instead of reverse video for highlighting the current parti-
tion.
-g Do not use the geometry given by the disk driver, but try to guess a geometry from
the partition table.
-v Print the version number and copyright.
-z Start with zeroed partition table. This option is useful when you want to reparti-
tion your entire disk. Note: this option does not zero the partition table on the
disk; rather, it simply starts the program without reading the existing partition
table.
-c cylinders
-h heads
-s sectors-per-track
Override the number of cylinders, heads and sectors per track read from the BIOS.
If your BIOS or adapter does not supply this information or if it supplies incor-
rect information, use these options to set the disk geometry values.
-P opt Prints the partition table in specified formats. opt can be one or more of "r",
"s" or "t". See the print command (above) for more information on the print for-
mats.
EXIT STATUS
0: No errors; 1: Invocation error; 2: I/O error; 3: cannot get geometry; 4: bad partition
table on disk.
SEE ALSO
fdisk(8), sfdisk(8), mkfs(8), parted(8), partprobe(8), kpartx(8)
BUGS
The current version does not support multiple disks.
AUTHOR
Kevin E. Martin (martin AT cs.edu)
AVAILABILITY
The cfdisk command is part of the util-linux package and is available from ftp://ftp.ker-
nel.org/pub/linux/utils/util-linux/.
util-linux July 2009 CFDISK(8)
Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache/2.4.6 (CentOS)
Under GNU General Public License
2025-06-23 22:06 @127.0.0.1 CrawledBy Wget/1.21.2