fixparts

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


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


BUGS
       As of March 2014 (version 0.8.10), fixparts should be considered beta
       software. 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
              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
              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 (dschauer@ti.com)

       * Florian Zumbiehl (florz@florz.de)



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

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

       http://www.rodsbooks.com/fixparts/


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



Roderick W. Smith                   0.8.10                         FIXPARTS(8)