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 repairing
     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 in-
	    completely 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  prob-
	    lem  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 structures.

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

     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/logi-
     cal 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 Windows 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 (fix-
	    parts, however, imposes a limit of 124 logical partitions). All  the
	    logical  partitions  reside  inside a single extended partition, 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 arbi-
     trarily interspersed. A disk can contain one to three primary partitions, a
     block of one or more logical partitions, and one to three more primary par-
     titions (for a total of three primary partitions, not counting the extended
     partition). Primary partitions may not be sandwiched between logical parti-
     tions, since this would mean placing a primary partition within an extended
     partition (which is just a specific type of primary partition).

     Unlike most disk utilities, fixparts' user interface ignores extended  par-
     titions.  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 logical partitions.
     This is done because most of the repairs and manipulations  the  tool  per-
     forms  require generating a fresh extended partition, so keeping the origi-
     nal in the user interface would only be a complication.

     Another unusual feature of fixparts' user interface is that partition  num-
     bers  do  not  necessarily  correlate  with primary/logical status. In most
     utilities, partitions 1-4 correspond to primary partitions, whereas  parti-
     tions  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  ex-
     traneous  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 inter-
     face and abort those changes by typing q to quit without saving changes.

OPTIONS
     The fixparts utility supports no command-line options, except for	specifi-
     cation 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 partitions.
	    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 possible. For instance, omit-
	    ting a partition that precedes the target partition may enable  con-
	    verting  a	partition to logical form if there had been no free sec-
	    tors 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 omitted. 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 num-
	    ber, the boot/active flag's status, starting and ending sector  num-
	    bers,  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 option
	    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, al-
	    though in some configurations, making this change will require omit-
	    ting some partitions.  If fixparts refuses to allow changing a  par-
	    tition to primary, you may need to convert other partitions to logi-
	    cal 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 understanding the
	    disk layout easier in some cases. This option has no effect  on  the
	    ultimate ordering of logical partitions, which are sorted before be-
	    ing saved. The order of primary partitions in the final saved parti-
	    tion table may be affected by this option. 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 com-
	    mand) 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 Pow-
	    erPC (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 parti-
	    tion  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 typ-
	    ing sysctl kern.geom.debugflags=16 at a shell prompt.

     *	    The program can load only up to 128 partitions (4 primary partitions
	    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 filesystems 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 ta-
	    ble.

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+Ports+15.1.quarterly>

home | help