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

FreeBSD Manual Pages

  
 
  

home | help
FIXPARTS(8)			FixParts Manual			   FIXPARTS(8)

NAME
       fixparts	- MBR partition	table repair utility

SYNOPSIS
       fixparts	device

DESCRIPTION
       FixParts	 (aka fixparts)	is a text-mode menu-driven program for repair-
       ing certain types of problems with Master Boot Record  (MBR)  partition
       tables.	The  program has three design goals, although a	few additional
       features	are supported, as well:

       *      It can remove stray GUID Partition Table (GPT) data,  which  can
	      be  left	behind	on a disk that was once	used as	a GPT disk but
	      then incompletely	converted to the more common (as of 2011)  MBR
	      form.

       *      It can repair mis-sized extended partitions -- either partitions
	      that  extend beyond the physical end of the disk or that overlap
	      with nearby primary partitions. FixParts is designed in  such  a
	      way  that	 this  type of repair occurs automatically, so if it's
	      the only problem with your disk, you can launch the program  and
	      then  immediately	 save  the  partition  table, making no	manual
	      changes, and the program will fix	the problem.

       *      You can change primary partitions	 into  logical	partitions  or
	      vice-versa,  within  constraints	imposed	by the MBR data	struc-
	      tures.

       Additional features include the ability to change partition type	 codes
       or  boot/active	flags, to delete partitions, and to recompute CHS val-
       ues. With the possible exception	of recomputing CHS values, these  sec-
       ondary  features	are better performed with fdisk, because fixparts' de-
       sign means that it's likely to alter partition numbering	even when such
       changes are not requested.

       The fixparts program employs  a	user  interface	 similar  to  that  of
       Linux's fdisk, but fixparts is much more	specialized. Most importantly,
       you  can't create new partitions	with fixparts, although	you can	change
       primary/logical assignment.

       In the MBR scheme, partitions come in three varieties:

       primary
	      These partitions are defined in the first	 sector	 of  the  hard
	      disk  and	are limited in number to four. Some OSes, such as Win-
	      dows and FreeBSD,	must boot from a primary partition.

       extended
	      Extended partitions are  specialized  primary  partitions.  They
	      serve as holding areas for logical partitions.

       logical
	      A	 disk  can  contain  an	arbitrary number of logical partitions
	      (fixparts, however, imposes a limit of 124 logical  partitions).
	      All  the logical partitions reside inside	a single extended par-
	      tition, and are defined using a linked-list data structure. This
	      fact means that every logical partition must be preceded	by  at
	      least  one sector	of unallocated space to	hold its defining data
	      structure	(an Extended Boot Record, or EBR).

       These distinctions mean that primary and	logical	partitions  cannot  be
       arbitrarily  interspersed. A disk can contain one to three primary par-
       titions,	a block	of one or more logical partitions, and	one  to	 three
       more  primary  partitions (for a	total of three primary partitions, not
       counting	the extended partition). Primary partitions may	not  be	 sand-
       wiched between logical partitions, since	this would mean	placing	a pri-
       mary  partition	within an extended partition (which is just a specific
       type of primary partition).

       Unlike most disk	utilities, fixparts' user interface  ignores  extended
       partitions.  Internally,	 the  program  discards	the information	on the
       original	extended partition and,	when you tell it to save its  changes,
       it generates a new extended partition to	contain	the then-defined logi-
       cal  partitions.	This is	done because most of the repairs and manipula-
       tions the tool performs require generating a fresh extended  partition,
       so keeping the original in the user interface would only	be a complica-
       tion.

       Another	unusual	 feature of fixparts' user interface is	that partition
       numbers do not necessarily correlate with  primary/logical  status.  In
       most  utilities,	 partitions  1-4  correspond  to  primary  partitions,
       whereas partitions 5 and	up are logical partitions.  In	fixparts,  any
       partition  number may be	assigned primary or logical status, so long as
       the rules for layout described earlier are obeyed. When	the  partition
       table  is  saved,  partitions  will  be assigned	appropriately and then
       tools such as the Linux kernel and fdisk	will  give  them  conventional
       numbers.

       When  it	 first	starts,	 fixparts performs a scan for GPT data.	If the
       disk looks like a conventional GPT disk,	fixparts refuses  to  run.  If
       the  disk  appears to be	a conventional MBR disk	but GPT	signatures are
       present in the GPT primary or secondary header areas,  fixparts	offers
       to  delete  this	 extraneous data. If you tell it to do so, the program
       immediately wipes the GPT header	or headers. (If	only  one  header  was
       found,  only  that  one	header will be erased, to minimize the risk of
       damaging	a boot loader or other data that might have  overwritten  just
       one of the GPT headers.)

       With  the  exception  of	 optionally  erasing leftover GPT data when it
       first starts, fixparts keeps all	 changes  in  memory  until  the  user
       writes changes with the w command. Thus,	you can	adjust your partitions
       in the user interface and abort those changes by	typing q to quit with-
       out saving changes.

