blob: ef45f9de8932a3d95b6424b6f66843e001a5c796 [file] [log] [blame]
Roderick W. Smith946866e2014-03-02 13:33:44 -050010.8.10 (3/2/2014):
2------------------
Roderick W. Smith9b338c52014-02-20 11:13:36 -05003
Roderick W. Smithd28495e2014-03-02 11:37:20 -05004- Added feature to sgdisk's -A/--attributes, -c/--change-name,
5 -t/--typecode, and -u/--partition-guid commands: If a -n/--new option
6 with "0" as the partition number precedes these options on the command
7 line, passin "0" as the partition number to the following options causes
8 them to use the newly-created partition. For instance, "sgdisk -n
9 0:0:+550M -t 0:EF00 /dev/sda" creates a new partition with a type code of
10 EF00. (Previous versions would ignore the "-t 0:EF00" option.)
11
Roderick W. Smith820d1d02014-02-20 13:25:22 -050012- Fixed bug that caused incorrect partition number to be displayed by
13 sgdisk in error messages when the user specified a non-existent partition
14 for inclusion in a hybrid MBR or conversion to a conventional MBR.
15
Roderick W. Smith9b338c52014-02-20 11:13:36 -050016- Fixed new (in 0.8.9) bug that caused a failure to create more than one
17 hybridized partition when creating a hybrid MBR.
18
Roderick W. Smith820d1d02014-02-20 13:25:22 -050019- Fixed bug that caused gdisk and sgdisk to create hybridized partitions
Roderick W. Smitha345a922014-02-22 12:12:32 -050020 that ended at or above the 2^32 sector point with incorrect end values.
21 The behavior now varies between gdisk and sgdisk: gdisk now creates
22 hybrid partitions that begin below 2^32 sectors and that are smaller than
23 2^32 sectors, since this is technically legal; but gdisk displays a
24 warning, because some OSes (such as DOS, Windows XP, OS/2, and BeOS)
25 misbehave with such partitions. AFAIK, only Linux, FreeBSD, and Windows 7
26 work properly with such partitions. Because of this fact and because
27 sgdisk is a more automated tool, it's stricter in how it handles things:
28 It refuses to create a hybrid partition if the original ends at or above
29 the 2^32 sector mark.
Roderick W. Smith9b338c52014-02-20 11:13:36 -050030
Roderick W. Smith84aaff62014-02-17 16:17:11 -0500310.8.9 (2/17/2014):
32------------------
33
34- Removed dependency on libicu for UTF-16 support.
Roderick W. Smithb784e0c2014-01-25 22:55:26 -050035
Roderick W. Smith22e88b52014-02-17 12:07:02 -050036- Fixed spurious "0xEE partition doesn't start on sector 1" warning in
37 FixParts (and perhaps in other programs under some circumstances).
38
Roderick W. Smith84aaff62014-02-17 16:17:11 -050039- Added GPT regeneration command to GPT-destruction options ('z' in gdisk,
40 -z and -Z options to sgdisk). This is done to avoid wiping out data
41 mid-disk that might not be backup GPT data structures, which could
42 otherwise occur if a RAID array was resized in certain ways.
Roderick W. Smith5435fcf2014-02-17 12:01:51 -050043
Roderick W. Smith4a702a22014-01-25 23:46:42 -050044- Added check for an oversized 0xEE protective partition. The program now
45 auto-repairs this condition on loading if the GPT data seem otherwise
46 valid. This is done because I've been receiving reports of some disks
47 (possibly from some OEM Windows 8 loads) that violate the GPT spec in
48 this way, and gdisk was reporting write errors when saving data.
49
50- If the GPT data seem to be damaged in some way or if the disk seems to
51 be a hybrid MBR and if the MBR partition(s) don't fit on the disk, the
52 verify (v) function now warns of this condition, and writing the disk if
53 it exists also displays a more specific error message about the problem.
54
55- Added new type codes (3000, 7412F7D5-A156-4B13-81DC-867174929325 and
56 3001, D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149) for Open Network Install
57 Environment (ONIE) boot and config partitions, respectively.
58
Roderick W. Smithb784e0c2014-01-25 22:55:26 -050059- Added new type ccde (ED01, BFBFAFE7-A34F-448A-9A5B-6213EB736C22), for
60 Lenovo's ESP-like partition.
61
Roderick W. Smithf6a88a12013-10-14 13:20:41 -0400620.8.8 (10/14/2013):
Roderick W. Smithb784e0c2014-01-25 22:55:26 -050063-------------------
Roderick W. Smithaf39cb42013-08-06 15:23:46 -040064
Roderick W. Smith24bba6e2013-10-12 19:07:16 -040065- Fixed bug that could cause segfault when passing an invalid partition
66 number to sgdisk's -i/--info command.
67
Roderick W. Smith0fde58b2013-10-10 22:28:17 -040068- Added new type code: 933AC7E1-2EB4-4F13-B844-0E14E2AEF915, or gdisk code
69 8302, for Linux /home partitions. This type code is used by recent
70 versions of systemd to permit /home to be auto-mounted; see
71 http://www.freedesktop.org/software/systemd/man/systemd-gpt-auto-generator.html
72 for details.
73
74- Added new type code: 9E1A2D38-C612-4316-AA26-8B49521E5A8B, or gdisk code
75 4100, for PowerPC PReP (PowerPC reference platform) boot.
76
Roderick W. Smithe3ee7332013-09-24 12:56:11 -040077- The number of partition type codes has grown large enough that it fills
78 an 80x24 display. I've therefore added a pause (with a prompt to hit
79 <Enter>) to display more items after showing 21 lines in gdisk or after
80 the screen has nearly filled with entries in cgdisk. There's no such
81 pause/prompt in sgdisk, though.
82
Roderick W. Smith427c7992013-09-12 12:37:44 -040083- Fine-tuned verification ('v') check for 0xEE partition that doesn't begin
84 on sector 1: Previously, a disk with multiple 0xEE partitions would
85 always trigger this warning. Now, the warning occurs only if NONE of the
86 0xEE partitions begins on sector 1.
87
88- Fixed hybrid MBR creation on disks larger than 2TiB: Previously, if one
89 opted to create an extra partition to cover unused space following
90 hybridized partitions, gdisk would hang.
91
Roderick W. Smith042f38a2013-08-31 17:40:15 -040092- Added check for an active/bootable 0xEE protective partition to the
93 verify ('v') function. If found, this is not counted as an error, but
94 it is called out to the user, since it can cause some EFIs (such as
95 VirtualBox's EFI) to ignore the disk.
Roderick W. Smithaf39cb42013-08-06 15:23:46 -040096
Roderick W. Smithe09ef882013-07-08 22:56:00 -0400970.8.7 (7/8/2013):
srs5694f5dfbfa2013-02-14 20:47:14 -050098-----------------
99
Roderick W. Smithe09ef882013-07-08 22:56:00 -0400100- Modified Mac version so that it can work on /dev/rdisk* devices as well
101 as /dev/disk* devices. The result is that, when using the /dev/rdisk*
102 devices, the partition table can sometimes be re-read without removing
103 the disk or rebooting.
104
105- Added "-a" option to cgdisk to use a ">" symbol to the left of the
106 selected partition rather than ncurses highlighting.
107
Roderick W. Smith1eea9b02013-07-06 22:52:58 -0400108- Modified "converting MBR to GPT" message to clarify that the conversion
109 is being held in memory, since some people have mistakenly assumed that a
110 "gdisk -l" operation will change an MBR disk to a GPT disk without
111 prompting.
112
113- Added partition type code for freedesktop.org's proposed $BOOT partition
114 (bc13c2ff-59e6-4262-a352-b275fd6f7172; GPT fdisk type code EA00)
115
srs5694f5dfbfa2013-02-14 20:47:14 -0500116- Adjusted alignment code when using -n or -N in sgdisk to keep the
117 requested partition size (if specified using +###{MGT} terminology)
118 as the requested value rather than relative to the requested start
119 point. This gives you the requested partition size rather than be
120 slightly smaller if sgdisk needs to adjust the start point up a bit and
121 it prevents gaps from appearing between partitions if several are created
122 in succession using automatic placement of the start point.
123
124- Fixed small bugs in gdisk_test.sh script.
125
126- Removed stray debug message that would appear when reading MBR disks.
127
Roderick W. Smith1eea9b02013-07-06 22:52:58 -0400128- Added partition type code for Intel Rapid Start partition (GUID
129 D3BFE2DE-3DAF-11DF-BA40-E3A556D89593, code 8400), used by systems that
srs5694f5dfbfa2013-02-14 20:47:14 -0500130 implement Intel's Rapid Start technology. See
Roderick W. Smith1eea9b02013-07-06 22:52:58 -0400131 http://blog.adios.tw/2012/10/funtoo-linux-and-intel-rapid-start.html or
132 http://mjg59.dreamwidth.org/26022.html.
srs5694f5dfbfa2013-02-14 20:47:14 -0500133
134- Added partition type code for Haiku BFS (GUID
135 42465331-3BA3-10F1-802A-4861696B7521; code EB00).
136
srs56940741fa22013-01-09 12:55:40 -05001370.8.6 (1/9/2013):
138-----------------
139
140- Fixed a bug that could cause sgdisk to crash when passing a partition
141 number of 0 to the -t option.
142
143- Added support for building under Solaris.
srs5694d8eed462012-12-15 01:55:21 -0500144
145- Added a new check to the verification code.
146
147- Added partition type code for Sony system partition
148 (F4019732-066E-4E12-8273-346C5641494F). I'm not entirely clear what this
149 is used for, but it's appearing on some new Sony computers.
150
151- Tweaked hybrid MBR creation options to fix a problem that caused the main
152 0xEE MBR partition to NOT be created if the user told gdisk to NOT place
153 it at the start of the disk AND IF fewer than three partitions are
154 hybridize AND IF the user opted to create a second protective partition.
155
156- Changed default build options for Mac OS X to *NOT* use libicu,
157 since it seems to have broken somewhere along the line. It still
158 works on Linux, though.
159
160- Added partition type codes for VMWare ESX (FB00, FB01, and FC00).
161
srs56944307ef22012-05-30 12:30:48 -04001620.8.5 (5/30/2012):
srs5694fa3868e2012-03-28 01:45:57 -0400163------------------
164
srs56944307ef22012-05-30 12:30:48 -0400165- Changed code that writes the partition table so that a disk sync
166 operation occurs even if one or more write operations failed (but not if
167 they all failed). This is intended to work around a bug that a user
168 reported on a Windows system on which the write of the protective MBR
169 failed, although everything else worked. (I suspect anti-virus software
170 may have been blocking write access to the MBR.)
171
srs5694fa3868e2012-03-28 01:45:57 -0400172- Added type codes for Midnight BSD (0xA580 - 0xA585). I used these codes
173 because Midnight BSD uses the same 0xA5 type code as FreeBSD on MBR
174 disks, so I'm starting Midnight BSD's numbering halfway through the
175 0xA5## range.
176
srs5694a6297b82012-03-25 16:13:16 -04001770.8.4 (3/25/2012):
178------------------
179
180- REALLY fixed Ctrl+D problems! Now gdisk terminates upon receiving a
181 Ctrl+D. In all previous versions, it could lock itself into a CPU-hogging
182 loop if launched via "sudo" from a terminal window that was then closed
183 or if Ctrl+D was pressed at certain input prompts (for a partition name
184 or sector number, for instance).
185
srs569434882942012-03-23 12:49:15 -04001860.8.3 (3/23/2012):
srs5694e842bc12012-02-03 11:27:05 -0500187------------------
188
srs569434882942012-03-23 12:49:15 -0400189- Fixed compilation problem on GCC 4.7.
190
191- Improved handling of Ctrl+D on some systems.
192
193- Added disk's name to message stating that a disk write was successful.
194
195- Fixed bug that caused creation of >2TiB partitions on 32-bit systems to
196 be truncated in sgdisk.
srs5694e842bc12012-02-03 11:27:05 -0500197
1980.8.2 (1/22/2012):
srs5694dcebe572012-01-22 15:03:42 -0500199------------------
srs56940541b562011-12-18 16:35:25 -0500200
srs5694706e5122012-01-21 13:47:24 -0500201- Adjusted the code to support a number of partitions that's not a multiple
202 of the number of partition table entries that fits in a sector (normally
203 4 per sector). The program still rounds up, when necessary, when resizing
204 the partition table manually, but not when loading a partition table that
205 contains a peculiar number of partitions. This helps prevent spurious
206 error messages about CRC problems when loading some Solaris partition
207 tables.
208
srs5694e69e6802012-01-20 22:37:12 -0500209- Fixed bugs relating to the handling of empty partitions; Solaris's ZFS
210 tools create weird empty partitions that are legal but that gdisk wasn't
211 handling properly. (Specifically, they sometimes have non-zero end
212 points; gdisk assumed empty partitions had end points of 0.)
213
srs56940541b562011-12-18 16:35:25 -0500214- Fixed a bug that caused an infinite loop of input prompts if the user
215 pressed Ctrl+D.
216
217- Changed gdisk's first-sector input operation to specify a sector number
218 that's properly aligned as the default value. This eliminates the need
219 to alter that value and notify the user of the change when the user
220 hits "Enter" for the default value as the first partition on an empty
221 disk (as well as in some other situations).
222
srs569423d8d542011-10-01 18:40:10 -04002230.8.1 (10/1/2011):
srs5694d1b11e82011-09-18 21:12:28 -0400224------------------
225
srs569423d8d542011-10-01 18:40:10 -0400226- Fixed bug that could cause FixParts to keep a partition's assignment
227 as logical when FixPart could not actually do so. This could happen
228 when there are no gaps between two logical partitions. Some partitioning
229 tools can create such configurations, but FixParts can't. Such
230 configurations are extremely rare. I've only encountered them when
231 logical partitions are out of order.
232
233- Added code to detect infinite loops of logical partitions when reading
234 MBR data. When detected, the program now stops reading after the first
235 loop, so no duplicates appear in the partition list.
236
237- Fixed bug in partition overlap detection in MBR code.
238
srs5694d1b11e82011-09-18 21:12:28 -0400239- Changed GPT reading code to use the size encoded in GPT headers to
240 determine how much of the header to use in computing a CRC, with the
241 restriction that the size be equal to or less than the disk's sector
242 size. This should work around problems with libefi in ZFS, which sets the
srs569423d8d542011-10-01 18:40:10 -0400243 header size to 512 rather than the more common 92. A caveat: If the
244 disk's sector size is larger than the GPTHeader data structure size (512
245 bytes), then the rest of the sector's contents are ignored and replaced
246 with 0 values. This could produce false positives on CRC checks on disks
247 with over-512-byte sector sizes if the header sector is padded with
248 something other than 0 values.
srs5694d1b11e82011-09-18 21:12:28 -0400249
250- Fixed bug in new (as of 0.8.0) check that main and backup partition
251 tables are identical on big-endian (PowerPC, etc.) hardware.
252
srs5694a17fe692011-09-10 20:30:20 -04002530.8.0 (9/10/2011):
254------------------
255
256- Added new return option for sgdisk: 8, which means that a replication
257 operation (-R or --replicate) failed. Note that other operations on
258 the same command line might still have succeeded.
259
260- Added gdisk_test.sh shell script, contributed by Guillaume Delacour.
261 This script tests some common gdisk and sgdisk operations to be sure
262 they're working correctly.
263
264- Enable sgdisk's -l (--load-backup) and -o (--clear) options to work
265 even on disks that are damaged. Most other options will still be ignored,
266 though, so if you suspect a disk may be bad and want to use one of these
267 options, you should do so on a line by itself, followed by a separate
268 command to perform other actions (such as adding new partitions).
269
270- Added check for mis-matched primary and backup partition tables.
271 A mismatch is reported as a CRC error.
272
273- Added Apple Core Storage partition type code (hex code AF05, GUID
274 53746F72-6167-11AA-AA11-00306543ECAC).
275
276- Added cgdisk program to the family. This program is a rough workalike
277 to cfdisk, much as gdisk is a rough workalike to fdisk. See the cgdisk
278 man page or http://www.rodsbooks.com/gdisk/cgdisk-walkthrough.html for
279 details about its operation.
280
281- Fixed bug that caused CHS end point for protective MBR to be set to
282 0xfeffff rather than the spec-mandated 0xffffff on disks over ~8GB. This
283 is a very minor bug, since not much cares about this, and most other GPT
284 tools get it wrong in the same way, too.
285
srs569400b6d7a2011-06-26 22:40:06 -04002860.7.2 (6/26/2011):
srs56946aae2a92011-06-10 01:16:51 -0400287------------------
288
srs569400b6d7a2011-06-26 22:40:06 -0400289- The Windows version now (finally!) generates proper GUIDs rather than a
290 purely random number. This fixes a bug that caused Windows 7 to crash
291 when converting a disk from MBR format (but, oddly, not when creating a
292 fresh partition table or doing various other things).
293
294- Added a warning when an MBR partition is discarded because it's too
295 big for the disk.
296
297- Changed warning to Windows users about the dangers of converting to GPT
298 so that it appears only on disks that aren't already in GPT form.
299
300- Fixed bug that caused bogus "3" values to pad the ends of partition names
301 on some disks (particularly those created by Microsoft's disk
302 partitioning tools).
303
304- Made compilation without Unicode support possible (see README file)
305
306- Made default filesystem type code OS-dependent (based on the compilation
307 platform).
308
309- Added new Linux-only filesystem partition type GUID code,
310 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (8300 entry code). Also changed name
311 of the EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (0700 entry code) to
312 "Microsoft basic data").
313
srs56946aae2a92011-06-10 01:16:51 -0400314- Fixed a bug that caused an incorrect code to be set for active/bootable
315 partitions when generating a hybrid MBR.
316
317- Enable entry of hex codes that begin with "0x" for both GPT and MBR
318 partitions.
319
320- Fixed bug that caused the boot loader code to be lost when creating a
321 hybrid MBR.
322
323- Fixed bug in sector input code that could produce improper values
324 if the user inputs ridiculously large "+" values.
325
srs5694699941e2011-03-21 21:33:57 -04003260.7.1 (3/21/2011):
327------------------
328
329- Added support for proper UTF-16LE partition names rather than the
330 "shortcut" that properly encoded only ASCII names. This support works
331 only in Linux, FreeBSD, and OS X, though, at least for the moment.
332 Although it's possible to compile this support into Windows when using
333 Visual C++, it doesn't seem to work properly. Since using this feature
334 would require distributing the ICU libraries with the Windows binary,
335 thus bloating the binary package's size to no effect, I've disabled it in
336 my standard Windows build, at least for now.
337
338- Added check to fixparts to keep it from operating on devices that
339 lack an existing MBR signature. (In 0.7.0, it could write an empty
340 MBR data structure to a device on which it was mistakenly launched.)
srs5694d3ba7a62011-03-13 11:51:34 -0400341
srs5694815fb652011-03-18 12:35:56 -0400342- Fixed bug that caused the protective MBR to not be written when
343 restoring a backup of the GPT data.
344
srs56945a608532011-03-17 13:53:01 -0400345- Fixed bug that caused second protective MBR partition, when created
346 as part of a hybrid MBR, to always be of type 0xEE, even when the
347 user specified something else.
348
srs5694c2f6e0c2011-03-16 02:42:33 -0400349- Integrated a number of code cleanups contributed by Florian Zumbiehl.
srs5694d3ba7a62011-03-13 11:51:34 -0400350
srs5694bf8950c2011-03-12 01:23:12 -05003510.7.0 (3/11/2011):
srs569464cbd172011-03-01 22:03:54 -0500352------------------
353
srs5694bf8950c2011-03-12 01:23:12 -0500354- Fixed bug that caused some types of logical partitions to be misread.
355
356- Created FixParts program, to fix problems on MBR-partitioned disks.
357 Although this program is part of the GPT fdisk family, it is NOT used on
358 GPT disks.
359
360- Completely redid the GPT-to-MBR code, used both for converting to MBR
361 form and for creating hybrid MBRs.
362
363- Fixed a bug that caused gdisk to "forget" some partitions if there were
364 numbering gaps when a conversion to MBR was aborted.
365
366- Improved CHS value creation on small (<~8GB) disks for protective MBR
367 and when creating hybrid MBRs or converting to MBR format. Linux-only,
368 for the moment; other platforms still produce bad CHS values on sub-~8GB
369 disks (but few OSes care these days).
370
srs569464cbd172011-03-01 22:03:54 -0500371- Enhanced disk replication features ('u' on the experts' menu in gdisk; -R
372 or --replicate in sgdisk). It's now possible to replicate the partition
373 table from a larger to a smaller disk, so long as all the partitions fit
374 on the smaller disk. In sgdisk, the secondary GPT data are moved
375 automatically if disk sizes don't match. In gdisk, the secondary GPT data
376 are moved automatically if the target disk is smaller than the source
377 disk; if the target disk is larger than the source disk, the user is
378 given the option of making this adjustment.
379
380- Fixed --load-backup (-l) option to sgdisk, which was broken.
381
382- Changed largest drive that's not given a minimum 4 KiB alignment even
383 when smaller alignment is detected on the disk to 300 GB.
384
srs5694bf8950c2011-03-12 01:23:12 -0500385- Fixed bug that prevented aborting a partition table backup ('u' on the
srs569464cbd172011-03-01 22:03:54 -0500386 experts' menu) by hitting the Enter key for the device filename.
387
srs5694bf8950c2011-03-12 01:23:12 -0500388- Implemented a number of code cleanups provided by Florian Zumbiehl.
srs569464cbd172011-03-01 22:03:54 -0500389
srs5694df9d3632011-01-08 18:33:24 -05003900.6.14 (1/8/2011):
391------------------
392
393- Made small change to the way the start sector is interpreted if you use a
394 "+" specification, as in "+2G" to locate a partition 2 GiB into the
395 default range. This change makes adjustments for sector alignment less
396 likely.
397
398- Modified sgdisk's -n (--new) option to work with relative start and end
399 values (which the man page incorrectly stated it already did). Values of
400 0 for the start and end sectors refer to the first and last available
401 sectors in the largest free block, and a partition number of 0 refers to
402 the first available partition.
403
404- Added ChromeOS GUID values to list of recognized partition type GUIDs.
405 7F00 = ChromeOS kernel, 7501 = ChromeOS root, 7502 = ChromeOS reserved.
406 Untested on actual ChromeOS system.
407
408- Tweaked APM detection to look for APM signature even if an MBR
409 signature has already been found. Helps in diagnosis of cases
410 in which an MBR has overwritten an APM disk.
411
srs5694058d4a52010-10-12 12:42:47 -04004120.6.13 (10/12/2010):
413--------------------
414
415- Added notification about nonexistent partitions to hybrid MBR creation
416 in gdisk.
417
418- Fixed bug in GPT-to-MBR conversion that could sometimes enable creation
419 of an extended partition that overlaps a preceding partition.
420
421- Fixed bug in GPT-to-MBR conversion that prevented creation of an MBR
422 table with logical partitions if there were four or fewer partitions.
423
srs56940873e9d2010-10-07 13:00:45 -04004240.6.12 (10/7/2010):
425-------------------
426
427- Adjusted alignment code to use 1 MiB alignment by default for drives with
428 other than 512-byte sector sizes. (Previous versions increased this --
429 for instance, to 4 MiB for drives with 2048-byte logical sector size.)
430
431- Entry of non-hexadecimal value for partition type code now causes
432 re-prompting for a new value, fixing a recently-introduced minor bug.
433
434- Fixed bug in sector entry using K/M/G/T/P suffixes on disks with
435 other-than-512-byte sector numbers.
436
437- Added "P" (PiB, pebibyte) suffix to suffixes accepted in entering
438 partition sizes.
439
440- Fixed bug that caused sgdisk to segfault if fed the (invalid)
441 "-A show" parameter. Now it terminates with a complaint about an invalid
442 partition number 0.
443
444- Removed warning when running on big-endian hardware, since this
445 support has been present for quite a while with no bug reports.
446
srs5694ab4b0432010-09-25 20:39:52 -04004470.6.11 (9/25/2010):
448-------------------
449
450- Added -F (--first-aligned-in-largest) option to sgdisk. This option is a
451 variant on -f (--first-in-largest); it returns the number of the first
452 sector that will be used in the largest free area, given the current
453 alignment value (set via -a/--set-alignment).
srs5694659eaf12010-08-23 11:26:12 -0400454
srs56945a081752010-09-24 20:39:41 -0400455- Streamlined GUID code entry in gdisk; it no longer offers the option
456 to enter GUIDs in separate segments.
srs569482f3f0b2010-09-22 10:50:24 -0400457
srs5694327129e2010-09-22 01:07:31 -0400458- The -t option to sgdisk now accepts GUID values as well as the
459 sgdisk/gdisk-specific two-byte hex codes.
460
461- Added check that the protective 0xEE MBR partition begins on sector 1
462 to the verify function. If it doesn't, a warning message is displayed,
463 but it doesn't count as an error.
464
465- Added check for overlapping MBR partitions to verify function (gdisk "v"
466 function on all menus; sgdisk -v/--verify function). Also warns about
467 multiple MBR 0xEE partitions (causes problems in some OSes).
468
469- Added check to GPT-to-MBR and hybrid MBR creation options to prevent
470 creation of disks with duplicate partitions. When told to create a disk
471 with duplicates, sgdisk now aborts with the error message "Problem
472 creating MBR!" When attempting to create a hybrid MBR with duplicates,
473 gdisk silently drops duplicate partitions, leaving fewer than requested.
474 Creating duplicates should not be possible in sgdisk when converting to
475 MBR form.
srs5694659eaf12010-08-23 11:26:12 -0400476
srs56949ddc14b2010-08-22 22:44:42 -04004770.6.10 (8/22/2010):
478-------------------
srs5694f9312b02010-07-06 15:39:51 -0400479
srs56949ddc14b2010-08-22 22:44:42 -0400480- Enable disk-wipe (-z and -Z) and verification (-v) operations in
481 sgdisk even if the disk is badly damaged.
482
483- Added support for setting attributes in sgdisk (-A/--attributes option)
484 in sgdisk.
485
486- Fixed bug that created backwards attribute field values (bit #2 was
487 entered as bit #61, etc.).
488
489- Fixed bug that caused creation of hybrid MBR to wipe out the MBR's boot
490 code.
491
492- Added ability to save partition table from one device to another (gdisk:
493 'u' on experts' menu; sgdisk: -R or --replicate option).
494
495- Fixed inaccessible -C/--recompute-chs option in sgdisk.
srs5694f9312b02010-07-06 15:39:51 -0400496
srs569461768bc2010-07-04 01:54:00 -04004970.6.9 (7/4/2010):
498------------------
499
500- Fixed minor error in sgdisk man page (--largest-new option requires
501 a partition number).
502
503- Fixed major bug in hybrid MBR creation, which caused incorrect
504 protective partition end point settings and occasionally other
505 problems.
506
srs56940e197dc2010-05-23 13:06:10 -04005070.6.8 (5/23/2010):
508------------------
509
srs569461768bc2010-07-04 01:54:00 -0400510- Added tests to see if the file to be opened is a directory, character
511 device, FIFO, or socket; program now terminates if any of these
512 conditions is met. (Linux/FreeBSD/OS X only.) Thanks to Justin Maggard
513 for this patch.
srs56940e197dc2010-05-23 13:06:10 -0400514
515- Added 'f' option on gdisk's experts' menu (-G/--randomize-guids in
516 sgdisk). This option randomizes the disk's GUID and all partitions'
517 GUIDs. Intended for use after cloning a disk with a utility that copies
518 the GUIDs intact (such as a raw dd copy) if you want each disk copy to
519 have its own set of GUIDs.
520
521- Added -u/--partition-guid and -U/--disk-guid options to sgdisk. These are
522 the equivalents of the 'g' and 'c' options, respectively, on the gdisk
523 experts' menu: They enable adjusting an individual partition's GUID or a
524 disk's GUID. The GUID may be either a fully specified GUID value or 'R'
525 or 'r' to set a random GUID value.
526
527- Fixed compile problem for FreeBSD (its math library lacks a log2()
528 function). Also created separate Makefile.freebsd with a couple of
529 FreeBSD-specific options.
530
531- Added -N (--largest-new) command to sgdisk. This command creates a single
532 partition that fills the largest single unpartitioned block of space on
533 the disk.
534
535- Fixed sgdisk man page error: the --change-name option was incorrectly
536 listed as --change.
537
538- Added 'h' option to gdisk experts' menu (-C or --recompute-chs in sgdisk)
539 to recompute all protective/hybrid MBR CHS values. This option is
540 intended to work around a bug in at least one BIOS that prevents the
541 computer from booting when the GPT-mandated (but technically illegal)
542 0xFFFFFF CHS value is used as the end point for a protective MBR. The
543 recomputed values will be legal (e.g., 0xFEFFFF instead of 0xFFFFFF),
544 but incorrect in GPT terms, and will therefore enable at least one
545 BIOS to boot with a GPT disk. See http://www.rodsbooks.com/gdisk/bios.html
546 for all I know about BIOS/GPT incompatibilities.
547
5480.6.7 (5/1/2010):
549-----------------
550
551- Undid earlier change, with version 0.6.4, that wiped the MBR boot loader
552 when doing MBR-to-GPT conversions. I've now become skeptical that MBR
553 boot loaders were causing any real problems on GPT disks, so I'm going
554 back to the philosophy of leaving as much alone as possible.
555
556- Fixed bug that caused incorrect reporting of free space on 0-size disks
557 (e.g., files of 0 length passed as disk images).
558
559- Fixed bug that caused segfault on some invalid disks
560
561- Fixed bug that caused incorrect partition numbers to be displayed for
562 some verify problems.
563
564
5650.6.6 (3/21/2010):
566-----------------
567
568- Added support for the "no block IO protocol" (referred to as "hide from
569 EFI" in GPT fdisk) and "legacy BIOS bootable" attribute bits. See Table
570 19 of the UEFI 2.3 specification (p. 153) for details.
571
572- Changed the sequence in which GPT data structures are written to disk;
573 backups are now written first, followed by the main structures. This is
574 as recommended in the UEFI 2.3 specification, since it's safer in the
575 extremely unlikely event that a RAID array's size is increased and
576 there's a power outage mid-write. (If the main structures are written
577 first in this case, they'll point to data that's not yet been written;
578 but by writing the backups first, the old main structures will still
579 point to the valid old backup structures.)
580
581- Protective MBRs now have disk signatures of 0x00000000, to better
582 conform with GPT as described in the UEFI 2.3 specification.
583
584- Added alignment information to the summary data produced by the
585 'p' main-menu option in gdisk or the -p option to sgdisk.
586
587- More alignment changes: GPT fdisk now attempts to determine the alignment
588 value based on alignment of current partitions, if any are defined. If no
589 partitions are defined, a default value of 2048 is set. If the computed
590 value is less than 8 on drives over about 596GiB, it's reset to 8, since
591 the drive might be a WD Advanced Format unit that requires an 8-sector
592 (or larger power-of-2) alignment value for best performance. The
593 2048-sector default provides better alignment in some RAID
594 configurations.
595
596- Changed behavior when a backup restore fails. Previously, GPT fdisk
597 would create a fresh blank set of partitions. Now it does so only
598 if the failure occurs when interpreting the backup's contents; if the
599 user typed the wrong filename, the in-memory data structures aren't
600 touched.
601
602
6030.6.5 (3/7/2010):
604-----------------
605
606- Added tests to verify ('v') function and to pre-save checks to look for
607 partitions that end before they begin or that are too big for their
608 disks.
609
610- Fixed a bug that could cause spurious data to appear in a grown partition
611 table.
612
613- Added ability to convert some or all partitions to logical partitions in
614 GPT-to-MBR conversion. This feature is limited by the fact that at least
615 one free sector must exist immediately prior to each logical partition,
616 so it won't do much good if partitions are crammed together. It should be
617 possible to convert back to MBR any disk that started that way, provided
618 no partitions were added or resized when the disk was in GPT form; and
619 disks that were partitioned with Apple's Disk Utility or other tools that
620 insert unpartitioned space should also be convertible. CAUTION: THE
621 LOGICAL PARTITION CREATION FEATURE DOESN'T TRY TO ALIGN PARTITIONS OR
622 PARTITION HEADER DATA TO CYLINDER BOUNDARIES! It's conceivable that some
623 older OSes or utilities will object to these disks, although Linux, OS X,
624 Windows Vista, and Windows 7 all seem happy with them.
625
626- Fixed bug that caused creation of 0-length file if an incorrect device
627 filename was typed.
628
629- The gdisk program now prompts for a device filename if it's called with
630 no options. This enables gdisk to do something useful if it's launched by
631 double-clicking its icon in a GUI environment.
632
633- Added workaround for bug in some versions of MinGW that caused the
634 program to garble input sector numbers.
635
636- The Windows version now works on disks with over-512-byte sectors.
637 Tested on a magneto-optical (MO) drive with 2048-byte sectors.
638
639- Added -D (--display-alignment) option to sgdisk, to display sector
640 alignment value (by default, 1 for sub-800GiB disks and 8 for disks
641 over that size).
642
643- Fixed bug in computation of CHS geometries for protective MBR. This is
644 non-critical, since most modern utilities ignore the CHS geometries.
645 Concerned users can use the 'n' option on the experts' menu to build new
646 protective MBRs with the new algorithm, if desired. (Note that GNU
647 Parted, at least, gets this wrong, too.)
648
649- Fixed memory-allocation bug when reading GPT disks with partition tables
650 with over 128 entries; could cause program to crash on startup.
651
6520.6.4-2 (2/20/2010):
653--------------------
654
655Note: Neither of the following changes affects actual program code, so I've
656left the version number in the program at 0.6.4.
657
658- Altered Makefile to pass user's compiler and linker environment
659 variables through.
660
661- Added #include to gpttext.cc to enable it to compile on the latest
662 GCC versions (it was failing on at least some 4.4.x compilers).
663
6640.6.4 (2/19/2010):
665-------------------
666
667- Added -m (--gpttombr) option to sgdisk, enabling conversion of GPT
668 disks to MBR format, with a limit of four partitions total, and of course
669 without overcoming the 2TiB limit.
670
671- Added -h (--hybrid) option to sgdisk, enabling creation of hybrid
672 MBRs. Fewer options are available in sgdisk than in gdisk, though,
673 in order to keep the user interface manageable.
674
675- Fixed off-by-one bug in specification of partition when using the
676 -T (--transform-bsd) option in sgdisk.
677
678- Changed the code to create a new MBR unique disk signature whenever a new
679 protective MBR is generated (when doing an MBR-to-GPT conversion, when
680 using the 'n' option on the experts' menu, or when using the 'o' option
681 on the main menu, for example). Previous versions attempted to preserve
682 the existing MBR disk signature in most cases, but this resulted in
683 values of 0x00000000 whenever an empty disk was partitioned, and often in
684 other cases, too. Better to risk changing this value too often than to
685 leave multiple disks with 0x00000000 values, I think.
686
687- Added transpose ('t' on experts' menu in gdisk; or -r or --transpose in
688 sgdisk) command to enable fine-tuning partition order without doing a
689 full sort.
690
691- Added code to clear the MBR boot loader when doing an MBR-to-GPT
692 conversion. (This was already done in full-disk BSD-to-GPT conversions.)
693 This is done because I've seen a few problem reports that make me think
694 some MBR boot loaders freak out and hang the system when they encounter
695 GPT disks, and/or they attempt to load a second-stage boot loader stored
696 in what is now GPT territory, causing a system hang. Since MBR boot
697 loaders don't work on GPT disks anyhow (even GRUB needs to be
698 reinstalled), this new wiping behavior shouldn't cause any problems, and
699 may prevent a few.
700
701- Fixed bug in Windows version that prevented saving backup files.
702
703- Fixed bug that caused second and subsequent partition numbers in
704 prompts in hybrid MBR conversion procedure to be displayed in
705 hexadecimal.
706
707- Fixed very obscure potential bug in hybrid MBR/GPT synchronization when
708 deleting partitions; code wasn't matching partition lengths correctly,
709 which would only affect partitions that start at the same point but have
710 different lengths in MBR vs. GPT.
711
712- Fixed bug in the -E option to sgdisk; it was actually returning the
713 last free sector, not the last free sector in the largest free block.
714
715- Fixed bug in -t option to sgdisk; it was corrupting partition type
716 codes.
717
718- Fixed minor alignment bug in partition summary list ('p' from any menu)
719 when partition sizes are between 1000 and 1024 units.
720
721- Backup restore function ('l' on recovery & transformation menu) now
722 accepts both backups generated by GPT fdisk and backups created by a
723 direct copy (via dd, etc.) of the MBR, main GPT header, and main GPT
724 partition table, in that order. ("dd if=/dev/sda of=backup.gpt bs=512
725 count=34" will do this on Linux for a disk with a typical-sized GPT table
726 of 128 entries.)
727
7280.6.3 (2/3/2010):
729------------------
730
731- Fixed serious data corruption bug on big-endian (PowerPC and similar)
732 systems.
733
734- Changed several GPT fdisk Solaris type codes to correct a duplicate
735
736- Corrected error in GPT fdisk type codes for NetBSD LFS and NetBSD RAID;
737 they were identical, but I've now changed NetBSD RAID to A906, which
738 is unique.
739
740- Added GUID for IBM General Parallel File System (GPFS) partition type
741 code. Somewhat arbitrarily set it to use the 7501 number (MBR code 0x75
742 is used by IBM PC/IX, so it's at least the right company, by my loose
743 numbering rules....).
744
745- Improved GUID generation. Prior versions generated completely random
746 numbers for GUIDs. This works, but is technically a violation of the
747 spec. Unix versions now employ libuuid to generate GUIDs in a more
748 correct way. The Windows version still generates random numbers, though.
749
750- Turned PartTypes class into a derived class of GUIDData, and renamed
751 it to PartType.
752
753- Created new GUIDData class, to replace the original GUIDData struct.
754
7550.6.2 (1/29/2010):
756------------------
757
758- The change-type ('t' on main menu) option now changes the partition's
759 name *IF* the current name is the generic one for the partition type.
760 If the current name is not the generic name, it is NOT changed.
761
762- Fixed bug that caused new protective MBR to not be created when the
763 MBR was invalid and the GPT was damaged and the user opts to try to
764 use the GPT data.
765
766- Enabled default partition type code of 0700 when creating partitions
767 or changing their type codes. (Type 0700, Linux/Windows data, is set if
768 the user hits the Enter key alone.)
769
770- Fixed bug in sort ('s' on main menu) option that caused partition
771 numbers to begin at more than 1 if the original partition list had
772 too many empty partitions before the last one defined.
773
774- Improved code to determine which partition table to load in case of
775 CRC mismatches between the partition tables and the stored CRC values
776 in the headers.
777
778- Compiles using MinGW (http://www.mingw.org) to create a Windows binary.
779
780- Moved all disk I/O functions to the new DiskIO class. This helps with the
781 Windows port; it uses diskio-windows.cc for Windows-specific code,
782 diskio-unix.cc for the Linux, FreeBSD, and OS X code, and diskio.cc for
783 cross-platform disk I/O code.
784
785- Changed BSD disklabel detection code to be more correct (I think).
786 This change has no effect on my test disks, but I hope it'll work
787 better on disks with sector sizes other than 512 or 2048.
788
7890.6.1 (1/20/2010):
790------------------
791
792- Fixed bug that returned incorrect disk size on 32-bit versions of
793 FreeBSD.
794
795- Fixed bug that prevented FreeBSD version from working on disk image
796 files.
797
798- Fixed bug that caused BSD disklabel conversion to fail.
799
8000.6.0 (1/15/2010):
801------------------
802
803- Fixed bug that caused the convert to MBR function to fail.
804
805- Added support for disks with other than 512-byte sectors.
806
807- Created embryonic sgdisk program.
808
809- Fixed bug that caused relative sector numbers entered by users (e.g,
810 "+128M") to be misinterpreted as from the start of the range rather than
811 from the default value.
812
8130.5.3 (1/4/2010):
814-----------------
815
816- Fixed bug in display of GUIDs when compiled with some versions of GCC.
817
818- Eliminated warnings caused by additional checks in latest versions of
819 GCC. These warnings were harmless, but to eliminate them I've added
820 more error checking on disk I/O.
821
822- Eliminated unnecessary warnings about potential data loss if the program
823 was launched with the -l option or if writes aren't possible.
824
825- Added code to set the partition boundary value based on the physical
826 sector size. (FindAlignment() function.) This function, however, works
827 only on Linux, and then only if the BLKPBSZGET ioctl is defined. This
828 ioctl is new in kernel 2.6.32 or thereabouts.
829
8300.5.2 (12/31/2009):
831-------------------
832
833- Modified partition creation function to begin partitions on 8-sector
834 boundaries by default. This improves performance on the new Western
835 Digital Advanced Format drives. The new 'd' and 'l' options on the
836 experts' menu display and change, respectively, the boundary size.
837
838- Tweaked code to produce fewer warnings on the latest versions of
839 GCC.
840
8410.5.1:
842------
843
844- Made some minor edits to the man page.
845
846- Incorporated RPM .spec file changes contributed by Scott Collier
847 (boodle11@gmail.com).
848
849- Changed method of locating and loading backup GPT data, to use the
850 main header's pointer, if it's valid, rather than seeking to the
851 end of the disk.
852
853- Added 'e' option (relocate backup GPT data structures) to the experts'
854 menu.
855
856- Fixed bug that prevented recovery of partitions in case of partially
857 damaged GPT data (bad main and good backup or bad backup and good
858 main header, for instance).
859
8600.5.0:
861------
862
863- Added GPT-to-MBR conversion function. It's very limited, but potentially
864 useful in some cases.
865
866- Fixed bug that caused incorrect file sizes to be reported on 32-bit
867 Linux, thus causing problems when editing partition tables in disk images
868 or when loading GPT backup files.
869
870- Fixed bug that caused bogus CRC error reports when loading backup GPT
871 data.
872
873- Reorganized menus. There are now three: the main menu, the experts' menu,
874 and the recovery & transformation menu. The last of these has most of the
875 items that had been on the earlier versions' experts' menu.
876
877- Added ability to re-load the MBR and generate a fresh GPT from it. This
878 is normally identical to quitting and re-running the program, but it
879 could be handy if, say, the GPT partitions on a hybrid configuration are
880 badly messed up; this will enable using the hybridized partitions as the
881 starting point for a new GPT setup.
882
883- The program now generates CHS values for hybrid and GPT-to-MBR conversion
884 MBRs. For the moment, the assumption is the maximum number of heads and
885 sectors per track (255 and 63, respectively), although the bulk of the
886 code supports other values -- it'd just be awkward to enter the data in
887 the user interface.
888
889- Fixed minor display bug that caused number of sectors on the disk to be
890 shown as 0 on large disks when running 32-bit binaries.
891
892- Reverted 0.4.2's zap (destroy GPT) changes, since I don't want to wipe
893 out a valid MBR if the user created that MBR over an older GPT without
894 first properly wiping out the GPT, and the user now wants to wipe out
895 the GPT.
896
897- Reformatted and edited the man page. Aside from edits related to the
898 preceding program changes, I've altered the markup slightly and trimmed
899 much of the more tutorial information from the man page to better
900 conform to typical terse man page style.
901
9020.4.2:
903------
904
905- Code cleanup.
906
907- Fixed very small formatting bug in display of hex code when a match isn't
908 found when converting from an MBR/gdisk hex code to a GUID type code.
909
910- Added the ability to work on disk image files (raw files for virtual
911 machines, backup images, etc.). The program assumes that all such disk
912 image files have 512-byte sectors.
913
914- Added verification prompt to 'o' main-menu option to avoid accidental
915 erasures of all partitions.
916
917- The "destroy GPT data structures" option ('z' on the experts' menu) now
918 also destroys all EFI GPT (0xEE) partitions in the MBR.
919
920- Added an extra warning to the "destroy GPT data structures" option if an APM
921 or BSD disklabel was detected on the disk.
922
923- Added a buffer flush after destroying GPT data structures, to get the OS
924 to read the new (empty or MBR-only) partition table.
925
926- Fixed bug that allowed entry of nonexistent partition numbers when creating
927 a hybrid MBR.
928
9290.4.1:
930------
931
932- Code cleanup/re-organization
933
934- Partition creation function ('n' on main menu) now uses the start of the
935 largest available chunk of free space rather than the first available
936 sector as the default starting sector number. This should enable easier
937 partition creation if there are small bits of free space on the disk.
938
939- You can now specify the end point of a partition by using a minus sign,
940 in which case the end point is the default value minus the specified
941 size. For instance, "-200M" creates a partition that ends 200MiB before
942 the default end point.
943
944- You can now specify the start point of a partition by using a plus or
945 minus sign, in which case the start point is the specified distance from
946 the start (+) or end (-) of free space. This is exactly the same as the
947 new rules for entry of the end point, except that the default value is
948 set differently.
949
950- Deleting a partition now checks for a matching hybrid MBR partition, and
951 if one is found, it's deleted. Any empty space that then surrounds the
952 0xEE (EFI GPT) MBR partitions is then added to the nearby 0xEE partition.
953 If no non-0xEE partitions are left, a fresh protective MBR is generated.
954
955- Added hybrid MBR consistency check to the verify ('v') option and to
956 pre-write checks. If non-0xEE/non-0x00 MBR partitions without
957 corresponding GPT partitions are found, the user is warned. This finding
958 does NOT prevent writing the partition table, though.
959
960- Added non-destructive write test when opening the device file, in order
961 to detect the problem with FreeBSD being unable to write to disks with
962 mounted partitions (or other potential problems).
963
9640.4.0:
965------
966
967- Added support for BSD disklabels. The program can now convert disks that
968 use "raw" disklabels, with the caveat that the first partition will
969 almost certainly need to be deleted because it'll overlap the main GPT
970 header; and convert disklabels contained within a GPT (or a former MBR,
971 converted to GPT) partition. In the latter case, the 'b' main menu option
972 is used.
973
974- Added support for compiling on FreeBSD.
975
976- Fixed bug that could cause crashes or incomplete sorts when sorting
977 the partition table.
978
979- New partitions, including converted ones, now take on the name of the
980 partition type as a default name.
981
982- Reorganized some code; created a separate C++ class for GPT partitions
983 (GPTPart), which replaced a struct and enabled moving code from the
984 bloated GPTData class into GPTPart.
985
986- Fixed a bug that produced spurious warnings about unknown sector sizes
987 when loading a backup file.
988
9890.3.5:
990------
991
992Note: This version was not officially publicly released; I wanted to test
993the big-endian support while developing 0.4.0.
994
995- Tweaked the disk type identification code to warn users to re-sync their
996 hybrid MBRs when one is detected.
997
998- Tweaked MBR-reading code to ignore 0xEE (EFI GPT) partitions. This will
999 only have an effect on a poorly partitioned MBR disk that contains an
1000 inappropriate EFI GPT partition, or when attempting to recover a
1001 corrupted disk by using the hybrid MBR for data recovery.
1002
1003- Added big-endian (PowerPC, etc.) support!
1004
1005- Added code to identify and warn of the presence of an Apple Partition
1006 Map (APM) on the disk.
1007
1008- Enabled MBR conversion code to handle multiple logical partitions.
1009
10100.3.4:
1011------
1012
1013- Fixed bug that enabled (possibly accidental) entry of MBR type codes of
1014 0x00 in GPTData::MakeHybrid(). The fix also enables entry of default
1015 type code by pressing the Enter key when prompted. Applied a similar
1016 fix to the entry of the type code for the second protective partition,
1017 if one is used.
1018
1019- Fixed a typo: "sectors" was spelled "sectprs" in one spot!
1020
1021- Fixed bug that caused default entry for end sector to be refused if an
1022 initial value using a plus sign (e.g., "+20G") was also refused.
1023
10240.3.3:
1025------
1026
1027- Gave users control over the way MBR partitions are assigned to slots in a
1028 hybrid MBR setup; the original method (putting the 0xEE partition after
1029 the real partitions) works well for non-boot disks, but both GRUB and
1030 GRUB2 become confused by this type of setup, so it needs changing.
1031
1032- Changed "blocks" to "sectors" in GPT and MBR table displays.
1033
1034- Added "Boot" column to MBR table display; shows an asterisk (*) when the
1035 partition's status is bootable.
1036
10370.3.2:
1038------
1039
1040- Changed __DARWIN_UNIX03 to __APPLE__ as code to enable MacOS X support.
1041
1042- Added the ability to create a hybrid MBR ('h' on experts' menu). This was
1043 motivated by my discovery that Windows 7 remains brain-dead when it comes
1044 to the ability to boot from a GPT disk, at least on BIOS-based machines.
1045
1046- Added 'z' option to experts' menu, to destroy GPT data structures and
1047 exit. The intent is to use this feature to enable subsequent partitioning
1048 of the disk using fdisk or other GPT-unaware tools. (GNU Parted will wipe
1049 the GPT data structures itself when you create a new MBR ["msdos
1050 disklabel," in Parted parlance], so using Parted is another option.)
1051
1052- Slightly altered the effect of the 'o' command on the main menu. It now
1053 blanks out the protective MBR, as well as the GPT data.
1054
10550.3.1:
1056------
1057
1058- Added Mac OS X support, provided as a patch by David Hubbard
1059 (david.c.hubbard@gmail.com).
1060
1061- Fixed bug in disksize() function on Mac OS. (Possibly dependent on the
1062 kernel and/or GCC version.) The disk size, of type uint64_t, was not
1063 being passed correctly, so I reorganized the function to return it as
1064 the function's return value rather than as a parameter. This seems to
1065 work OK on my Mac OS test system and on both 32- and 64-bit Linux
1066 systems.
1067
1068- Fixed off-by-one bug in GPTData::FindLastAvailable().
1069
1070- Fixed bug that caused display of options after a disk-write error.
1071
1072- Fixed several incorrect MacOS X partition type GUIDs, thanks to Yves
1073 Blusseau (1otnwmz02@sneakemail.com).
1074
10750.3.0:
1076------
1077
1078- Changed version number to 0.3.0, reflecting the fact that I've received
1079 no significant bug reports and so am elevating the program to "beta"
1080 status. This change also entailed altering the warning the program
1081 displays when saving partition table changes.
1082
1083- Fixed minor bug in CHS geometry of the protective MBR's type EE partition
1084 (was producing 0x000200 as the start value, but should be 0x000100).
1085 Should be a non-critical bug since the protective MBR partition
1086 definition is only there to keep MBR-only disk utilities from messing
1087 with the disk.
1088
1089- Added ability to enter GUIDs as single massive strings rather than in
1090 chunks.
1091
10920.2.2:
1093------
1094
1095- Added #include directives required to compile the program using GCC
1096 4.4.0.
1097
10980.2.1:
1099------
1100
1101- Fixed partition numbering problem in reports of partition overlaps in
1102 verification function.
1103
1104- Fixed 1-sector partition size problem when creating new partitions
1105 (partitions were 1 sector too big when using the +size option).
1106
1107- Changed BytesToSI() to display values in bytes without decimal points
1108 (e.g., "512 bytes" rather than "512.0 bytes").
1109
1110- Added GPTData class member functions to retrieve GPT data structure
1111 locations on disk; used in my internal-use-only GPT-wiping program.
1112
1113- Eliminated the "a reboot is recommended" notice after writing the
1114 partition table.
1115
1116- Added notice after sorting the partition table to the effect that
1117 editing /etc/fstab and/or the boot loader files may be required.
1118
1119- Fixed bug in MBR-reading function that caused 0x0f (Win95 LBA) and 0x85
1120 (Linux extended) extended partitions to not be read.
1121
1122- Fixed bug in GetLastSector() (in support.cc) that would have prevented
1123 correct user entry of over-32-bit sector numbers on 32-bit systems.
1124
1125- Made some changes/corrections to the partition type list in
1126 parttypes.cc. Most of these were based on newly-discovered MBR type
1127 codes for Apple (Mac OS X) filesystems.
1128
1129- General code cleanup (setting explicit casts, etc.)
1130
11310.2.0:
1132------
1133
1134- Initial semi-public release