Provided by: util-linux_2.20.1-1ubuntu3_i386 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

       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.


       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 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
              immediately  surrounding  the  current  partition.   A partition
              already marked as free space or marked  as  unusable  cannot  be

       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

              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

       ?      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


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