Last Web page update: 3/17/2015
This Web page, and the associated software, is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find GPT fdisk or this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
||Donate another value
Note: This page is part of the documentation for my GPT fdisk program.
The following summarizes changes in GPT fdisk's public releases:
- 1.0.0 (3/17/2015)—I've decided to move GPT fdisk
out of beta status with this release. This change doesn't reflect any
major new features; it's simply that the program has been in use for
several years now and appears to be pretty reliable. In addition to the
change in status, this version includes several new partition type
codes: the new 8303, 8304, 8305, and 8306 codes support various
Freedesktop.org types; F800 through F805 are for Ceph, 4202 is for
Windows Storage Spaces; and A600 and A601 are for OpenBSD (although
A600 maps to A500, the FreeBSD disklabel code; it's present mainly to
help with MBR-to-GPT conversions). I've added support for compilation
with the UEFI GPT fdisk library, which enables creating an EFI binary
of gdisk, and I'm distributing such a binary build. I've added the
-O/--print-mbr option to sgdisk, which
displays the MBR partition table. I've tweaked a couple of information
and warning messages to be more accurate or informative (see
NEWS for details. Finally, I've fixed a problem that caused
gdisk to return with a spurious "1" value.
- 0.8.10 (3/2/2014)—The previous previous version
introduced a bug: The hybrid MBR creation code in gdisk would
ignore the second and third partitions to be hybridized. This version
fixes that bug. It also fixes a bug that could cause incorrect
partition end points to be set on hybridized partitions that spanned
the 232-sector mark on disks. The program now refuses to
create hybridized partitions larger than 232 sectors.
sgdisk refuses to create hybridized partitions that span the
232-sector mark, and gdisk issues a warning when
asked to create such a partition that is otherwise legal. This version
fixes a bug that caused sgdisk to display an incorrect
partition number when the user specified an invalid value when
hybridizing partitions. Finally, this version enables the use of
0 as a value for a partition number to the
-u/--partition-guid commands if an earlier
-n/--new option created a new partition; in this
case, 0 refers to that newly-created partition.
- 0.8.9 (2/17/2014)—This version's most visible
new feature is three new type codes: 3000
(7412F7D5-A156-4B13-81DC-867174929325) for Open Network Install
Environment (ONIE) boot partitions, 3001
(D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149) for ONIE config partitions, and
ED01 (BFBFAFE7-A34F-448A-9A5B-6213EB736C22) for Lenovo's ESP-like
partition. The verify (v) function now checks for MBR
partitions (the 0xEE protective partitions or hybrid MBR partitions)
that don't fit on the disk. The GPT-destruction options (z in
gdisk, -z and -Z in sgdisk) now
wipe out the final few sectors on the disk rather than wherever the
backup GPT data are recorded as being. This is done to prevent wiping
out data mid-disk, which can otherwise happen if a RAID array is
resized in certain ways and the GPT data are not moved prior to wiping
the GPT data. The FixParts program had developed a bug in which it
complained that the 0xEE partition didn't begin on sector 1; this
version fixes that bug. Finally, this version removes the dependency on
libicu for UTF-16 support in partition names.
- 0.8.8 (10/14/2013)—This version has a number of
small improvements and bug fixes. These include two new type codes:
gdisk code 8302, or GUID
933AC7E1-2EB4-4F13-B844-0E14E2AEF915, which is used by Freedesktop.org
to auto-mount /home partitions; and gdisk code 4100,
or GUID 9E1A2D38-C612-4316-AA26-8B49521E5A8B, for the PowerPC PReP
boot partition. These type codes increase the number beyond the
capacity of an 80x24 display, so there's now a pause and a prompt to
continue after displaying 21 lines in gdisk or once the
screen fills (in cgdisk), but not in sgdisk. I've
fixed a bug that caused sgdisk to segfault when fed a
ridiculously large partiton number in its -i/--info
option, as well as a bug that could cause the program to hang when
generating hybrid MBRs with an extra partition to cover unused space
on an over-2TiB disk. I've also tweaked the verification (v)
behavior to not report errors when multiple 0xEE partitions are
present and to report the presence of a 0xEE partition that's marked
as bootable (but this is not counted as an error).
- 0.8.7 (7/8/2013)—Small improvements and bug
fixes mark this revision. Three new partition type codes have been
added, for freedesktop.org's
proposed $BOOT partition (bc13c2ff-59e6-4262-a352-b275fd6f7172; GPT
fdisk type code EA00), for the Intel Rapid Start partition
(D3BFE2DE-3DAF-11DF-BA40-E3A556D89593, code 8400), and for Haiku's BFS
(42465331-3BA3-10F1-802A-4861696B7521; code EB00). I've removed a stray
debug message that appeared when reading MBR disks. The "converting MBR
to GPT" message has been modified to clarify that changes are being
held in memory. The Mac version now works on /dev/rdisk*
devices as well as /dev/disk* devices. When used with
/dev/rdisk* devices, the partition table can sometimes be
re-read without rebooting or unplugging and re-inserting the disk.
Finally, cgdisk now supports a -a option, which works
similarly to the -a option in cfdisk: It alters
partition highlighting from using ncurses reverse video to using a ">"
symbol to the left of the partition that's highlighted. This can help
users of Braille and other output devices that don't work well with
- 0.8.6 (1/9/2013)—This version adds a number of
minor features, such as type codes for a Sony System Partition and for
VMWare ESX, a new check in the verification code, and support for
building under Solaris. It also includes a fix to the hybrid MBR
creation support that could cause it to omit the 0xEE partition under
some circumstances and a fix for a bug that could cause a crash when
passing a partition number of 0 via the -t option.
- 0.8.5 (5/30/2012)—This version makes a couple of
minor changes. The one you're most likely to notice is the introduction
of new partition type codes for Midnight BSD (A580–A585). I've
also changed how the program handles disk errors on writing a GPT
table, so that a disk sync is more likely to be performed. This is in
response to a problem that I suspect may have been caused by a virus
scanner blocking write access to the MBR on a Windows machine.
- 0.8.4 (3/25/2012)—Shortly after releasing 0.8.3,
I learned that my Ctrl+D fixes had been inadequate, so I'm releasing
this version. Previously, pressing Ctrl+D during entry of most text
(partition names or sector numbers, for instance) would lock the
program in an infinite loop; and launching gdisk in a Terminal
window via sudo and then closing the window would leave gdisk
running, consuming CPU time. This version fixes both of these problems.
- 0.8.3 (3/23/2012)—This version offers a few
minor improvements and bug fixes. The gdisk program now states
the name of the disk that's been modified after a write operation, and
a bug has been fixed that caused sgdisk to incorrectly
truncate the sizes of over-2TiB partitions on 32-bit (but not 64-bit)
systems. This version also improves the handling of Ctrl+D on some
systems and includes a fix to enable proper compilation under GCC 4.7.
- 0.8.2 (1/22/2012)—The most noticeable change in
this version for most users is the fact that the default value for the
first sector, when specifying a partition's start point in gdisk, is
now properly aligned. This saves the need for an automatic
alignment-related change if the user presses the Enter key for this
value. This version also fixes some minor bugs: It handles Ctrl+D
properly and it fixes improper handling some some partition tables
created by Solaris tools.
- 0.8.1 (10/1/2011)—This is a bug-fix version. It
includes a fix that corrects incorrect CRC alerts on disks created by
libefi in ZFS, a bug in partition-overlap code for MBR disks, and fixes
for some other very obscure problems. The program also now detects and
corrects infinite loops in MBR logical partition lists. See the
NEWS file for details.
- 0.8.0 (9/10/2011)—This version is most notable
for its addition of the cgdisk program to the GPT
fdisk family. cgdisk is a cfdisk workalike, and is
likely to be an easier introduction to partitioning for new users. This
version also provides some minor bug fixes and other changes; see the
NEWS file for details.
- 0.7.2 (6/26/2011)—This version adds two
important new features: generation of true GUIDs (vs. purely random
numbers) in the Windows version (the Linux, FreeBSD, and OS X versions
have created true GUIDs for quite a while); and support for a new
Linux-specific GUID type code. If you're having problems compiling the
software with ICU Unicode support under Linux, FreeBSD, or OS X, you
can now disable it; see the README file for details. This
version also includes a number of bug fixes; see the NEWS file
- 0.7.1 (3/21/2011)—This version adds support for
true UTF-16LE encoding in the partition name fields for the Linux,
FreeBSD, and OS X versions of the program. (The Windows version doesn't
include this support for reasons detailed in the
README.Windows file. Previous versions used a "quick and
dirty" method that only worked properly for ASCII characters. This
version should now work correctly for all Unicode characters; however,
it does depend on proper locale settings and font support. This version
also includes a few bug fixes, including one that prevented the
protected MBR from being written when restoring a GPT backup. See the
NEWS file for additional details.
- 0.7.0 (3/12/2011)—The big change with this
version is the FixParts utility (program name fixparts), which
is intended to repair certain types of broken MBR partition tables. See
the separate FixParts Web
page for details on this program. Also new in this version is
revamped MBR-creation code, a change to the minimum disk size that's
forced to a minimum 8-sector alignment to 300 GB, and assorted bug
fixes. See the NEWS file for details.
- 0.6.14 (1/8/2011)—This version features a few
minor bug fixes and improvements, including adding the ability to
specify partition start and end points in relative fashion in
sgdisk's -n (--new) option, a change to APM
detection code that will detect old APM data even if an MBR has been
written atop an APM disk, and the addition of three new ChromeOS GUID
partition type codes to those recognized by GPT fdisk.
- 0.6.13 (10/12/2010)—Minor bug fixes to the
GPT-to-MBR conversion motivate this release. Specifically, the previous
version did not permit any partitions to be logical when four or fewer
partitions were converted. This has been fixed, as has a bug that could
sometimes create an extended partition that overlapped with a primary
partition by one sector.
- 0.6.12 (10/7/2010)—This version features several
minor bug fixes and improvements. Most of these relate to the handling
of disks with logical sector sizes of other than 512 bytes. I've also
added support for "P" (pebibyte) suffixes for partition sizes (just in
case you've got a thousand-disk RAID array!) and I've fixed an obscure
bug that caused a segfault in sgdisk if you entered the (invalid) "-A
show" parameter. As usual, consult the NEWS file for more details.
- 0.6.11 (9/22/2010)—This version emphasizes
enhancements to disk verification and GUID entry features. The verify
(v in gdisk or -v/--verify in
sgdisk) function now checks for some common MBR problems,
including overlapping partitions and proper placement of the 0xEE
protective partition. There's also added protection against
accidentally creating a hybrid MBR or MBR conversion with duplicate
partitions, which was possible in previous versions. Entry of GUIDs in
separate chunks in gdisk is no longer supported (it was an
awkward method), and in sgdisk, the
-t/--typecode option now accepts either a hex code
value (e.g., 0700) or a GUID value. Finally, sgdisk adds a new
option, -F/--first-aligned-in-largest, which returns
the first usable partition, given the current alignment value,
in the largest block of free sectors. This is similar to the
-f/--first-in-largest function, but probably more
useful in practice.
- 0.6.10 (8/22/2010)—New in this version is
support for changing partition attributes using sgdisk (via
the -A/--attributes option) and the ability to copy
one disk's partition table to another disk in both sgdisk and
gdisk (via -R/--replicate in sgdisk
or u on gdisk's experts' menu). There are also a
number of bug fixes, including one for backwards interpretation of
attribute values in gdisk, improper destruction of MBR boot
code when creating a hybrid MBR, and an inaccessible
-C/--recompute-chs option in sgdisk.
- 0.6.9 (7/4/2010)—This version fixes a major
bug in GPT fdisk's hybrid MBR creation. The bug caused incorrect
end-sector (length) values to be created for the protective (0xEE)
partition. This bug does NOT affect the standard protective MBR on
- 0.6.8 (5/23/2010)—This version implements a
number of minor new features and bug fixes. Most notably, the
h experts' menu option (-C or
--recompute-chs in sgdisk) recomputes all the CHS
values in the MBR; the new -N or --largest-new
sgdisk option creates a single partition that fills the
largest available space; a new f experts' menu option
(-G or --randomize-guids in sgdisk)
randomizes all a disk's GUIDs; and
-U/--disk-guid options in sgdisk enable
setting partition and disk GUIDs. There are also fixes to enable the
program to compile in FreeBSD and Microsoft Visual C++ (both were
broken in 0.6.7), a minor sgdisk man page correction to
--change-name, and new tests to prevent accidetally opening a
directory or certain other file types as a disk device.
- 0.6.7 (5/1/2010)—GPT fdisk is now over a year
old! This version is a minor bug-fix release. The most important bug to
be squashed is one that caused a segfault on startup with certain rare
bad partition tables. Others include a bug that produced incorrect
partition number reports for some verification problems and a bug that
caused a ridiculous claim of petabytes of free space on disks of 0 size
(such as empty files or at least one user's malfunctioning hard disk).
- 0.6.6 Spanish—David García Barrero
(firstname.lastname@example.org) has contributed a Spanish translation of version
0.6.6 of GPT fdisk. Check the 0.6.6 folder of the GPT fdisk Sourceforge
page to locate it.
- 0.6.6 (3/21/2010)—I've released this version
mainly to get some new partition-alignment code out there.
Specifically, I see that Western Digital now has a "640GB" (~596GiB)
Advanced Format drive, and I don't want its users to be burned by
misaligned partitions. Following discussions with a user and some
additional research, I've also found that 1MiB (2048-sector) alignment
is a good idea with some types of RAID array. Therefore, I've changed
GPT fdisk to use a 2048-sector alignment by default on new drives,
although the program attempts to identify and use smaller alignment
values on disks that are already partitioned with them. Other changes
include naming two new attribute bits (as per UEFI 2.3 specifications)
and changing the behavior when the user specifies restoring a backup
file that doesn't exist. As usual, you should consult the CHANGELOG
file for details.
- 0.6.5 (3/7/2010)—The big new feature in this
version is the ability to perform a GPT-to-MBR conversion with the
possibility of placing logical partitions on the converted disk. This
ability is dependent upon the presence of free (unallocated) space
before each to-be-logical partition, though, so it's not guaranteed to
convert every partition on every disk. It also obviously doesn't
overcome the 2 TiB limit. See the updated Converting to or from GPT page for details. The
Windows version also now works on disks with other-than-512-byte sector
sizes. There are also a few other minor improvements and bug fixes; see
the CHANGELOG file for details.
- 0.6.4-2 (2/20/2010)—The initial 0.6.4 release
compiled fine on my test systems, which use GCC 4.3.x, but
restructuring of GCC header files in GCC 4.4.x necessitated a minor
change, so I released it as 0.6.4-2. I also incorporated a
user-submitted patch to the Makefile to have the compiler pass on the
user's CXXFLAGS and similar environment variables at compile time. Note
that this doesn't affect the compiled program (depending on environment
variables), so I've not released new binaries on Sourceforge. This
release is purely to help users compile the software locally with GCC
- 0.6.4 (2/19/2010)—This version makes a number of
minor improvements and fixes a number of minor bugs. The biggest
improvements are the addition of a transpose option (to change
partition numbers) in both gdisk and sgdisk and the
addition of the ability to create hybrid MBRs and to convert from GPT
to MBR in sgdisk (this function has long been present in
gdisk). Bug fixes include one that prevented the Windows
version from saving backup files and a number related to
sgdisk options. See the CHANGELOG file for details.
- 0.6.3 (2/3/2010)—This version fixes a major
data-corruption bug on big-endian systems (PowerPC, for instance).
You should not use earlier versions of GPT fdisk on such
systems! At one time it did work, but the bug crept in
somewhere along the line. This bug does not affect the program
when compiled on little-endian (x86, x86-64, etc.) systems. This
version also introduces some changes to the GUID code, including fixing
some duplicate GPT internal type code duplicates and changing the
random GUID generation function to use libuuid, which should produce
more technically correct GUIDs than the simple random number generator
I'd been using before. (The Windows version continues to use the simple
random number generator, though.)
- 0.6.2 (1/29/2010)—This version employs a number of
minor bug fixes and improvements, mostly related to the detection and
handling of damaged GPT data structures. The t (change type
code) option also now changes the partition's name if and only
if the current name is identical to the original type code's
generic name. The biggest change is the addition of Windows support.
The current source compiles using the MinGW compiler (I used the Linux
cross-compiler version); I don't know if it will compile with anything
- 0.6.1 (1/20/2010)—This is a bug-fix release that
fixes three bugs: Run under 32-bit (x86) FreeBSD, the previous version
reported incorrect disk sizes; under any FreeBSD version, it couldn't use
disk images; and its BSD disklabel conversion incorrectly reported that
the BSD disklabel was of an unknown type.
- 0.6.0 (1/15/2010)—Two important changes appear with
this version: Support for disks with logical sector sizes other than
512 bytes and the new sgdisk program. I've used a magneto-optical (MO)
drive with 2048-byte sectors to develop the non-512-byte sector size
code. In theory, it should work with other sector sizes, but 512 and
2048 are the only ones I've tested. One caveat: Through at least
version 220.127.116.11, a Linux kernel bug prevents use of disks with
other-than-512-byte sectors. I found a patch for this bug here.
Alternatively, you can download the modified efi.c
file, place it in /usr/src/linux/fs/partitions, and recompile
your kernel. If this is over your head, you'll need to wait for your
distribution to incorporate this patch. FreeBSD, Mac OS X, and Windows
are unaffected by this bug. The sgdisk program is a command-line tool
with a subset of gdisk's features. It's intended for use in scripts
(backup/restore scripts, scripts to prepare large numbers of disks in
uniform ways, etc.). It's also very new. Although sgdisk uses the same
code as gdisk for all data structures and functions, the user interface
is new and is arguably not as clean as it should be. Bug reports and
suggestions for improvement are welcome. You'll need the popt
development headers to compile sgdisk (libpopt-dev or something
similar). The popt run-time libraries are installed on most systems by
default, so nothing new should be required if you install a binary
package. In addition to these new features, this version includes a few
bug fixes and very minor changes. The most notable bug fix is one that
causes the convert-to-MBR function to work again (it broke a few
versions back and I didn't notice it until recently). I also found that
the logical/physical sector detection code wasn't working, so I've
switched to using the 8-sector boundaries on drives larger than 800 GiB
and 1-sector boundaries on smaller drives. This seems reasonable since
the Advanced Format drives are all 1 TiB or larger.
- 0.5.3—This version fixes bugs in the display of
GUID values when gdisk is compiled with some versions of GCC.
The program also now detects the number of logical sectors per physical
sector with Linux 2.6.32 and later, but not with earlier Linux kernels,
FreeBSD, or OS X.
- 0.5.2—The appearance of Western Digital drives
using the Advanced Format feature motivated this version, which aligns
partitions on 4KiB (8-sector) boundaries by default. As described on
the Partitioning Advice page, this alignment
improves performance (or perhaps minimizes performance degradation) on
such disks. The 'l' and 'd' experts' menu options change and display
the number of sectors used in the alignment blocks.
- 0.5.1—This version fixes some bugs related to the
expansion of hardware RAID arrays. When disks are added to hardware
RAID arrays, the backup GPT header and partition table will appear to
be somewhere earlier than the end of the disk, and previous versions
became confused by this. Version 0.5.1 handles this situation better,
and the 'e' option on the experts' menu will move the backup data
structures to the end of the disk, where they belong. Note that if a
RAID array has been fully allocated and a disk is added, it will be
impossible to add more partitions until this operation is performed.
- 0.5.0—The bump to version 0.5.0 mostly
reflects a new menu structure, which includes the main menu and
the experts' menu from previous versions, along with a recovery
& transformation menu. Other new features include a new
GPT-to-MBR conversion, the ability to reload an MBR as a way
of creating a new GPT, and generation of valid CHS values when
creating hybrid MBRs or in the new GPT-to-MBR conversion. This
version also incorporates a few bug fixes, including a fix for
one that could cause data loss when using the "zap" function
in version 0.4.2.
- 0.4.2—The only significant new feature in this
version is the ability to work on disk image files as well as actual
disks. This feature is intended to enable editing of disk images used
in emulators, although you'll only be able to work on "raw" disk
images, not the more advanced formats used by QEMU, VMWare, etc. This
version also includes a number of minor bug fixes and feature
improvements, such as additional prompts or warnings in certain
potentially destructive commands.
- 0.4.1—Two improvements appear in this version:
First, the method of specifying partition start and end points has been
expanded to enable both absolute and relative sector specifications.
See the Walkthrough page for details.
Second, hybrid MBR synchronization has been improved. If you delete a
GPT partition for which a corresponding MBR partition exists, the
corresponding partition is deleted and, if possible, the protective
0xEE (EFI GPT) partition is expanded to fill the newly freed disk
space. MBR/GPT correspondence checks have also been added to the verify
(v on the main menu) command and before writing disk changes.
- 0.4.0—This version marks some major extensions to
GPT fdisk: It now runs correctly on big-endian systems (an ancient
PowerPC running Linux is my test platform) and it compiles and runs
correctly on FreeBSD. I've also added support for converting BSD
disklabels to GPT format—but BSD disklabels are tricky, so use that
feature cautiously. (See the updated Converting
to GPT page for details.) New partitions are now given a default
name based on the partition type. This version also includes several
smaller bug fixes and some code reorganization.
- 0.3.4—Fixed a few minor bugs, including one that
enabled accidental entry of MBR partition type 0x00 during hybrid MBR
creation and another that prevented acceptance of default end sector
number under certain conditions when creating new GPT partitions. Added
Debian binary packages to distribution set.
- 0.3.3—This version gives the user the ability to
specify whether to create the EFI GPT (0xEE) partition before or after
other partitions in a hybrid MBR configuration.
- 0.3.2—This version adds a couple of new features,
namely the ability to create a hybrid MBR and the ability to clear the
GPT data structures from a disk (in case you want to re-use it as an
MBR or some other type of disk). See the Hybrid
MBRs section of this document for details on that feature.
- 0.3.1—This version fixes a few bugs, including
one that could cause a segfault under specific circumstances. It
also adds Mac OS X support, thanks to two anonymous contributors.
- 0.3.0—This version added the ability to enter "raw"
GUIDs as a single string rather than as five separate numbers. It also
fixed a few very minor bugs. I bumped up the second version number from
2 to 3 and called this version the first beta release because I'd
received several reports of successful uses of earlier versions of the
program and no bug reports, aside from one compilation issue. I also
added precompiled RPMs for 32-bit (Fedora 11) and 64-bit (OpenSUSE 11)
- 0.2.2—Fixed a compilation problem with GCC 4.4.0.
- 0.2.1—This was the first version released on
Sourceforge and on my own Web page. It fixed a number of minor
bugs, added a few partition type codes, and cleaned up the code
- 0.2.0—This was the first version to be shown
to anybody aside from myself.
Additional details can be found in the NEWS file in the main
tarball (or other package files).
Return to "GPT fdisk" main page
If you have problems with or comments about this web page, please
e-mail me at
Return to my main web page.