Provided by: util-linux_2.20.1-5.1ubuntu20_amd64 bug


       cfdisk - display or manipulate disk partition table


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


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

              /dev/hda [default]

       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
       previous 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
       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 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


       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

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


       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  immediately  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  available  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  partition  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  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],
              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 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
              created  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
              number 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
              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, sector  and
              cylinder,  the  starting  sector  in the partition and the number of sectors in the
              partition.  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
              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 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-
              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 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.


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

       -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


       0: No errors; 1: Invocation error; 2: I/O error; 3: cannot get geometry; 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 (


       The   cfdisk   command   is   part  of  the  util-linux  package  and  is  available  from