Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
CFDISK(8)		   Linux Programmer's Manual		     CFDISK(8)

       cfdisk -	Curses based disk partition table manipulator for Linux

       cfdisk-linux  [ -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/ad0 [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	 `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  al-
       ways  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  in-
       correct	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 re-
       quire the first sector of the first partition on	the disk and all logi-
       cal  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-
       isks (*)	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/ad0s1, 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/ad0s1	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 ge-
	      ometry 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 be-
	      yond  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	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  de-
	      fault size, equal	to the entire free space of the	current	parti-
	      tion, 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 cre-
	      ated 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	partition's partition types if all of the pri-
	      mary 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 ad-
	      dition 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 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 un-
	      usable 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  num-
	      ber  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  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 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 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-linux(8), newfs(8), fdisk(8), sfdisk-linux(8)

       The current version does	not support multiple disks.

       Kevin E.	Martin (

The BOGUS Linux	Release		  3 June 1995			     CFDISK(8)


Want to link to this manual page? Use this URL:

home | help