Provided by: gdisk_1.0.1-1build1_i386 bug


       fixparts - MBR partition table repair utility


       fixparts device


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

       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 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
              Windows 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
              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
       arbitrarily  interspersed.  A  disk  can  contain  one to three primary
       partitions, 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
       sandwiched  between logical partitions, 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
       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
       logical  partitions.  This  is  done  because  most  of the repairs and
       manipulations the tool performs require  generating  a  fresh  extended
       partition,  so keeping the original in the user interface would only be
       a complication.

       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
       without saving changes.


       The fixparts utility  supports  no  command-line  options,  except  for
       specification 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, 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

       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
              number,  the  boot/active  flag's  status,  starting  and ending
              sector 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
              understanding 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
              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


       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.