FIXPARTS(8)                     FixParts Manual                    FIXPARTS(8)

       fixparts - MBR partition table repair utility

       fixparts device

       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

       *      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-

       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'
       design  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:

              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  partitions  are  specialized  primary partitions. They
              serve as holding areas for logical partitions.

              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-

       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

       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.

       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
              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, 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
              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
              command) to see a summary of available options.

       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

       *      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

       Primary author: Roderick W. Smith (


       * Yves Blusseau (

       * David Hubbard (

       * Justin Maggard (

       * Dwight Schauer (

       * Florian Zumbiehl (

       cfdisk (8), cgdisk (8), fdisk (8), mkfs (8),  parted  (8),  sfdisk  (8)
       gdisk (8) sgdisk (8)

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

Roderick W. Smith                    1.0.3                         FIXPARTS(8)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2022 Hurricane Electric. All Rights Reserved.