OPTIONS
       The fixparts utility supports no	command-line options, except for spec-
       ification of the	target device.

       Most  interactions  with	 fixparts occur	with its interactive text-mode
       menu. Specific functions	are:

       a      Toggle the active/boot flag. This	flag is	required by some  boot
	      loaders and OSes.

       c      Recompute	 the  cylinder/head/sector (CHS) values	for all	parti-
	      tions. CHS addressing mode is largely obsolete,  but  some  OSes
	      and  utilities  complain if they don't like the CHS values. Note
	      that fixparts' CHS values	are likely to be  incorrect  on	 disks
	      smaller than about 8 GiB except on Linux.

       l      Change  a	 partition's  status to	logical. This option will only
	      work if the current partition layout  supports  such  a  change.
	      Note  that  if  changing a partition's status in this way	is not
	      currently	possible, making some other change may make it	possi-
	      ble. For instance, omitting a partition that precedes the	target
	      partition	 may  enable converting	a partition to logical form if
	      there had	been no	free sectors between the two partitions.

       o      Omit a partition.	Once omitted, the partition will still	appear
	      in  the fixparts partition list, but it will be flagged as omit-
	      ted. You can subsequently	convert	it to primary or logical  form
	      with  the	 r  or	l  commands,  respectively. When you save your
	      changes with w, though, the partition will be lost.

       p      Display basic partition summary data. This includes  partition's
	      number,  the boot/active flag's status, starting and ending sec-
	      tor numbers, primary/logical/omitted status, whether or not  the
	      partition	 may be	converted to logical form, and the partition's
	      MBR types	code.

       q      Quit from	the program without saving your	changes.  Use this op-
	      tion if you just wanted to view information or  if  you  make  a
	      mistake and want to back out of all your changes.

       r      Change  a	 partition's  status to	primary. This option will only
	      work if the current partition layout  supports  such  a  change.
	      Note  that  every	 partition  can	theoretically become a primary
	      partition, although in some configurations, making  this	change
	      will  require  omitting some partitions.	If fixparts refuses to
	      allow changing a partition to primary, you may need  to  convert
	      other partitions to logical form or omit them entirely.

       s      Sort  partition  entries.	 This  option orders partitions	in the
	      display to match their on-disk positions,	which can make	under-
	      standing	the  disk layout easier	in some	cases. This option has
	      no effect	on the ultimate	ordering of logical partitions,	 which
	      are  sorted  before being	saved. The order of primary partitions
	      in the final saved partition table may be	affected by  this  op-
	      tion.  In	 both  cases,  as already noted, the partition numbers
	      displayed	by fixparts may	not be the same	as those used  by  the
	      kernel or	displayed by other partitioning	tools.

       t      Change  a	partition's type code. You enter the type code using a
	      one-byte hexadecimal number.

       w      Write data. Use this command to save your	changes	and exit  from
	      the program.

       ?      Print  the  menu.	 Type  this command (or	any other unrecognized
	      command) to see a	summary	of available options.

BUGS
       Known bugs and limitations include:

       *      The program compiles correctly only on Linux, FreeBSD, Mac OS X,
	      and Windows.  Linux versions for x86-64 (64-bit),	x86  (32-bit),
	      and  PowerPC  (32-bit) have been tested, with the	x86-64 version
	      having seen the most testing. Under FreeBSD,  32-bit  (x86)  and
	      64-bit  (x86-64) versions	have been tested. Only 32-bit versions
	      for Mac OS X and Windows have been tested.

       *      The FreeBSD version of the program can't write  changes  to  the
	      partition	 table to a disk when existing partitions on that disk
	      are mounted. (The	same problem exists with  many	other  FreeBSD
	      utilities,  such	as gpt,	fdisk, and dd.)	This limitation	can be
	      overcome by typing sysctl	 kern.geom.debugflags=16  at  a	 shell
	      prompt.

       *      The program can load only	up to 128 partitions (4	primary	parti-
	      tions  and  124 logical partitions). This	limit can be raised by
	      changing the #define MAX_MBR_PARTS line in the basicmbr.h	source
	      code file	and recompiling.

       *      The program can read partitions only if the disk has correct LBA
	      partition	descriptors. These descriptors should  be  present  on
	      any disk over 8 GiB in size or on	smaller	disks partitioned with
	      any but very ancient software.

       *      The  program makes no effort to preserve partition numbers. This
	      can have consequences for	boot loaders and for mounting filesys-
	      tems via /etc/fstab. It may be necessary to  edit	 configuration
	      files or even to re-install your boot loader.

       *

	      The  program may change the order	of partitions in the partition
	      table.

AUTHORS
       Primary author: Roderick	W. Smith (rodsmith@rodsbooks.com)

       Contributors:

       * Yves Blusseau (1otnwmz02@sneakemail.com)

       * David Hubbard (david.c.hubbard@gmail.com)

       * Justin	Maggard	(justin.maggard@netgear.com)

       * Dwight	Schauer	(das@teegra.net)

       * Florian Zumbiehl (florz@florz.de)

SEE ALSO
       bsdlabel(8),  fdisk(8),	fixparts(8),   gdisk(8),   gpart(8),   gpt(8),
       newfs(8), sgdisk(8).

       https://en.wikipedia.org/wiki/Master_boot_record

       https://www.rodsbooks.com/fixparts/

AVAILABILITY
       The  fixparts command is	part of	the GPT	fdisk package and is available
       from Rod	Smith.

Roderick W. Smith		    1.0.10			   FIXPARTS(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fixparts&sektion=8&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help