STANNIX Community


Manual: 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 re‐
	      pair occurs automatically, so if it's the only problem with your disk, you can launch the program and then im‐
	      mediately 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 bet‐
       ter 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 special‐
       ized. Most importantly, you can't create new partitions with fixparts, although you can	change	primary/logical	 as‐
       signment.

       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  logi‐
	      cal 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 sec‐
	      tor 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 sand‐
       wiched 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	 ex‐
       tended partition to contain the then-defined logical partitions. This is done because most of the repairs and manipu‐
       lations	the  tool performs require generating a fresh extended partition, so keeping the original in the user inter‐
       face would only be a complication.

       Another unusual feature of fixparts' user interface is that partition numbers do not necessarily correlate with	pri‐
       mary/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 appro‐
       priately 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 imme‐
       diately wipes the GPT header or headers. (If only one header was found, only that one header will be erased, to mini‐
       mize 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, re‐
	      spectively. 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,  start‐
	      ing  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	con‐
	      figurations,  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 order‐
	      ing 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
       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  parti‐
	      tions  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 (das@teegra.net)

       * Florian Zumbiehl (florz@florz.de)

SEE ALSO
       cfdisk(8), cgdisk(8), fdisk(8), mkfs(8), parted(8), sfdisk(8), gdisk(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)