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

FreeBSD Manual Pages


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

     fdisk -- DOS partition maintenance	program

     fdisk [-ieu] [-f mbrname] [-c cylinders] [-h heads] [-s sectors] device

     In	order for the BIOS to boot the kernel, certain conventions must	be ad-
     hered to.	Sector 0 of a bootable hard disk must contain boot code, an
     MBR partition table, and a	magic number (0xAA55).	These MBR partitions
     (also known as BIOS partitions) can be used to break the disk up into
     several pieces.

     The BIOS loads sector 0 of	the boot disk into memory, verifies the	magic
     number, and begins	executing the code at the first	byte.  The normal DOS
     MBR boot code searches the	MBR partition table for	an "active" partition
     (indicated	by a `*' in the	first column), and if one is found, the	boot
     block from	that partition is loaded and executed in place of the original
     (MBR) boot	block.

     The options are as	follows:

     -i	     Initialize	the MBR	sector.

     -a	style
	     Specify an	automatic partitioning style.

     -e	     Edit existing MBR sectors.

     -f	mbrname
	     Specifies an alternate MBR	template file.

     -u	     Update MBR	code, preserving existing partition table.

     -y	     Do	not ask	for confirmation before	writing.

     -d	     Dump partition table in a format readable by the -r option.

     -r	     Read a partition table from the standard input.

     -t	     Test if the disk is partitioned.

     -c	cylinders, -h heads, -s	sectors
	     Specifies an alternate BIOS geometry for fdisk to use.

     -S	size
	     Specify the disk size in blocks.

     The DOS fdisk program can be used to divide space on the disk into	parti-
     tions and set one active.	This fdisk program serves a similar purpose to
     the DOS program.  When called with	no special flags, it prints the	MBR
     partition table of	the specified device, i.e.,

	 # fdisk fd0
	 Disk: fd0	 geometry: 80/2/18 [2880 sectors]
	 Offset: 0	 Signature: 0xAA55
		  Starting	  Ending
	  #: id	 cyl  hd sec -	cyl  hd	sec [	  start	-	size]
	 *1: A6	   0   0   1 -	 79   1	 18 [	      0	-	2880] OpenBSD
	  2: 00	   0   0   0 -	  0   0	  0 [	      0	-	   0] unused
	  3: A7	   0   0   2 -	 79   1	 18 [	      1	-	2879] NEXTSTEP
	  4: 00	   0   0   0 -	  0   0	  0 [	      0	-	   0] unused

     The geometry displayed is a synthetic geometry unless another geometry
     has been selected using the -c, -h, and -s	options.  In the future, fdisk
     will read the BIOS	geometry from the IOKit	registry.

     In	this example, the disk is divided into two partitions that happen to
     fill the disk.  The first partition overlaps the third partition.	(Used
     for debugging purposes.)

     #		 Number	of partition table entry.  A "*" denotes the bootable

     id		 System	identifier.  OpenBSD reserves the magic	number 166
		 decimal (A6 in	hex).  If no 166 partition is found, it	will
		 use an	older FreeBSD partition	(with a	magic number of	165 or
		 A5 in hex).

     cyl/hd/sec	 These fields provide the starting and ending address of the
		 partition in BIOS geometry

     start/size	 These fields provide the starting sector and size in sectors
		 of the	partition in linear block addresses.

     NOTE: The sectors field is	"1 based", and the start field is "0 based".
     The CHS values may	need to	be in the BIOS's geometry for older systems to
     be	able to	boot and use the drive correctly; most modern systems prefer
     the starting sector and size in preference	to the CHS values.

     The -i flag is used to indicate that the partition	data is	to be initial-
     ized.  In this mode, fdisk	will completely	overwrite the primary MBR and
     partition table, either using the default MBR template, or	the one	speci-
     fied by the -f flag.

     In	the default template, partition	number 1 will be configured as a Dar-
     win boot partition	spanning from cylinder 0, head 1, sector 1, and	ex-
     tending for 8 megabytes.  Partition number	2 will be configured as	a Dar-
     win HFS partition spanning	the rest of the	disk.  This mode is designed
     to	initialize an MBR the very first time, or when it has been corrupted
     beyond repair.

     You can specify other default partition styles with the -a	flag.  The
     available styles are:

     boothfs	 Creates an 8Mb	boot partition (type AB	hex) and makes the
		 rest of the disk a Darwin HFS partition (type AF hex).

     bootufs	 Creates an 8Mb	boot partition (type AB	hex) and makes the
		 rest of the disk a Darwin UFS partition (type A8 hex).

     hfs	 Makes the entire disk one Darwin UFS partition	(type A8 hex).

     ufs	 Makes the entire disk one HFS+	partition (type	AF hex).

     dos	 Makes the entire disk one DOS partition (type 0C hex).

     raid	 Makes the entire disk one type	AC hex partition.

     The -u flag is used to update the MBR code	on a given drive.  The MBR
     code extends from offset 0x000 to the start of the	partition table	at
     offset 0x1BE.  It is similar to the -i flag, except the existing parti-
     tion table	is preserved. This is useful for writing new MBR code onto an
     existing drive, and is equivalent to the DOS command "FDISK /MBR".	 Note
     that this option will overwrite the NT disk signature, if present.	 The
     -u	and -i flags may not be	specified together.

     The flag -e is used to modify a partition table using a interactive edit
     mode of the fdisk program.	 This mode is designed to allow	you to change
     any partition on the drive	you choose, including extended partitions.  It
     is	a very powerful	mode, but is safe as long as you do not	execute	the
     write command, or answer in the negative (the default) when fdisk asks
     you about writing out changes.

     When you first enter this mode, you are presented with a prompt, that
     looks like	so: fdisk: 0_.	This prompt has	two important pieces of	infor-
     mation for	you.  It will tell you if the in-memory	copy of	the boot block
     has been modified or not.	If it has been modified, the prompt will
     change to look like: fdisk:*0_.  The second piece of information pertains
     to	the number given in the	prompt.	 This number specifies the disk	offset
     of	the currently selected boot block you are editing.  This number	could
     be	something different that zero when you are editing extended parti-
     tions.  The list of commands and their explanations are given below.

     help    Display a list of commands	that fdisk understands in the interac-
	     tive edit mode.

     manual  Display this manual page.

     reinit  Initialize	the currently selected,	in-memory copy of the boot

     auto    Partition the disk	with one of the	automatic partition styles.

     disk    Display the current drive geometry	that fdisk has probed.	You
	     are given a chance	to edit	it if you wish.

     edit    Edit a given table	entry in the memory copy of the	current	boot
	     block.  You may edit either in BIOS geometry mode,	or in sector
	     offsets and sizes.

     setpid  Change the	partition identifier of	the given partition table en-
	     try.  This	command	is particularly	useful for reassigning an ex-
	     isting partition to OpenBSD.

     flag    Make the given partition table entry bootable.  Only one entry
	     can be marked bootable.  If you wish to boot from an extended
	     partition,	you will need to mark the partition table entry	for
	     the extended partition as bootable.

     update  Update the	machine	code in	the memory copy	of the currently se-
	     lected boot block.	 Note that this	option will overwrite the NT
	     disk signature, if	present.

     select  Select and	load into memory the boot block	pointed	to by the ex-
	     tended partition table entry in the current boot block.

     print   Print the currently selected in-memory copy of the	boot block and
	     its MBR table to the terminal.

     write   Write the in-memory copy of the boot block	to disk.  You will be
	     asked to confirm this operation.

     exit    Exit the current level of fdisk, either returning to the previ-
	     ously selected in-memory copy of a	boot block, or exiting the
	     program if	there is none.

     quit    Exit the current level of fdisk, either returning to the previ-
	     ously selected in-memory copy of a	boot block, or exiting the
	     program if	there is none.	Unlike exit it does write the modified
	     block out.

     abort   Quit program without saving current changes.

     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 in-core disklabel, or values	that
     /boot has passed to the kernel, but fdisk gives you an opportunity	to
     change them if there is a need to.	 This allows the user to create	a
     bootblock that can	work with drives that use geometry translation under a
     potentially different BIOS.

     If	you hand craft your disk layout, please	make sure that the OpenBSD
     partition starts on a cylinder boundary.  (This restriction may be
     changed in	the future.)

     Editing an	existing partition is risky, and may 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 "write" ques-
     tions in the negative.

     /usr/mdec/mbr  default MBR	template


     There are subtleties fdisk	detects	that are not explained in this manual
     page.  As well, chances are that some of the subtleties it	should detect
     are being steamrolled.  Caveat Emptor.

BSD				January	3, 2002				   BSD


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

home | help