Revisions
Last Web page update: 8/22/2010
The following summarizes changes in GPT fdisk's public releases:
- 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 CHANGELOG 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.