cfdisk manpage

Search topic Section

CFDISK(8)		     System Administration		     CFDISK(8)

       cfdisk - display or manipulate disk partition table

       cfdisk  [-agvz]	[-c  cylinders]	 [-h heads] [-s sectors-per-track] [-P
       opt] [device]

       cfdisk is a curses-based program for partitioning any hard disk	drive.
       Typical values of the device argument are:

	      /dev/hda [default]

       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 `sec-
       tors 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 previous program that changed it. If the  par-
       tition table is empty, or contains garbage, or does not point at a con-
       sistent 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  partitions,  the  command	line  and a warning line.  The
       header contains the program name and version  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  com-
       mands  and  text	 are entered.  The available commands are usually dis-
       played 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 parti-

       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 pri-
       mary  partitions are used).  When this is detected, the filesystem type
       is displayed as Unusable.  The size field displays the size of the par-
       tition in megabytes (by default).  It can also display the size in sec-
       tors and cylinders (see the change units command below).	 If an	aster-
       isk  (*)	 appears  after the size, this means that the partition is not
       aligned on cylinder boundaries.

       The DOS 6.x FORMAT command looks for some information in the first sec-
       tor  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 parti-
       tion 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 command "dd if=/dev/zero of=/dev/hda1 bs=512 count=1"  to
       zero the first 512 bytes of the partition. 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  example,	 you  should  make DOS partitions with the DOS
       FDISK program and Linux partitions with the Linux fdisk or Linux cfdisk

       cfdisk  commands	 can  be entered by pressing the desired key (pressing
       Enter after the command 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 imme-
	      diately surrounding the current partition.  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 avail-
	      able to change the disk geometry.	  While	 at  the  change  disk
	      geometry	command	 line, you can choose to change cylinders (c),
	      heads (h), and sectors 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	 pressing  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 parti-
	      tion  incompatible  with	DOS, OS/2 and possibly other operating
	      systems.	This option will toggle between maximal disk usage and
	      DOS,  OS/2, etc. compatible disk usage.  The default when creat-
	      ing a partition is to create DOS, OS/2, etc.  compatible	parti-

       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 par-
	      tition,  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], kilobytes (K),	 cylinders  (C)	 and  sectors  (S)  by
	      entering	the  number immediately followed by one of (M, K, C or
	      S).  If the partition fills the free space available, the parti-
	      tion  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

	      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 par-
	      tition table is printed, followed by the partition tables	 asso-
	      ciated  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 parti-
	      tion  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 parenthe-
	      sis), and the flags (with the hex	 value	in  parenthesis).   In
	      addition	to  the primary and logical partitions, free and unus-
	      able 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 num-
	      ber/count.  This usually indicates that a partition was  created
	      by  an operating system that either does not align partitions to
	      cylinder boundaries or that used different disk geometry	infor-
	      mation.	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 parti-
	      tions, 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 number sign will be printed after the offset.  This cor-
	      responds	to  the	 NC flag in the partitions section of the main

	      The partition table in raw format will print the partition table
	      ordered  by  partition  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,  sec-
	      tor  and	cylinder, the starting sector in the partition and the
	      number of sectors in the partition.  The information in this ta-
	      ble can be directly translated to the raw data format.

	      The  partition table entries only have 10 bits available to rep-
	      resent the starting and ending cylinders.	 Thus, when the	 abso-
	      lute  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 cre-
	      ated as Linux partitions, 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, sectors 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  con-
	      firm  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-reading of the partition table  does  not	work  in  some
	      cases,  for  example  for	 device-mapper devices.	 In particular
	      case you need to inform kernel about  new	 partitions  by	 part-
	      probe(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  dis-
	      play  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

       ?      Print the help screen.

       All of the commands can be entered with either upper or lower case let-
       ters (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.

       -a     Use an arrow cursor instead of reverse  video  for  highlighting
	      the current partition.

       -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  repartition  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 incorrect 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 formats.

       0: No errors; 1: Invocation error; 2: I/O error; 3: cannot  get	geome-
       try; 4: bad partition table on disk.

       fdisk(8), sfdisk(8), mkfs(8), parted(8), partprobe(8), kpartx(8)

       The current version does not support multiple disks.

       Kevin E. Martin (martin@cs.unc.edu)

       The  cfdisk  command is part of the util-linux package and is available
       from ftp://ftp.kernel.org/pub/linux/utils/util-linux/.

util-linux			   July 2009			     CFDISK(8)