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

FreeBSD Manual Pages


home | help
FDISK(8)		  BSD System Manager's Manual		      FDISK(8)

     fdisk -- PC partition table maintenance program

     fdisk [-BIaistu] [-b bootcode] [-1234] [disk]
     fdisk -f configfile [-itv]	[disk]

     In	order for the BIOS to boot the kernel, certain conventions must	be ad-
     hered to.	Sector 0 of the	disk must contain boot code, a partition ta-
     ble, and a	magic number.  BIOS partitions can be used to break the	disk
     up	into several pieces.  The BIOS brings in sector	0 and verifies the
     magic number.  The	sector 0 boot code then	searches the partition table
     to	determine which	partition is marked active.  This boot code then
     brings in the bootstrap from the active partition and, if marked
     bootable, runs it.	 Under DOS, you	can have one or	more partitions	with
     one active.  The DOS fdisk	program	can be used to divide space on the
     disk into partitions and set one active.

     The FreeBSD program fdisk serves a	similar	purpose	to the DOS program.
     The first form is used to display partition information or	to interac-
     tively edit the partition table.  The second is used to write a partition
     table using a configfile and is designed to be used by other scripts/pro-

     Options are:
     Change the	active partition only.	Ignored	if -f is given.
     Get the boot code from the	file bootcode.	Default	is /boot/mbr.
     Reinitialize the boot code	contained in sector 0 of the disk.  Ignored if
     -f	is given.
     Set partition values using	the file configfile.  The configfile always
     modifies existing partitions, unless -i is	also given, in which case all
     existing partitions are deleted (marked as	"unused") before the
     configfile	is read.  The configfile can be	"-", in	which case stdin is
     read.  See	CONFIGURATION FILE, below, for file syntax.

     WARNING: when -f is used, you are not asked if you	really want to write
     the partition table (as you are in	the interactive	mode).	Use with cau-
     Initialize	sector 0 of the	disk.  This implies -u,	unless -f is given.
     Initialize	the contents of	sector 0 with one FreeBSD slice	covering the
     entire disk.
     Print summary information and exit.
     Test mode;	do not write partition values.	Generally used with the	-f op-
     tion to see what would be written to the partition	table.	Implies	-v.
     Is	used for updating (editing) sector 0 of	the disk.  Ignored if -f is
     Be	verbose.  When -f is used, fdisk prints	out the	partition table	that
     is	written	to the disk.
     Operate on	a single fdisk entry only.  Ignored if -f is given.

   The final disk name can be provided as a `bare' disk	name only, e.g.	`da0',
   or as a fully qualified device node under /dev.  If omitted,	the disks
   `ad0', and `da0' are	being searched in that order, until one	is being found

   When	called with no arguments, it prints the	sector 0 partition table.  An
   example follows:

	   ******* Working on device /dev/ad0 *******
	   parameters extracted	from in-core disklabel are:
	   cylinders=769 heads=15 sectors/track=33 (495	blks/cyl)

	   parameters to be used for BIOS calculations are:
	   cylinders=769 heads=15 sectors/track=33 (495	blks/cyl)

	   Warning: BIOS sector	numbering starts with sector 1
	   Information from DOS	bootblock is:
	   The data for	partition 1 is:
	   sysid 165,(FreeBSD/NetBSD/386BSD)
	       start 495, size 380160 (185 Meg), flag 0
		   beg:	cyl 1/ sector 1/ head 0;
		   end:	cyl 768/ sector	33/ head 14
	   The data for	partition 2 is:
	   sysid 164,(unknown)
	       start 378180, size 2475 (1 Meg),	flag 0
		   beg:	cyl 764/ sector	1/ head	0;
		   end:	cyl 768/ sector	33/ head 14
	   The data for	partition 3 is:
	   The data for	partition 4 is:
	   sysid 99,(ISC UNIX, other System V/386, GNU HURD or Mach)
	       start 380656, size 224234 (109 Meg), flag 80
		   beg:	cyl 769/ sector	2/ head	0;
		   end:	cyl 197/ sector	33/ head 14

   The disk is divided into three partitions that happen to fill the disk.
   The second partition	overlaps the end of the	first.	(Used for debugging

   sysid		 is used to label the partition.  FreeBSD reserves the
			 magic number 165 decimal (A5 in hex).

   start and size	 fields	provide	the start address and size of a	parti-
			 tion in sectors.

   flag	80		 specifies that	this is	the active partition.

   cyl,	sector and head	 fields	are used to specify the	beginning address and
			 end address for the partition.

   Note:		 these numbers are calculated using BIOS's understand-
			 ing of	the disk geometry and saved in the bootblock.

   The flags -i	or -u are used to indicate that	the partition data is to be
   updated, unless the -f option is used.  If the -f option is not used, the
   fdisk program will enter a conversational mode.  This mode is designed not
   to change any data unless you explicitly tell it to.	 Fdisk selects de-
   faults for its questions to guarantee the above behavior.

   It displays each partition and ask if you want to edit it.  If you say yes,
   it will step	through	each field showing the old value and asking for	a new
   one.	 When you are done with	a partition, fdisk will	display	it and ask if
   it is correct.  Fdisk will then proceed to the next entry.

   Getting the cyl, sector, and	head fields correct is tricky.	So by default,
   they	will be	calculated for you; you	can specify them if you	choose.

   After all the partitions are	processed, you are given the option to change
   the active partition.  Finally, when	the all	the data for the first sector
   has been accumulated, you are asked if you really want to rewrite sector 0.
   Only	if you answer yes, will	the data be written to disk.

   The difference between the -u flag and -i flag is that the -u flag just ed-
   its the fields as they appear on the	disk.  While the -i flag is used to
   "initialize"	sector 0; it will setup	the last BIOS partition	to use the
   whole disk for FreeBSD; and make it active.

     The automatic calculation of starting cylinder etc. uses a	set of figures
     that represent what the BIOS thinks is the	geometry of the	drive.	These
     figures are by default taken from the incore disklabel, but the program
     initially gives you an opportunity	to change them.	 This allows the user
     to	create a bootblock that	can work with drives that use geometry trans-
     lation under the BIOS.

     If	you hand craft your disk layout, please	make sure that the FreeBSD
     partition starts on a cylinder boundary.  A number	of decisions made
     later may assume this.  (This might not be	necessary later.)

     Editing an	existing partition will	most likely cause you to lose all the
     data in that partition.

     You should	run this program interactively once or twice to	see how	it
     works.  This is completely	safe as	long as	you answer the last question
     in	the negative.  There are subtleties that the program detects that are
     not fully explained in this manual	page.

     When the -f option	is given, a disk's partition table can be written us-
     ing values	from a configfile.  The	syntax of this file is very simple.
     Each line is either a comment or a	specification, and whitespace (except
     for newlines) are ignored:

     # comment ...
	     Lines beginning with a "#"	are comments and are ignored.

     g spec1 spec2 spec3
	     Set the BIOS geometry used	in partition calculations.  There must
	     be	three values specified,	with a letter preceding	each number:

	     cnum    Set the number of cylinders to num.

	     hnum    Set the number of heads to	num.

	     snum    Set the number of sectors/track to	num.

	     These specs can occur in any order, as the	leading	letter deter-
	     mines which value is which; however, all three must be specified.

	     This line must occur before any lines that	specify	partition in-

	     It	is an error if the following is	not true:

		   1 <=	number of cylinders
		   1 <=	number of heads	<= 256
		   1 <=	number of sectors/track	< 64

	     The number	of cylinders should be less than or equal to 1024, but
	     this is not enforced, although a warning will be output.  Note
	     that bootable FreeBSD partitions (the "/" filesystem) must	lie
	     completely	within the first 1024 cylinders; if this is not	true,
	     booting may fail.	Non-bootable partitions	do not have this re-

	     Example (all of these are equivalent), for	a disk with 1019
	     cylinders,	39 heads, and 63 sectors:

		   g	   c1019   h39	   s63
		   g	   h39	   c1019   s63
		   g	   s63	   h39	   c1019

     p partition type start length
	     Set the partition given by	partition (1-4)	to type	type, starting
	     at	sector start for length	sectors.

	     Only those	partitions explicitly mentioned	by these lines are
	     modified; any partition not referenced by a "p" line will not be
	     modified.	However, if an invalid partition table is present, or
	     the -i option is specified, all existing partition	entries	will
	     be	cleared	(marked	as unused), and	these "p" lines	will have to
	     be	used to	explicitly set partition information.  If multiple
	     partitions	need to	be set,	multiple "p" lines must	be specified;
	     one for each partition.

	     These partition lines must	occur after any	geometry specification
	     lines, if one is present.

	     The type is 165 for FreeBSD partitions.  Specifying a partition
	     type of zero is the same as clearing the partition	and marking it
	     as	unused;	however, dummy values (such as "0") must still be
	     specified for start and length.

	     Note: the start offset will be rounded upwards to a head boundary
	     if	necessary, and the end offset will be rounded downwards	to a
	     cylinder boundary if necessary.

	     Example: to clear partition 4 and mark it as unused:

		   p	   4	   0	   0	   0

	     Example: to set partition 1 to a FreeBSD partition, starting at
	     sector 1 for 2503871 sectors (note: these numbers will be rounded
	     upwards and downwards to correspond to head and cylinder bound-

		   p	   1	   165	   1	   2503871

     a partition
	     Make partition the	active partition.  Can occur anywhere in the
	     config file, but only one must be present.

	     Example: to make partition	1 the active partition:

		   a	   1

     /boot/mbr	The default boot code

     boot0cfg(8), disklabel(8)

     The default boot code will	not necessarily	handle all partition types
     correctly,	in particular those introduced since MS-DOS 6.x.

     The entire	program	should be made more user-friendly.

     Throughout	this man page, the term	`partition' is used where it should
     actually be `slice', in order to conform with the terms used elsewhere.

     You cannot	use this command to completely dedicate	a disk to FreeBSD.
     The disklabel(8) command must be used for this.

BSD				October	4, 1996				   BSD


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

home | help