GPT fdisk Revisions
Last Web page update: 4/14/2022
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 $1.00 |
Donate $2.50 |
Donate $5.00 |
Donate $10.00 |
Donate $20.00 |
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.9 (4/14/2022)—This version implements some
bug fixes and minor improvements:
- Added support for aligning partitions' end points. This feature
affects the default partition size when using n in
gdisk; it affects the default partition size in
cgdisk; and it's activated by the new -I option in
sgdisk. See the programs' respective man pages for details.
This feature is intended to help with LUKS2 encryption, which reacts
badly to partitions that are not sized as exact multiples of the
encryption block size.
- Added several new partition type codes:
- FreeBSD nandfs (0xa506)
- Apple APFS Pre-Boot (0xaf0b)
- Apple APFS Recovery (0xaf0c)
- ChromeOS firmware (0x7f03)
- ChromeOS mini-OS (0x7f04)
- ChromeOS hibernate (0x7f05)
- U-Boot boot loader (0xb000)
- 27 (!) codes for Fuchsia (0xf100 to 0xf11a)
- Added the ability to build sgdisk and cgdisk for
Windows.
- Created a consolidated Makefile for Linux, FreeBSD,
Solaris, macOS, and Windows (both 32- and 64-bit). This should
replace the need for separate Makefile.platform
files, but for the moment they remain in the project, in case there
are problems with the new one. The old platform-specific files are
deprecated, though, and are likely to be removed soon.
- Added a check for too-small disks (most likely to be an issue when
trying to use a too-small disk image); program now aborts if this
happens.
- Removed stray debugging code that caused partNum is
x to be printed when changing a partition's name with
sgdisk.
- Fixed build problems with recent versions of ncurses.
- Fixed bug that caused cgdisk to report incorrect partition
attributes.
- 1.0.8 (6/9/2021)—This version implements some bug
fixes and minor improvements:
- Fixed double byte swap operation on writing partition label data on
big-endian CPUs. This resulted in partition names becoming gibberish
on such CPUs. Note that this is distinct from the double byte swap
bug fixed in version 1.0.7, which affected reads of partition
label data.
- Added a feature to enable swapping the byte encoding of partition
label data to gdisk and sgdisk. This feature can
correct for incorrectly-encoded partition names created by GPT fdisk
1.0.7 or earlier on big-endian computers, or if any other
partitioning software has a similar bug. This feature is accessed
using the b option on the experts' menu in gdisk
or by using the -B/--byte-swap-name option in
sgdisk. The former prompts for the partition number (unless
there's only one) and asks for confirmation. The latter requires a
partition number as an option and changes the byte order
unconditionally.
- Added a new type codes (0xbb00) for the Barebox boot
loader (GUID 4778ED65-BF42-45FA-9C5B-287A1DC4AAB1).
- Did some trivial code cleanup.
- 1.0.7 (3/10/2021)—This version implements some bug
fixes and minor improvements:
- Fixed a bug that caused spurious warnings about the partition
table header claiming an invalid size of partition entries when
reading some MBR disks.
- Fixed double byte swap operation on partition label data on
big-endian CPUs. This resulted in partition names becoming gibberish
on such CPUs.
- Added ARM64 as an architecture for the Mac builds of gdisk
and fixparts. The official GPT fdisk binaries of these
files for macOS are now "universal" x86-64/ARM64 binaries, so they
will run natively on the new M1 (ARM64) Macs. The sgdisk
and cgdisk binaries, though, remain built only for x86-64,
because they rely on libraries that are not easily built in
"universal" form.
- Added three new type codes:
- 0x0701 - Microsoft Storage Replica
- 0x0702 - ArcaOS Type 1
- 0x8401 - Storage Performance Development Kit (SPDK) block device
- 1.0.6 (1/13/2021)—This version implements some bug
fixes and minor improvements:
- Fixed a bug that could cause a segfault if the GPT header claimed
partition entries were oversized.
- Fixed a bug that could cause a crash if the logical partitions
on an MBR disk were mis-numbered.
- Fixed a bug that caused 32-bit versions of GPT fdisk for Unix-like
OSes (including Linux) to fail when handling disks over 4 TiB in
size.
- Fixed FreeBSD compilation, which broke somewhere along the way.
- Renamed the "Freedesktop $BOOT" partition to "XBOOTLDR partition",
as the latter is now the official name used in Freedesktop
documentation.
- Added several new type codes for Freedesktop definitions
(0x8312 through 0x831C).
- 1.0.5 (2/17/2020)—This version adds a number
of enhancements and bug fixes, and two sad removals:
- First, the sad news: The UEFI GPT fdisk
library hasn't been updated since 2016, and I've found that it
no longer compiles gdisk. (Even with the previous release,
I had to use a four-year-old Ubuntu 14.04 installation to get it to
work; but even that's failed now.) I'm therefore removing the EFI
binary of gdisk. The version 1.0.4 binary build should
still work, though.
- Apple seems to no longer support building for 32-bit or "fat" binary
targets. As I recently rebuilt my Mac development environment, this
means I've been forced to build GPT fdisk for macOS for 64-bit
only.
- I've changed the number of columns in the type code output (the
L option in the gdisk menu, and equivalents in
sgdisk and cgdisk) from three to two. This should
make longer partition descriptors more legible.
- Partition type description searches are now case-insensitive.
- It's now possible to exit out of the partition type code listing
by typing q at the page-break prompt.
- When changing a partition type code, the default is now the
current type code, rather than a platform-specific code.
- Multiple new type codes have been added for Freedesktop.org's
Discoverable Partitions Specification, Container Linux, and
Veracrypt.
- It's now possible to put the type-0xEE partition last in a hybrid
MBR created with sgdisk. (Previously, this was possible via
gdisk, but not via sgdisk.) See the
sgdisk man page for details.
- Some small typos and formatting issues have been corrected in man
pages.
- The Makefile has been changed to add $(LDLIBS)
support, thus enabling clean static builds.
- 1.0.4 (7/6/2018)—This version provides a number
of new features and fixes some theoretical or obscure bugs:
- A total of 74 new type codes have been added to the program, mostly
for Android and Ceph partitions; but one is for Apple's new APFS.
- Because of the large number of new type codes, I've added a
search/filter feature to the type code list function
(L on gdisk's main menu or when you're
prompted to enter a type code). This search is case-sensitive and
filters the results based on the type code's description. Type
Linux to see Linux partitions, Apple
to see Apple partitions, and so on.
- A message that had read Creating new GPT entries now adds
in memory, so as to clarify that the disk is not being
modified.
- I've updated my Mac environment to macOS 10.13 and the latest
development tools. This change necessitated updating some
third-party tools, and unfortunately, the popt library I
installed didn't support building "fat" (combined 32/64-bit)
binaries. Thus, my macOS build of sgdisk is 64-bit only. (I
used the brew version of
popt, which you'll need if you want to run my
sgdisk binary under macOS.) My cgdisk and
gdisk builds for macOS remain "fat," and so should run on
both 32- and 64-bit installations; but I've not tested on a 32-bit
computer. At this point, I'm officially deprecating 32-bit support
for all the macOS binaries.
- GPT fdisk now reports more details about what data structures are
damaged when a damaged disk is detected.
- A number of changes have been made to fix bugs that are theoretical
or obscure. See the NEWS file for details.
- 1.0.3 (7/27/2017)—Barely a day after the release
of version 1.0.2, I discovered a serious bug that caused gdisk
to create improper GPT data structures when partitioning a disk "from
scratch." This version fixes that bug. Do not use version 1.0.2!
- 1.0.2 (7/26/2017)—This version provides
some new features, several new partition type codes, and one minor
bug fix:
- A stray debug message ("REALLY setting name!") has been
removed from sgdisk.
- On Linux, the p option in gdisk and the
-p/--print option in sgdisk now display
the model name of the hard disk, when possible. This feature does
not yet exist on other OSes.
- On Linux (with 2.6.32 and later kernels), gdisk and
sgdisk can now report both logical and physical sector
sizes. This mainly affects the
p/-p/--print display, but if you try to
set an alignment value that's not a multiple of the ratio of the
physical to logical sector size, the program will issue a warning.
It also now uses the larger of the specified alignment value or this
ratio when checking for improper alignment in the
v/-v/--verify operation.
- A new feature, activated by j on the experts' menu in
gdisk or
-j/--move-main-table=sector in
sgdisk, enables moving the main (primary) partition table
from its standard location starting on sector 2. This feature should
not be used casually! Its purpose is to open an unallocated
gap where some system-on-chip (SoC) computers insist on placing
their boot loaders. Moving the partition table results in the first
usable sector value also being increased (unless the partition table
is shrunk by a corresponding value). The verify operation will warn
upon encountering a disk with such a gap.
- Several new type codes have been added:
- Four type codes (0xAF06 through 0xAF09) for Apple SoftRAID
(Status, Scratch, Volume, and Cache)
- Two type codes (0xE100 and 0xE101,
7412F7D5-A156-4B13-81DC-867174929325 and
D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149) for the Open Network
Install Environment (ONIE) boot and configuration partitions,
respectively
- Thirteen type codes (0xA000 through 0xA00C) for Android
partitions
- One type code (0xB300, CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1)
for QNX6 (aka QNX Power-Safe) filesystems
- 1.0.1 (10/18/2015)—New type codes, small bug
fixes, and changes to the OS X build for OS X 10.11 ("El Capitan")
dominate the changes in this version. Bug fixes include one that caused
-N/--largest-new to break in sgdisk; a
failure of sgdisk to return the correct error code when it
encountered a write error; an under-reporting by one sector of the size
of partitions in cgdisk's Info display; a problem that caused
random crashes on PPC64EL systems (and that might have affected others,
too); and a fix of keyboard input glitches in the EFI version of
gdisk. Although it might not be considered a bug, I've changed
the behavior of the -z/--zap and
-Z/--zap-all options to sgdisk so that
subsequent changes on the same command line are written to disk.
(Previously, subsequent commands would be ignored.) Type code changes
include an addition of 0x8307 (69DAD710-2CE4-4E3C-B16C-21A1D49ABED3)
for 32-bit ARM Linux root (/) partitions; 0x3900
(C91818F9-8025-47AF-89D2-F030D7000C2C) for Plan 9; 0xBC00
(0311FC50-01CA-4725-AD77-9ADBB20ACE98) for Acronis Secure Zone backup
partitions; removal of the old 0xA6601 type code and change of 0xA600
to refer to 824CC7A0-36A8-11E3-890A-952519AD3F61 for OpenBSD
disklabels; and a change in the default name of 0xAB00 partitions from
Apple boot to Recovery HD, since that's what Apple
uses for this type and OS X tends to misbehave if it see another value
for this name. I've shifted my Mac build environment from an ancient
10.6 installation to a new one built atop OS X 10.11, LLVM 7.0.0, and
popt and ncurses from MacPorts. The binary is now a
"fat" (32- and 64-bit) program, rather than 32-bit only, and the
package now installs files under /usr/local (which OS X
likes), rather than the Unix-standard /usr (which OS X 10.11
now forbids). This final change should make GPT fdisk work better with
OS X 10.11; however, that version of OS X includes a new feature,
called System Integrity Protection, or "rootless," that makes it
impossible for GPT fdisk to save changes to your hard disk. If you
encounter this problem, you can disable System Integrity Protection, as
described here
and here.
gdisk provides a pointer to the second site if it detects that
it can't write to your disk. Alternatively, you can run GPT fdisk from
a Linux emergency disk. Finally, the OS X packages now include
uninstall-gdisk and uninstall-fixparts scripts, which
remove their programs from both the old and new locations. (Users
sometimes ask how to do this, which is more tedious under OS X than in
most OSes; and the installation packages now call these scripts to
erase the programs from old locations prior to installing new files, to
avoid the confusion of having two versions installed simultaneously.)
- 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
-A/--attributes, -c/--change-name,
-t/--typecode, and
-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
ncurses-style highlighting.
- 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
for details.
- 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
non-hybrid disks.
- 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/--partition-guid 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
(dgbarrero@gmail.com) 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
4.4.x.
- 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
else.
- 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 2.6.32.3, 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)
distributions.
- 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
a bit.
- 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
rodsmith@rodsbooks.com. Thanks.
Return to my main web page.