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


NAME
       cfdisk - Curses based disk partition table manipulator for
       Linux

SYNOPSIS
       cfdisk [ -avz ] [ -c cylinders ] [ -h heads ]  [	-s  sec_
       tors-per-track ] [ -P opt ] [ device ]

DESCRIPTION
       cfdisk  is  a curses based program for partitioning a hard
       disk drive.  The device can be any one of the following:

	      /dev/hda [default]
	      /dev/hdb
	      /dev/sda
	      /dev/sdb
	      /dev/sdc
	      /dev/sdd

       cfdisk first tries to read the geometry of the hard  disk.
       If  it  fails,  an  error  message is displayed and cfdisk
       exits.  This should only happen when partitioning  a  SCSI
       drive on an adapter without a BIOS.  To correct this prob
       lem, you can set the  cylinders,	heads	and  sectors-per-
       track on the command line.  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 dis
       played and the program will  exit.   This  might	also  be
       caused by incorrect geometry information, and can be over
       ridden on the command line.  Another way around this prob
       lem 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 geome
       try.  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	displayed  in brackets.	The warning line is usu
       ally 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 par
       tition.

       The format of the partition table in the	partitions  sec
       tion  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 BOGUS Linux Release	3 June 1995				1





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


       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 maxi
       mized.  For more information,  see  the	maximize  command
       below.	The partition type can be one of Primary or Logi_
       cal.  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  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 asterisks (*) appears after the size,  this
       means that the partition is not aligned on cylinder bound
       aries.

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 informa
       tion in the partition table.  DOS FORMAT expects DOS FDISK
       to clear the first 512 bytes of the data area of a  parti
       tion  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 par
       tition 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 program.




The BOGUS Linux Release	3 June 1995				2





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


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 sec
	      tors-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, sim
	      ply  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 parti
	      tion, 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  par
	      tition  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



The BOGUS Linux Release	3 June 1995				3





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


	      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 parti
	      tion, 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 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 immedi
	      ately followed by one of (M, K, C or  S).	If  the
	      partition	fills the free space available, the par
	      tition 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  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 writ
		     ten 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 associ
	      ated 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 sec
	      tor, 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



The BOGUS Linux Release	3 June 1995				4





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


	      unusable space is printed and the	extended  parti
	      tion 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 divisi
	      ble by the  cylinder  size,  an  asterisks  (*)  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 dif
	      ferent  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 begin
	      ning 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  (end
	      ing)  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 parti
	      tion table when it is not in  this  format.   Since
	      Linux and OS/2 use absolute sector counts, the val
	      ues 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 parti
	      tions  are  created  as Linux partitions, but since



The BOGUS Linux Release	3 June 1995				5





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


	      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  cylin
	      ders.

       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  correct after you reboot the
	      system.  In all cases, I still recommend	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 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 partition.

       -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 parti
	      tion table on the disk; rather,  it  simply  starts
	      the  program without reading the existing partition



The BOGUS Linux Release	3 June 1995				6





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


	      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.

SEE ALSO
       fdisk(8)

BUGS
       The  current  version  does  not	support  multiple  disks
       (future addition).

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






























The BOGUS Linux Release	3 June 1995				7