CFDISK(8)		  Linux Programmer's Manual		   CFDISK(8)



NAME
       cfdisk - Curses based disk partition table manipulator for Linux

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

       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  parti
       tion  is highlighted with reverse video (or an arrow if the -a option
       is given).  All partition specific commands apply to the current par
       tition.

       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 Compati
       ble  with  DOS or OS/2".  DOS, OS/2 and possibly other operating sys
       tems 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 parti
       tions with the number of sectors already maximized.  For more  infor
       mation,	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 unus
       able).  The filesystem type section displays the name of the filesys
       tem  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 asterisks (*) 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 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.


COMMANDS
       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 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 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 cre
	      ated, 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 con
	      tains 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 display 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 cre
	      ated 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 partition's partition types if all of the primary parti
	      tions 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 writ
	      ten to disk if a write command is selected.  First,  the	pri
	      mary  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 par
	      tition 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 parenthe
	      sis).  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 asterisks (*) is printed after the non-aligned sector	num
	      ber/count.   This  usually indicates that a partition was cre
	      ated by an operating system that either does not align  parti
	      tions to cylinder boundaries or that used different disk geom
	      etry 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 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 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 cylin
	      der 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	par
	      titions  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 works is most
	      cases, but I have seen it fail.  Don't panic.  It will be cor
	      rect  after you reboot the system.  In all cases, I still rec
	      ommend rebooting the system--just to be safe.

       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 can
	      not 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 com
       mand line.

OPTIONS
       -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 sim
	      ply  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.

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

SEE ALSO
       fdisk(8), parted(8), sfdisk(8)

BUGS
       The current version does not support multiple disks.

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



The BOGUS Linux Release 	 3 June 1995			   CFDISK(8)