1*57696d54SAkhilesh Sanikop1.0.10 (?/??/2023): 2*57696d54SAkhilesh Sanikop------------------- 3*57696d54SAkhilesh Sanikop 4*57696d54SAkhilesh Sanikop- Fixed problem that caused sgdisk to crash with errors about being unable 5*57696d54SAkhilesh Sanikop to read the disk's partition table when compiled with the latest popt 6*57696d54SAkhilesh Sanikop (commit 740, which is pre-release as I type; presumably version 1.19 and 7*57696d54SAkhilesh Sanikop later once released). 8*57696d54SAkhilesh Sanikop 9*57696d54SAkhilesh Sanikop- Updated guid.cc to deal with minor change in libuuid. 10*57696d54SAkhilesh Sanikop 11*57696d54SAkhilesh Sanikop- Fixed potential NULL derefernce bug in sgdisk. Thanks to Damian Kurek 12*57696d54SAkhilesh Sanikop for this fix. 13*57696d54SAkhilesh Sanikop 14*57696d54SAkhilesh Sanikop- The partition number of "0" can now be used to reference newly-created 15*57696d54SAkhilesh Sanikop partitions when the --largest-new=0 option to sgdisk is used. Thanks to 16*57696d54SAkhilesh Sanikop David Joaqu�n Shourabi Porcel for this improvement. 17*57696d54SAkhilesh Sanikop 18*57696d54SAkhilesh Sanikop- Make explicit casts in gptcurses.cc to eliminate compiler warnings about 19*57696d54SAkhilesh Sanikop mis-matched types in printw() statements. 20*57696d54SAkhilesh Sanikop 21*57696d54SAkhilesh Sanikop- Minor code cleanup based on valgrind analysis. 22*57696d54SAkhilesh Sanikop 23*57696d54SAkhilesh Sanikop- In previous versions, rEFInd accepted only integer values for partition 24*57696d54SAkhilesh Sanikop start points, end points, and sizes, and it interpreted decimal values 25*57696d54SAkhilesh Sanikop incorrectly. That is, if you typed "+9.5G" as the partition end point, 26*57696d54SAkhilesh Sanikop you'd end up with something just 9 sectors in size. This version now 27*57696d54SAkhilesh Sanikop truncates decimal numbers to their integral values, so you'd get a 9 GiB 28*57696d54SAkhilesh Sanikop partition instead. 29*57696d54SAkhilesh Sanikop 30*57696d54SAkhilesh Sanikop1.0.9 (4/14/2022): 31*57696d54SAkhilesh Sanikop------------------ 32*57696d54SAkhilesh Sanikop 33*57696d54SAkhilesh Sanikop- Removed stray debugging code that caused "partNum is {x}" to be printed 34*57696d54SAkhilesh Sanikop when changing a partition's name with sgdisk (-c/--change-name). 35*57696d54SAkhilesh Sanikop 36*57696d54SAkhilesh Sanikop- Added support for aligning partitions' end points, as well as their start 37*57696d54SAkhilesh Sanikop points. This support affects the default partition size when using 'n' in 38*57696d54SAkhilesh Sanikop gdisk; it affects the default partition size in cgdisk; and it's activated 39*57696d54SAkhilesh Sanikop by the new '-I' option in sgdisk. See the programs' respective man pages 40*57696d54SAkhilesh Sanikop for details. This feature is intended to help with LUKS2 encryption, which 41*57696d54SAkhilesh Sanikop reacts badly to partitions that are not sized as exact multiples of the 42*57696d54SAkhilesh Sanikop encryption block size. 43*57696d54SAkhilesh Sanikop 44*57696d54SAkhilesh Sanikop- Added check for too-small disks (most likely to be an issue when trying 45*57696d54SAkhilesh Sanikop to use a too-small disk image); program now aborts if this happens. 46*57696d54SAkhilesh Sanikop 47*57696d54SAkhilesh Sanikop- Added the ability to build sgdisk and cgdisk for Windows. 48*57696d54SAkhilesh Sanikop 49*57696d54SAkhilesh Sanikop- Added new type codes: 50*57696d54SAkhilesh Sanikop * FreeBSD nandfs (0xa506) 51*57696d54SAkhilesh Sanikop * Apple APFS Pre-Boot (0xaf0b) 52*57696d54SAkhilesh Sanikop * Apple APFS Recovery (0xaf0c) 53*57696d54SAkhilesh Sanikop * ChromeOS firmware (0x7f03) 54*57696d54SAkhilesh Sanikop * ChromeOS mini-OS (0x7f04) 55*57696d54SAkhilesh Sanikop * ChromeOS hibernate (0x7f05) 56*57696d54SAkhilesh Sanikop * U-Boot boot loader (0xb000) 57*57696d54SAkhilesh Sanikop * 27 (!) codes for Fuchsia (0xf100 to 0xf11a) 58*57696d54SAkhilesh Sanikop 59*57696d54SAkhilesh Sanikop- Fixed build problems with recent versions of ncurses. 60*57696d54SAkhilesh Sanikop 61*57696d54SAkhilesh Sanikop- Fixed bug that caused cgdisk to report incorrect partition attributes. 62*57696d54SAkhilesh Sanikop 63*57696d54SAkhilesh Sanikop- Consolidated Makefiles for Linux, FreeBSD, Solaris, macOS, and Windows 64*57696d54SAkhilesh Sanikop (32- and 64-bit). The old OS-specific Makefiles remain in case the new 65*57696d54SAkhilesh Sanikop consolidated Makefile has problems, but the old ones are deprecated. 66*57696d54SAkhilesh Sanikop (The Solaris support in the new Makefile is untested.) 67*57696d54SAkhilesh Sanikop 68*57696d54SAkhilesh Sanikop1.0.8 (6/9/2021): 69*57696d54SAkhilesh Sanikop----------------- 70*57696d54SAkhilesh Sanikop 71*57696d54SAkhilesh Sanikop- Fixed double byte swap operation on writes of partition name data on 72*57696d54SAkhilesh Sanikop big-endian systems; this is in addition to the double byte swap fix on 73*57696d54SAkhilesh Sanikop reading partition label data fixed in 1.0.7. (Thanks to Erik Larsson for 74*57696d54SAkhilesh Sanikop both fixes.) 75*57696d54SAkhilesh Sanikop 76*57696d54SAkhilesh Sanikop- Added feature to gdisk and sgdisk to enable swapping the byte order of 77*57696d54SAkhilesh Sanikop partition names, so as to correct disks already affected by the preceding 78*57696d54SAkhilesh Sanikop bug. This option is 'b' on the experts' menu in gdisk and 79*57696d54SAkhilesh Sanikop -b/--byte-swap-name in sgdisk. This seems advanced/obscure enough that I 80*57696d54SAkhilesh Sanikop don't want to clutter cgdisk's menu with this option, so I haven't added 81*57696d54SAkhilesh Sanikop it there. 82*57696d54SAkhilesh Sanikop 83*57696d54SAkhilesh Sanikop- Added type code for the Barebox boot loader (0xbb00; 84*57696d54SAkhilesh Sanikop 4778ED65-BF42-45FA-9C5B-287A1DC4AAB1). 85*57696d54SAkhilesh Sanikop 86*57696d54SAkhilesh Sanikop- Trivial code cleanup. 87*57696d54SAkhilesh Sanikop 88*57696d54SAkhilesh Sanikop1.0.7 (3/10/2021): 89*57696d54SAkhilesh Sanikop------------------ 90*57696d54SAkhilesh Sanikop 91*57696d54SAkhilesh Sanikop- Fixed bug that caused spurious warnings about the partition table 92*57696d54SAkhilesh Sanikop header claiming an invalid size of partition entries when reading 93*57696d54SAkhilesh Sanikop some MBR disks. 94*57696d54SAkhilesh Sanikop 95*57696d54SAkhilesh Sanikop- Added ARM64 as an architecture for the Mac builds of gdisk and fixparts. 96*57696d54SAkhilesh Sanikop The official GPT fdisk binaries of these files for macOS are now 97*57696d54SAkhilesh Sanikop "universal" x86-64/ARM64 binaries, so they will run natively on the new M1 98*57696d54SAkhilesh Sanikop (ARM64) Macs. The sgdisk and cgdisk binaries, though, remain built only 99*57696d54SAkhilesh Sanikop for x86-64, because they rely on libraries that are not easily built in 100*57696d54SAkhilesh Sanikop "universal" form. 101*57696d54SAkhilesh Sanikop 102*57696d54SAkhilesh Sanikop- Fixed double byte swap operation on partition label data on big-endian 103*57696d54SAkhilesh Sanikop CPUs. This resulted in partition names becoming gibberish on such CPUs. 104*57696d54SAkhilesh Sanikop 105*57696d54SAkhilesh Sanikop- Added three new type codes: 106*57696d54SAkhilesh Sanikop - 0x0701 - Microsoft Storage Replica 107*57696d54SAkhilesh Sanikop - 0x0702 - ArcaOS Type 1 108*57696d54SAkhilesh Sanikop - 0x8401 - Storage Performance Development Kit (SPDK) block device 109*57696d54SAkhilesh Sanikop 110*57696d54SAkhilesh Sanikop1.0.6 (1/13/2021): 111*57696d54SAkhilesh Sanikop------------------ 112*57696d54SAkhilesh Sanikop 113*57696d54SAkhilesh Sanikop- Fixed bug that could cause segfault if GPT header claimed partition 114*57696d54SAkhilesh Sanikop entries are oversized. See: 115*57696d54SAkhilesh Sanikop https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0256 116*57696d54SAkhilesh Sanikop 117*57696d54SAkhilesh Sanikop- Fixed bug that could cause a crash if a badly-formatted MBR disk was 118*57696d54SAkhilesh Sanikop read. See: 119*57696d54SAkhilesh Sanikop https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-0308 120*57696d54SAkhilesh Sanikop 121*57696d54SAkhilesh Sanikop- Renamed the partition type "Freedesktop $BOOT" to "XBOOTLDR partition". 122*57696d54SAkhilesh Sanikop 123*57696d54SAkhilesh Sanikop- Added several more Freedesktop partition table type codes (0x8312 through 124*57696d54SAkhilesh Sanikop 0x831C). 125*57696d54SAkhilesh Sanikop 126*57696d54SAkhilesh Sanikop- Fixed type code definition in diskio-unix.cc that prevented 32-bit builds 127*57696d54SAkhilesh Sanikop from correctly handling disks over 4 TiB in size. 128*57696d54SAkhilesh Sanikop 129*57696d54SAkhilesh Sanikop- Minor tweaks to get the software to compile on FreeBSD; that seems to have 130*57696d54SAkhilesh Sanikop fallen into disrepair. 131*57696d54SAkhilesh Sanikop 132*57696d54SAkhilesh Sanikop1.0.5 (2/17/2020): 133*57696d54SAkhilesh Sanikop------------------ 134*57696d54SAkhilesh Sanikop 135*57696d54SAkhilesh Sanikop- Fixed typos and minor formatting issues in man pages 136*57696d54SAkhilesh Sanikop 137*57696d54SAkhilesh Sanikop- Changed number of columns in type code output ("sgdisk -L" and equivalents 138*57696d54SAkhilesh Sanikop in gdisk and cgdisk) from 3 to 2, since some descriptions are long enough 139*57696d54SAkhilesh Sanikop that they're ambiguous with three columns. 140*57696d54SAkhilesh Sanikop 141*57696d54SAkhilesh Sanikop- Makefile change: Add $(LDLIBS) support to enable clean static builds (for 142*57696d54SAkhilesh Sanikop libintl). 143*57696d54SAkhilesh Sanikop 144*57696d54SAkhilesh Sanikop- You can now put the 0xEE partition last in a hybrid MBR using sgdisk. 145*57696d54SAkhilesh Sanikop (Previously, this was possible with gdisk but not with sgdisk.) See the 146*57696d54SAkhilesh Sanikop sgdisk man page for details. 147*57696d54SAkhilesh Sanikop 148*57696d54SAkhilesh Sanikop- Added numerous type codes for Container Linux, Veracrypt, and 149*57696d54SAkhilesh Sanikop Freedesktop.org's Discoverable Partitions Specification 150*57696d54SAkhilesh Sanikop 151*57696d54SAkhilesh Sanikop- Partition type name searches are now case-insensitive. 152*57696d54SAkhilesh Sanikop 153*57696d54SAkhilesh Sanikop- It's now possible to quit out of partition type name searches by typing 154*57696d54SAkhilesh Sanikop "q". 155*57696d54SAkhilesh Sanikop 156*57696d54SAkhilesh Sanikop- When changing a partition type code, the default is now the current 157*57696d54SAkhilesh Sanikop type code, not a platform-specific type code. 158*57696d54SAkhilesh Sanikop 159*57696d54SAkhilesh Sanikop- The UEFI GPT fdisk project 160*57696d54SAkhilesh Sanikop (https://sourceforge.net/projects/uefigptfdisk/) hasn't been updated since 161*57696d54SAkhilesh Sanikop 2016, and is now broken; binaries don't compile with modern GCC 162*57696d54SAkhilesh Sanikop toolchains, and even when dropping back to Ubuntu 14.04, which worked for 163*57696d54SAkhilesh Sanikop GPT fdisk 1.0.4, the resulting binary hangs on launch. Therefore, I'm 164*57696d54SAkhilesh Sanikop dropping support for the EFI build of gdisk, at least unless and until 165*57696d54SAkhilesh Sanikop UEFI GPT fdisk is fixed. 166*57696d54SAkhilesh Sanikop 167*57696d54SAkhilesh Sanikop- Apple no longer supports building i386 or "fat" binaries in XCode (or if 168*57696d54SAkhilesh Sanikop they do, they're making it hard), so I've removed that support. GPT fdisk 169*57696d54SAkhilesh Sanikop macOS binaries are now x86-64 only. Similarly, building now seems to 170*57696d54SAkhilesh Sanikop require macOS 10.9 or later, so that's now the minimum macOS version. I've 171*57696d54SAkhilesh Sanikop also re-built my Mac build environment and tweaked Makefile.mac 172*57696d54SAkhilesh Sanikop appropriately. 173*57696d54SAkhilesh Sanikop 174*57696d54SAkhilesh Sanikop1.0.4 (7/5/2018): 175*57696d54SAkhilesh Sanikop----------------- 176*57696d54SAkhilesh Sanikop 177*57696d54SAkhilesh Sanikop- Added some explicit copy constructors and made some other tweaks to avoid 178*57696d54SAkhilesh Sanikop compiler warnings. 179*57696d54SAkhilesh Sanikop 180*57696d54SAkhilesh Sanikop- The macOS binary for sgdisk is now a pure 64-bit build; I'm no longer 181*57696d54SAkhilesh Sanikop supporting 32-bit builds of sgdisk. The gdisk and cgdisk binaries remain 182*57696d54SAkhilesh Sanikop "fat" 32-/64-bit builds. The reason for dropping the 32-bit support from 183*57696d54SAkhilesh Sanikop sgdisk is that I've re-built my macOS development system, and I had 184*57696d54SAkhilesh Sanikop trouble building a "fat" binary with the fresh install of the popt 185*57696d54SAkhilesh Sanikop libraries upon which sgdisk relies. 32-bit support for the other binaries 186*57696d54SAkhilesh Sanikop is now officially deprecated, too. 187*57696d54SAkhilesh Sanikop 188*57696d54SAkhilesh Sanikop- Added search feature to partition type list functions ("L" on main menu of 189*57696d54SAkhilesh Sanikop gdisk and "L" when entered in response to the "Hex code or GUID" prompt in 190*57696d54SAkhilesh Sanikop gdisk and sgdisk). This feature filters the partition type list to those 191*57696d54SAkhilesh Sanikop which include the search term in their GPT fdisk descriptions. For 192*57696d54SAkhilesh Sanikop instance, typing "Linux" shows only partitions with "Linux" in their 193*57696d54SAkhilesh Sanikop descriptions. Note that the search/filter is case-sensitive. If <Enter> is 194*57696d54SAkhilesh Sanikop pressed, no filter is applied. 195*57696d54SAkhilesh Sanikop 196*57696d54SAkhilesh Sanikop- Change to Makefile.mac to use standard libncurses rather than a 3rd-party 197*57696d54SAkhilesh Sanikop version; should help with cgdisk compatibility. 198*57696d54SAkhilesh Sanikop 199*57696d54SAkhilesh Sanikop- Minor bug fix in alignment of internal data structures. 200*57696d54SAkhilesh Sanikop 201*57696d54SAkhilesh Sanikop- Minor bug fix in handling of damaged disks. Also, GPT fdisk now reports 202*57696d54SAkhilesh Sanikop more information on what data structures are damaged when a damaged disk 203*57696d54SAkhilesh Sanikop is detected. 204*57696d54SAkhilesh Sanikop 205*57696d54SAkhilesh Sanikop- Added type code for Apple APFS (7C3457EF-0000-11AA-AA11-00306543ECAC, 206*57696d54SAkhilesh Sanikop 0xaf0a). 207*57696d54SAkhilesh Sanikop 208*57696d54SAkhilesh Sanikop- Added type code for Atari TOS basic data (0xa200, 209*57696d54SAkhilesh Sanikop 734E5AFE-F61A-11E6-BC64-92361F002671). 210*57696d54SAkhilesh Sanikop 211*57696d54SAkhilesh Sanikop- Added type codes for Linux dm-crypt (0x8308, 212*57696d54SAkhilesh Sanikop 7FFEC5C9-2D00-49B7-8941-3EA10A5586B7) and LUKS (0x8309, 213*57696d54SAkhilesh Sanikop CA7D7CCB-63ED-4C53-861C-1742536059CC) partitions. 214*57696d54SAkhilesh Sanikop 215*57696d54SAkhilesh Sanikop- Added 18 Ceph partition type codes. 216*57696d54SAkhilesh Sanikop 217*57696d54SAkhilesh Sanikop- Added 52 (yes, 52!) Android partition type codes. 218*57696d54SAkhilesh Sanikop 219*57696d54SAkhilesh Sanikop- Changed "Creating new GPT entries" message to read "Creating new 220*57696d54SAkhilesh Sanikop GPT entries in memory" because the latter is clearer, particularly when 221*57696d54SAkhilesh Sanikop using sgdisk with a non-destructive option, like "-p". 222*57696d54SAkhilesh Sanikop 223*57696d54SAkhilesh Sanikop1.0.3 (7/27/2017): 224*57696d54SAkhilesh Sanikop------------------ 225*57696d54SAkhilesh Sanikop 226*57696d54SAkhilesh Sanikop- Fixed a major bug that caused invalid partition tables to be generated 227*57696d54SAkhilesh Sanikop when creating a new partition table (that is, partitioning a blank disk or 228*57696d54SAkhilesh Sanikop converting from MBR). 229*57696d54SAkhilesh Sanikop 230*57696d54SAkhilesh Sanikop1.0.2 (7/26/2017): 231*57696d54SAkhilesh Sanikop------------------ 232*57696d54SAkhilesh Sanikop 233*57696d54SAkhilesh Sanikop- On Linux, the p/-p/--print command now shows the disk's model name, as 234*57696d54SAkhilesh Sanikop reported in /sys/block/sda/device/model (or equivalent filenames for other 235*57696d54SAkhilesh Sanikop disks). This feature does not yet work on other platforms, on which the 236*57696d54SAkhilesh Sanikop model name line is omitted from the output. This line is also not shown 237*57696d54SAkhilesh Sanikop when accessing disk image files, even on Linux. 238*57696d54SAkhilesh Sanikop 239*57696d54SAkhilesh Sanikop- GPT fdisk can now report both the physical and logical sector sizes of 240*57696d54SAkhilesh Sanikop disks, but only on 2.6.32 and later Linux kernels. The verify feature now 241*57696d54SAkhilesh Sanikop uses the larger of the set alignment and physical/logical block sizes for 242*57696d54SAkhilesh Sanikop testing alignment, and setting alignment to something other than an exact 243*57696d54SAkhilesh Sanikop multiple of the ratio of the physical to logical block size results in a 244*57696d54SAkhilesh Sanikop warning. 245*57696d54SAkhilesh Sanikop 246*57696d54SAkhilesh Sanikop- Addition of new verification checks, mostly (but not exclusively) related 247*57696d54SAkhilesh Sanikop to the new j/-j/--move-main-table option. 248*57696d54SAkhilesh Sanikop 249*57696d54SAkhilesh Sanikop- Added new option: 'j' on the experts' menu in gdisk; 250*57696d54SAkhilesh Sanikop '-j/--move-main-table={sector}' in sgdisk. This option enables relocating 251*57696d54SAkhilesh Sanikop the main partition table from sector 2 (the default location) to somewhere 252*57696d54SAkhilesh Sanikop else on the disk. The main reason I know of to do this is if the disk is 253*57696d54SAkhilesh Sanikop to be used with a system-on-chip (SoC) computer, some of which require the 254*57696d54SAkhilesh Sanikop boot loader to be located at sector 2. If you pass this option the default 255*57696d54SAkhilesh Sanikop value of 2, it has the effect of reducing the padding placed between the 256*57696d54SAkhilesh Sanikop main partition table and the first usable sector value created by the 257*57696d54SAkhilesh Sanikop Linux fdisk tool. 258*57696d54SAkhilesh Sanikop 259*57696d54SAkhilesh Sanikop- Updated man pages with new recommendations for ESP and BIOS Boot Partition 260*57696d54SAkhilesh Sanikop sizes. 261*57696d54SAkhilesh Sanikop 262*57696d54SAkhilesh Sanikop- Added four type codes (AF06 through AF09) for Apple SoftRAID (Status, 263*57696d54SAkhilesh Sanikop Scratch, Volume, and Cache). 264*57696d54SAkhilesh Sanikop 265*57696d54SAkhilesh Sanikop- Added two type codes for the Open Network Install Environment (ONIE): 266*57696d54SAkhilesh Sanikop 0xe100 (7412F7D5-A156-4B13-81DC-867174929325) and 0xe101 267*57696d54SAkhilesh Sanikop (D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149). 268*57696d54SAkhilesh Sanikop 269*57696d54SAkhilesh Sanikop- Added thirteen type codes for Android partitions (0xa000 through 270*57696d54SAkhilesh Sanikop 0xa00c). 271*57696d54SAkhilesh Sanikop 272*57696d54SAkhilesh Sanikop- Added type code for QNX6 (aka QNX Power-Safe) filesystem: 0xb300, for 273*57696d54SAkhilesh Sanikop CEF5A9AD-73BC-4601-89F3-CDEEEEE321A1. 274*57696d54SAkhilesh Sanikop 275*57696d54SAkhilesh Sanikop- Removed stray debug message ("REALLY setting name!") from sgdisk, 276*57696d54SAkhilesh Sanikop when setting new name via -c option. 277*57696d54SAkhilesh Sanikop 278*57696d54SAkhilesh Sanikop1.0.1 (10/18/2015): 279*57696d54SAkhilesh Sanikop------------------- 280*57696d54SAkhilesh Sanikop 281*57696d54SAkhilesh Sanikop- Created uninstall-fixparts and uninstall-gdisk scripts for OS X. As the 282*57696d54SAkhilesh Sanikop names imply, these scripts remove the files installed by the fixparts and 283*57696d54SAkhilesh Sanikop gdisk packages, respectively. 284*57696d54SAkhilesh Sanikop 285*57696d54SAkhilesh Sanikop- Fixed bug that caused -N/--largest-new option to sgdisk to fail when 286*57696d54SAkhilesh Sanikop fed a "0" option. 287*57696d54SAkhilesh Sanikop 288*57696d54SAkhilesh Sanikop- Fixed bug that caused input glitches in EFI version of gdisk. 289*57696d54SAkhilesh Sanikop 290*57696d54SAkhilesh Sanikop- Fixed bug that caused sgdisk to not return an appropriate error code 291*57696d54SAkhilesh Sanikop when it encountered a write error when saving changes. 292*57696d54SAkhilesh Sanikop 293*57696d54SAkhilesh Sanikop- Fixed bug that caused cgdisk's "Info" display to under-report the 294*57696d54SAkhilesh Sanikop partition's size by one sector. 295*57696d54SAkhilesh Sanikop 296*57696d54SAkhilesh Sanikop- OS X 10.11 includes new security features that prevent GPT fdisk from 297*57696d54SAkhilesh Sanikop working unless these features are disabled. To do so, you must boot to a 298*57696d54SAkhilesh Sanikop Recovery HD system, open a Terminal, type "csrutil disable", and reboot 299*57696d54SAkhilesh Sanikop into the normal system. You can re-enable the security features by 300*57696d54SAkhilesh Sanikop repeating the process, but specify "enable" rather than "disable". I've 301*57696d54SAkhilesh Sanikop added a message pointing users to a Web page explaining how to disable 302*57696d54SAkhilesh Sanikop this feature when gdisk detects that it can't write to the disk under OS 303*57696d54SAkhilesh Sanikop X. If you know of a way around this (including code changes to gdisk), 304*57696d54SAkhilesh Sanikop please contact me. 305*57696d54SAkhilesh Sanikop 306*57696d54SAkhilesh Sanikop- I've updated the OS X installation location from the Unix-standard 307*57696d54SAkhilesh Sanikop /usr/sbin (and related locations for documentation) to /usr/local/bin 308*57696d54SAkhilesh Sanikop (and related locations for documentation). This is Just Plain Crazy from 309*57696d54SAkhilesh Sanikop a Unix point of view, but Apple has to be Apple and do things just a 310*57696d54SAkhilesh Sanikop little bit differently. 311*57696d54SAkhilesh Sanikop 312*57696d54SAkhilesh Sanikop- I've updated my OS X environment to OS X 10.11 and LLVM 7.0.0. This has 313*57696d54SAkhilesh Sanikop also meant installing fresh versions of popt and ncurses from MacPorts, 314*57696d54SAkhilesh Sanikop which may require upgrading popt to get sgdisk working on some systems. 315*57696d54SAkhilesh Sanikop (gdisk, cgdisk, and fixparts should continue to work normally on all 316*57696d54SAkhilesh Sanikop systems.) The OS X binaries are now "fat" (32- and 64-bit) versions, 317*57696d54SAkhilesh Sanikop which should have no noticeable effect unless you have a Mac with broken 318*57696d54SAkhilesh Sanikop 32-bit support, in which case the binaries will now work. 319*57696d54SAkhilesh Sanikop 320*57696d54SAkhilesh Sanikop- Changed the default name of 0xab00 partitions from "Apple boot" to 321*57696d54SAkhilesh Sanikop "Recovery HD", since the latter is the name that Apple gives these 322*57696d54SAkhilesh Sanikop partitions. Also, I discovered through painful experience that OS X 323*57696d54SAkhilesh Sanikop flakes out and won't boot if the name is something other than "Recovery 324*57696d54SAkhilesh Sanikop HD", so it really has to have the right name! 325*57696d54SAkhilesh Sanikop 326*57696d54SAkhilesh Sanikop- Changed the OpenBSD type codes (0xa600 and 0xa601): 0xa600 is now 327*57696d54SAkhilesh Sanikop 824CC7A0-36A8-11E3-890A-952519AD3F61 (OpenBSD disklabel) and 0xa601 is 328*57696d54SAkhilesh Sanikop now gone. Previously, 0xa600 was 516E7CB4-6ECF-11D6-8FF8-00022D09712B, a 329*57696d54SAkhilesh Sanikop duplicate of the FreeBSD disklabel, and 0xa601 was 330*57696d54SAkhilesh Sanikop 824CC7A0-36A8-11E3-890A-952519AD3F61. OpenBSD is now officially 331*57696d54SAkhilesh Sanikop supporting 824CC7A0-36A8-11E3-890A-952519AD3F61 as a disklabel type, 332*57696d54SAkhilesh Sanikop though. It's unclear what, if anything, OpenBSD will use for 333*57696d54SAkhilesh Sanikop non-disklabel type codes at the moment. 334*57696d54SAkhilesh Sanikop 335*57696d54SAkhilesh Sanikop- Added GUID 0311FC50-01CA-4725-AD77-9ADBB20ACE98 (0xbc00) for 336*57696d54SAkhilesh Sanikop Acronis Secure Zone backup partitions. 337*57696d54SAkhilesh Sanikop 338*57696d54SAkhilesh Sanikop- Fixed bug that caused random crashes on ppc64el systems (and perhaps 339*57696d54SAkhilesh Sanikop others). 340*57696d54SAkhilesh Sanikop 341*57696d54SAkhilesh Sanikop- Added GUID C91818F9-8025-47AF-89D2-F030D7000C2C (0x3900) for Plan 9. 342*57696d54SAkhilesh Sanikop 343*57696d54SAkhilesh Sanikop- Added GUID 69DAD710-2CE4-4E3C-B16C-21A1D49ABED3 (0x8307) for 32-bit ARM 344*57696d54SAkhilesh Sanikop Linux root (/) partition, as per the Freedesktop.org Discoverable 345*57696d54SAkhilesh Sanikop Partition Spec 346*57696d54SAkhilesh Sanikop (http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/). 347*57696d54SAkhilesh Sanikop 348*57696d54SAkhilesh Sanikop- Edited man pages to clarify that default alignment is to 1MiB boundaries; 349*57696d54SAkhilesh Sanikop this translates to 2048 sectors on disks with 512-byte sectors, but it 350*57696d54SAkhilesh Sanikop will be something else on disks with other sector sizes. 351*57696d54SAkhilesh Sanikop 352*57696d54SAkhilesh Sanikop- Changed behavior of -z/--zap and -Z/--zap-all options to sgdisk so that 353*57696d54SAkhilesh Sanikop if a subsequent command causes changes, they'll be written to disk. 354*57696d54SAkhilesh Sanikop Previously, doing something like "sgdisk --zap-all --clear /dev/sdd" 355*57696d54SAkhilesh Sanikop would wipe the disk but not create a partition table; to create a blank 356*57696d54SAkhilesh Sanikop table you'd need to do "sgdisk --zap-all --clear --mbrtogpt /dev/sdd", 357*57696d54SAkhilesh Sanikop which is a bit odd and counter-intuitive, to the point of arguably being 358*57696d54SAkhilesh Sanikop a bug. 359*57696d54SAkhilesh Sanikop 360*57696d54SAkhilesh Sanikop1.0.0 (3/16/2015): 361*57696d54SAkhilesh Sanikop------------------ 362*57696d54SAkhilesh Sanikop 363*57696d54SAkhilesh Sanikop- I'm now building a binary package of gdisk_x64.efi, using the UEFI GPT 364*57696d54SAkhilesh Sanikop fdisk package. 365*57696d54SAkhilesh Sanikop 366*57696d54SAkhilesh Sanikop- Added partition type for OpenBSD data 367*57696d54SAkhilesh Sanikop (824CC7A0-36A8-11E3-890A-952519AD3F61/0xa601). Also mapped 0xa600 to the 368*57696d54SAkhilesh Sanikop FreeBSD disklabel type code (516E7CB4-6ECF-11D6-8FF8-00022D09712B). I'm 369*57696d54SAkhilesh Sanikop not sure that's 100% correct, but since I can't find references to an 370*57696d54SAkhilesh Sanikop OpenBSD disklabel GPT type code, it seems the best choice at the moment. 371*57696d54SAkhilesh Sanikop 372*57696d54SAkhilesh Sanikop- Added partition type for Windows Storage Spaces 373*57696d54SAkhilesh Sanikop (E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D/0x4202) 374*57696d54SAkhilesh Sanikop 375*57696d54SAkhilesh Sanikop- Added -O/--print-mbr option to sgdisk, enabling easier display of MBR 376*57696d54SAkhilesh Sanikop data structures without invoking gdisk. 377*57696d54SAkhilesh Sanikop 378*57696d54SAkhilesh Sanikop- Updated warning message: "EBR describes a logical partition" now reads 379*57696d54SAkhilesh Sanikop "EBR points to an EBR," which is more technically correct. 380*57696d54SAkhilesh Sanikop 381*57696d54SAkhilesh Sanikop- Altered warning displayed when run from Windows on non-GPT disk, because 382*57696d54SAkhilesh Sanikop Windows on UEFI-based systems is becoming more common. 383*57696d54SAkhilesh Sanikop 384*57696d54SAkhilesh Sanikop- Fixed spurious "1" return value in gdisk. 385*57696d54SAkhilesh Sanikop 386*57696d54SAkhilesh Sanikop- Small code changes to support compilation as EFI application with the 387*57696d54SAkhilesh Sanikop UEFI GPT fdisk library 388*57696d54SAkhilesh Sanikop (http://sourceforge.net/projects/uefigptfdisk/?source=directory) 389*57696d54SAkhilesh Sanikop 390*57696d54SAkhilesh Sanikop- Added new partition type codes for Ceph 391*57696d54SAkhilesh Sanikop (https://github.com/ceph/ceph/blob/9bcc42a3e6b08521694b5c0228b2c6ed7b3d312e/src/ceph-disk#L76-L81): 392*57696d54SAkhilesh Sanikop 4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D/0xf800 (Ceph OSD), 393*57696d54SAkhilesh Sanikop 4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D/0xf801 (Ceph dm-crypt OSD), 394*57696d54SAkhilesh Sanikop 45B0969E-9B03-4F30-B4C6-B4B80CEFF106/0xf802 (Ceph journal), 395*57696d54SAkhilesh Sanikop 45B0969E-9B03-4F30-B4C6-5EC00CEFF106/0xf803 (Ceph dm-crypt journal), 396*57696d54SAkhilesh Sanikop 89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE/0xf804 (Ceph disk in creation), and 397*57696d54SAkhilesh Sanikop 89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE/0xf805 (Ceph dm-crypt disk in 398*57696d54SAkhilesh Sanikop creation) 399*57696d54SAkhilesh Sanikop 400*57696d54SAkhilesh Sanikop- Added new partition type codes from 401*57696d54SAkhilesh Sanikop http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/: 402*57696d54SAkhilesh Sanikop 44479540-F297-41B2-9AF7-D131D5F0458A/0x8303 (Linux / on x86), 403*57696d54SAkhilesh Sanikop 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709/0x8304 (Linux / on x86-64), 404*57696d54SAkhilesh Sanikop B921B045-1DF0-41C3-AF44-4C6F280D3FAE/0x8305 (Linux / on 64-bit ARM), 405*57696d54SAkhilesh Sanikop 3B8F8425-20E0-4F3B-907F-1A25A76F98E8/0x8306 (Linux /srv). 406*57696d54SAkhilesh Sanikop 407*57696d54SAkhilesh Sanikop0.8.10 (3/2/2014): 408*57696d54SAkhilesh Sanikop------------------ 409*57696d54SAkhilesh Sanikop 410*57696d54SAkhilesh Sanikop- Added feature to sgdisk's -A/--attributes, -c/--change-name, 411*57696d54SAkhilesh Sanikop -t/--typecode, and -u/--partition-guid commands: If a -n/--new option 412*57696d54SAkhilesh Sanikop with "0" as the partition number precedes these options on the command 413*57696d54SAkhilesh Sanikop line, passin "0" as the partition number to the following options causes 414*57696d54SAkhilesh Sanikop them to use the newly-created partition. For instance, "sgdisk -n 415*57696d54SAkhilesh Sanikop 0:0:+550M -t 0:EF00 /dev/sda" creates a new partition with a type code of 416*57696d54SAkhilesh Sanikop EF00. (Previous versions would ignore the "-t 0:EF00" option.) 417*57696d54SAkhilesh Sanikop 418*57696d54SAkhilesh Sanikop- Fixed bug that caused incorrect partition number to be displayed by 419*57696d54SAkhilesh Sanikop sgdisk in error messages when the user specified a non-existent partition 420*57696d54SAkhilesh Sanikop for inclusion in a hybrid MBR or conversion to a conventional MBR. 421*57696d54SAkhilesh Sanikop 422*57696d54SAkhilesh Sanikop- Fixed new (in 0.8.9) bug that caused a failure to create more than one 423*57696d54SAkhilesh Sanikop hybridized partition when creating a hybrid MBR. 424*57696d54SAkhilesh Sanikop 425*57696d54SAkhilesh Sanikop- Fixed bug that caused gdisk and sgdisk to create hybridized partitions 426*57696d54SAkhilesh Sanikop that ended at or above the 2^32 sector point with incorrect end values. 427*57696d54SAkhilesh Sanikop The behavior now varies between gdisk and sgdisk: gdisk now creates 428*57696d54SAkhilesh Sanikop hybrid partitions that begin below 2^32 sectors and that are smaller than 429*57696d54SAkhilesh Sanikop 2^32 sectors, since this is technically legal; but gdisk displays a 430*57696d54SAkhilesh Sanikop warning, because some OSes (such as DOS, Windows XP, OS/2, and BeOS) 431*57696d54SAkhilesh Sanikop misbehave with such partitions. AFAIK, only Linux, FreeBSD, and Windows 7 432*57696d54SAkhilesh Sanikop work properly with such partitions. Because of this fact and because 433*57696d54SAkhilesh Sanikop sgdisk is a more automated tool, it's stricter in how it handles things: 434*57696d54SAkhilesh Sanikop It refuses to create a hybrid partition if the original ends at or above 435*57696d54SAkhilesh Sanikop the 2^32 sector mark. 436*57696d54SAkhilesh Sanikop 437*57696d54SAkhilesh Sanikop0.8.9 (2/17/2014): 438*57696d54SAkhilesh Sanikop------------------ 439*57696d54SAkhilesh Sanikop 440*57696d54SAkhilesh Sanikop- Removed dependency on libicu for UTF-16 support. 441*57696d54SAkhilesh Sanikop 442*57696d54SAkhilesh Sanikop- Fixed spurious "0xEE partition doesn't start on sector 1" warning in 443*57696d54SAkhilesh Sanikop FixParts (and perhaps in other programs under some circumstances). 444*57696d54SAkhilesh Sanikop 445*57696d54SAkhilesh Sanikop- Added GPT regeneration command to GPT-destruction options ('z' in gdisk, 446*57696d54SAkhilesh Sanikop -z and -Z options to sgdisk). This is done to avoid wiping out data 447*57696d54SAkhilesh Sanikop mid-disk that might not be backup GPT data structures, which could 448*57696d54SAkhilesh Sanikop otherwise occur if a RAID array was resized in certain ways. 449*57696d54SAkhilesh Sanikop 450*57696d54SAkhilesh Sanikop- Added check for an oversized 0xEE protective partition. The program now 451*57696d54SAkhilesh Sanikop auto-repairs this condition on loading if the GPT data seem otherwise 452*57696d54SAkhilesh Sanikop valid. This is done because I've been receiving reports of some disks 453*57696d54SAkhilesh Sanikop (possibly from some OEM Windows 8 loads) that violate the GPT spec in 454*57696d54SAkhilesh Sanikop this way, and gdisk was reporting write errors when saving data. 455*57696d54SAkhilesh Sanikop 456*57696d54SAkhilesh Sanikop- If the GPT data seem to be damaged in some way or if the disk seems to 457*57696d54SAkhilesh Sanikop be a hybrid MBR and if the MBR partition(s) don't fit on the disk, the 458*57696d54SAkhilesh Sanikop verify (v) function now warns of this condition, and writing the disk if 459*57696d54SAkhilesh Sanikop it exists also displays a more specific error message about the problem. 460*57696d54SAkhilesh Sanikop 461*57696d54SAkhilesh Sanikop- Added new type codes (3000, 7412F7D5-A156-4B13-81DC-867174929325 and 462*57696d54SAkhilesh Sanikop 3001, D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149) for Open Network Install 463*57696d54SAkhilesh Sanikop Environment (ONIE) boot and config partitions, respectively. 464*57696d54SAkhilesh Sanikop 465*57696d54SAkhilesh Sanikop- Added new type ccde (ED01, BFBFAFE7-A34F-448A-9A5B-6213EB736C22), for 466*57696d54SAkhilesh Sanikop Lenovo's ESP-like partition. 467*57696d54SAkhilesh Sanikop 468*57696d54SAkhilesh Sanikop0.8.8 (10/14/2013): 469*57696d54SAkhilesh Sanikop------------------- 470*57696d54SAkhilesh Sanikop 471*57696d54SAkhilesh Sanikop- Fixed bug that could cause segfault when passing an invalid partition 472*57696d54SAkhilesh Sanikop number to sgdisk's -i/--info command. 473*57696d54SAkhilesh Sanikop 474*57696d54SAkhilesh Sanikop- Added new type code: 933AC7E1-2EB4-4F13-B844-0E14E2AEF915, or gdisk code 475*57696d54SAkhilesh Sanikop 8302, for Linux /home partitions. This type code is used by recent 476*57696d54SAkhilesh Sanikop versions of systemd to permit /home to be auto-mounted; see 477*57696d54SAkhilesh Sanikop http://www.freedesktop.org/software/systemd/man/systemd-gpt-auto-generator.html 478*57696d54SAkhilesh Sanikop for details. 479*57696d54SAkhilesh Sanikop 480*57696d54SAkhilesh Sanikop- Added new type code: 9E1A2D38-C612-4316-AA26-8B49521E5A8B, or gdisk code 481*57696d54SAkhilesh Sanikop 4100, for PowerPC PReP (PowerPC reference platform) boot. 482*57696d54SAkhilesh Sanikop 483*57696d54SAkhilesh Sanikop- The number of partition type codes has grown large enough that it fills 484*57696d54SAkhilesh Sanikop an 80x24 display. I've therefore added a pause (with a prompt to hit 485*57696d54SAkhilesh Sanikop <Enter>) to display more items after showing 21 lines in gdisk or after 486*57696d54SAkhilesh Sanikop the screen has nearly filled with entries in cgdisk. There's no such 487*57696d54SAkhilesh Sanikop pause/prompt in sgdisk, though. 488*57696d54SAkhilesh Sanikop 489*57696d54SAkhilesh Sanikop- Fine-tuned verification ('v') check for 0xEE partition that doesn't begin 490*57696d54SAkhilesh Sanikop on sector 1: Previously, a disk with multiple 0xEE partitions would 491*57696d54SAkhilesh Sanikop always trigger this warning. Now, the warning occurs only if NONE of the 492*57696d54SAkhilesh Sanikop 0xEE partitions begins on sector 1. 493*57696d54SAkhilesh Sanikop 494*57696d54SAkhilesh Sanikop- Fixed hybrid MBR creation on disks larger than 2TiB: Previously, if one 495*57696d54SAkhilesh Sanikop opted to create an extra partition to cover unused space following 496*57696d54SAkhilesh Sanikop hybridized partitions, gdisk would hang. 497*57696d54SAkhilesh Sanikop 498*57696d54SAkhilesh Sanikop- Added check for an active/bootable 0xEE protective partition to the 499*57696d54SAkhilesh Sanikop verify ('v') function. If found, this is not counted as an error, but 500*57696d54SAkhilesh Sanikop it is called out to the user, since it can cause some EFIs (such as 501*57696d54SAkhilesh Sanikop VirtualBox's EFI) to ignore the disk. 502*57696d54SAkhilesh Sanikop 503*57696d54SAkhilesh Sanikop0.8.7 (7/8/2013): 504*57696d54SAkhilesh Sanikop----------------- 505*57696d54SAkhilesh Sanikop 506*57696d54SAkhilesh Sanikop- Modified Mac version so that it can work on /dev/rdisk* devices as well 507*57696d54SAkhilesh Sanikop as /dev/disk* devices. The result is that, when using the /dev/rdisk* 508*57696d54SAkhilesh Sanikop devices, the partition table can sometimes be re-read without removing 509*57696d54SAkhilesh Sanikop the disk or rebooting. 510*57696d54SAkhilesh Sanikop 511*57696d54SAkhilesh Sanikop- Added "-a" option to cgdisk to use a ">" symbol to the left of the 512*57696d54SAkhilesh Sanikop selected partition rather than ncurses highlighting. 513*57696d54SAkhilesh Sanikop 514*57696d54SAkhilesh Sanikop- Modified "converting MBR to GPT" message to clarify that the conversion 515*57696d54SAkhilesh Sanikop is being held in memory, since some people have mistakenly assumed that a 516*57696d54SAkhilesh Sanikop "gdisk -l" operation will change an MBR disk to a GPT disk without 517*57696d54SAkhilesh Sanikop prompting. 518*57696d54SAkhilesh Sanikop 519*57696d54SAkhilesh Sanikop- Added partition type code for freedesktop.org's proposed $BOOT partition 520*57696d54SAkhilesh Sanikop (bc13c2ff-59e6-4262-a352-b275fd6f7172; GPT fdisk type code EA00) 521*57696d54SAkhilesh Sanikop 522*57696d54SAkhilesh Sanikop- Adjusted alignment code when using -n or -N in sgdisk to keep the 523*57696d54SAkhilesh Sanikop requested partition size (if specified using +###{MGT} terminology) 524*57696d54SAkhilesh Sanikop as the requested value rather than relative to the requested start 525*57696d54SAkhilesh Sanikop point. This gives you the requested partition size rather than be 526*57696d54SAkhilesh Sanikop slightly smaller if sgdisk needs to adjust the start point up a bit and 527*57696d54SAkhilesh Sanikop it prevents gaps from appearing between partitions if several are created 528*57696d54SAkhilesh Sanikop in succession using automatic placement of the start point. 529*57696d54SAkhilesh Sanikop 530*57696d54SAkhilesh Sanikop- Fixed small bugs in gdisk_test.sh script. 531*57696d54SAkhilesh Sanikop 532*57696d54SAkhilesh Sanikop- Removed stray debug message that would appear when reading MBR disks. 533*57696d54SAkhilesh Sanikop 534*57696d54SAkhilesh Sanikop- Added partition type code for Intel Rapid Start partition (GUID 535*57696d54SAkhilesh Sanikop D3BFE2DE-3DAF-11DF-BA40-E3A556D89593, code 8400), used by systems that 536*57696d54SAkhilesh Sanikop implement Intel's Rapid Start technology. See 537*57696d54SAkhilesh Sanikop http://blog.adios.tw/2012/10/funtoo-linux-and-intel-rapid-start.html or 538*57696d54SAkhilesh Sanikop http://mjg59.dreamwidth.org/26022.html. 539*57696d54SAkhilesh Sanikop 540*57696d54SAkhilesh Sanikop- Added partition type code for Haiku BFS (GUID 541*57696d54SAkhilesh Sanikop 42465331-3BA3-10F1-802A-4861696B7521; code EB00). 542*57696d54SAkhilesh Sanikop 543*57696d54SAkhilesh Sanikop0.8.6 (1/9/2013): 544*57696d54SAkhilesh Sanikop----------------- 545*57696d54SAkhilesh Sanikop 546*57696d54SAkhilesh Sanikop- Fixed a bug that could cause sgdisk to crash when passing a partition 547*57696d54SAkhilesh Sanikop number of 0 to the -t option. 548*57696d54SAkhilesh Sanikop 549*57696d54SAkhilesh Sanikop- Added support for building under Solaris. 550*57696d54SAkhilesh Sanikop 551*57696d54SAkhilesh Sanikop- Added a new check to the verification code. 552*57696d54SAkhilesh Sanikop 553*57696d54SAkhilesh Sanikop- Added partition type code for Sony system partition 554*57696d54SAkhilesh Sanikop (F4019732-066E-4E12-8273-346C5641494F). I'm not entirely clear what this 555*57696d54SAkhilesh Sanikop is used for, but it's appearing on some new Sony computers. 556*57696d54SAkhilesh Sanikop 557*57696d54SAkhilesh Sanikop- Tweaked hybrid MBR creation options to fix a problem that caused the main 558*57696d54SAkhilesh Sanikop 0xEE MBR partition to NOT be created if the user told gdisk to NOT place 559*57696d54SAkhilesh Sanikop it at the start of the disk AND IF fewer than three partitions are 560*57696d54SAkhilesh Sanikop hybridize AND IF the user opted to create a second protective partition. 561*57696d54SAkhilesh Sanikop 562*57696d54SAkhilesh Sanikop- Changed default build options for Mac OS X to *NOT* use libicu, 563*57696d54SAkhilesh Sanikop since it seems to have broken somewhere along the line. It still 564*57696d54SAkhilesh Sanikop works on Linux, though. 565*57696d54SAkhilesh Sanikop 566*57696d54SAkhilesh Sanikop- Added partition type codes for VMWare ESX (FB00, FB01, and FC00). 567*57696d54SAkhilesh Sanikop 568*57696d54SAkhilesh Sanikop0.8.5 (5/30/2012): 569*57696d54SAkhilesh Sanikop------------------ 570*57696d54SAkhilesh Sanikop 571*57696d54SAkhilesh Sanikop- Changed code that writes the partition table so that a disk sync 572*57696d54SAkhilesh Sanikop operation occurs even if one or more write operations failed (but not if 573*57696d54SAkhilesh Sanikop they all failed). This is intended to work around a bug that a user 574*57696d54SAkhilesh Sanikop reported on a Windows system on which the write of the protective MBR 575*57696d54SAkhilesh Sanikop failed, although everything else worked. (I suspect anti-virus software 576*57696d54SAkhilesh Sanikop may have been blocking write access to the MBR.) 577*57696d54SAkhilesh Sanikop 578*57696d54SAkhilesh Sanikop- Added type codes for Midnight BSD (0xA580 - 0xA585). I used these codes 579*57696d54SAkhilesh Sanikop because Midnight BSD uses the same 0xA5 type code as FreeBSD on MBR 580*57696d54SAkhilesh Sanikop disks, so I'm starting Midnight BSD's numbering halfway through the 581*57696d54SAkhilesh Sanikop 0xA5## range. 582*57696d54SAkhilesh Sanikop 583*57696d54SAkhilesh Sanikop0.8.4 (3/25/2012): 584*57696d54SAkhilesh Sanikop------------------ 585*57696d54SAkhilesh Sanikop 586*57696d54SAkhilesh Sanikop- REALLY fixed Ctrl+D problems! Now gdisk terminates upon receiving a 587*57696d54SAkhilesh Sanikop Ctrl+D. In all previous versions, it could lock itself into a CPU-hogging 588*57696d54SAkhilesh Sanikop loop if launched via "sudo" from a terminal window that was then closed 589*57696d54SAkhilesh Sanikop or if Ctrl+D was pressed at certain input prompts (for a partition name 590*57696d54SAkhilesh Sanikop or sector number, for instance). 591*57696d54SAkhilesh Sanikop 592*57696d54SAkhilesh Sanikop0.8.3 (3/23/2012): 593*57696d54SAkhilesh Sanikop------------------ 594*57696d54SAkhilesh Sanikop 595*57696d54SAkhilesh Sanikop- Fixed compilation problem on GCC 4.7. 596*57696d54SAkhilesh Sanikop 597*57696d54SAkhilesh Sanikop- Improved handling of Ctrl+D on some systems. 598*57696d54SAkhilesh Sanikop 599*57696d54SAkhilesh Sanikop- Added disk's name to message stating that a disk write was successful. 600*57696d54SAkhilesh Sanikop 601*57696d54SAkhilesh Sanikop- Fixed bug that caused creation of >2TiB partitions on 32-bit systems to 602*57696d54SAkhilesh Sanikop be truncated in sgdisk. 603*57696d54SAkhilesh Sanikop 604*57696d54SAkhilesh Sanikop0.8.2 (1/22/2012): 605*57696d54SAkhilesh Sanikop------------------ 606*57696d54SAkhilesh Sanikop 607*57696d54SAkhilesh Sanikop- Adjusted the code to support a number of partitions that's not a multiple 608*57696d54SAkhilesh Sanikop of the number of partition table entries that fits in a sector (normally 609*57696d54SAkhilesh Sanikop 4 per sector). The program still rounds up, when necessary, when resizing 610*57696d54SAkhilesh Sanikop the partition table manually, but not when loading a partition table that 611*57696d54SAkhilesh Sanikop contains a peculiar number of partitions. This helps prevent spurious 612*57696d54SAkhilesh Sanikop error messages about CRC problems when loading some Solaris partition 613*57696d54SAkhilesh Sanikop tables. 614*57696d54SAkhilesh Sanikop 615*57696d54SAkhilesh Sanikop- Fixed bugs relating to the handling of empty partitions; Solaris's ZFS 616*57696d54SAkhilesh Sanikop tools create weird empty partitions that are legal but that gdisk wasn't 617*57696d54SAkhilesh Sanikop handling properly. (Specifically, they sometimes have non-zero end 618*57696d54SAkhilesh Sanikop points; gdisk assumed empty partitions had end points of 0.) 619*57696d54SAkhilesh Sanikop 620*57696d54SAkhilesh Sanikop- Fixed a bug that caused an infinite loop of input prompts if the user 621*57696d54SAkhilesh Sanikop pressed Ctrl+D. 622*57696d54SAkhilesh Sanikop 623*57696d54SAkhilesh Sanikop- Changed gdisk's first-sector input operation to specify a sector number 624*57696d54SAkhilesh Sanikop that's properly aligned as the default value. This eliminates the need 625*57696d54SAkhilesh Sanikop to alter that value and notify the user of the change when the user 626*57696d54SAkhilesh Sanikop hits "Enter" for the default value as the first partition on an empty 627*57696d54SAkhilesh Sanikop disk (as well as in some other situations). 628*57696d54SAkhilesh Sanikop 629*57696d54SAkhilesh Sanikop0.8.1 (10/1/2011): 630*57696d54SAkhilesh Sanikop------------------ 631*57696d54SAkhilesh Sanikop 632*57696d54SAkhilesh Sanikop- Fixed bug that could cause FixParts to keep a partition's assignment 633*57696d54SAkhilesh Sanikop as logical when FixPart could not actually do so. This could happen 634*57696d54SAkhilesh Sanikop when there are no gaps between two logical partitions. Some partitioning 635*57696d54SAkhilesh Sanikop tools can create such configurations, but FixParts can't. Such 636*57696d54SAkhilesh Sanikop configurations are extremely rare. I've only encountered them when 637*57696d54SAkhilesh Sanikop logical partitions are out of order. 638*57696d54SAkhilesh Sanikop 639*57696d54SAkhilesh Sanikop- Added code to detect infinite loops of logical partitions when reading 640*57696d54SAkhilesh Sanikop MBR data. When detected, the program now stops reading after the first 641*57696d54SAkhilesh Sanikop loop, so no duplicates appear in the partition list. 642*57696d54SAkhilesh Sanikop 643*57696d54SAkhilesh Sanikop- Fixed bug in partition overlap detection in MBR code. 644*57696d54SAkhilesh Sanikop 645*57696d54SAkhilesh Sanikop- Changed GPT reading code to use the size encoded in GPT headers to 646*57696d54SAkhilesh Sanikop determine how much of the header to use in computing a CRC, with the 647*57696d54SAkhilesh Sanikop restriction that the size be equal to or less than the disk's sector 648*57696d54SAkhilesh Sanikop size. This should work around problems with libefi in ZFS, which sets the 649*57696d54SAkhilesh Sanikop header size to 512 rather than the more common 92. A caveat: If the 650*57696d54SAkhilesh Sanikop disk's sector size is larger than the GPTHeader data structure size (512 651*57696d54SAkhilesh Sanikop bytes), then the rest of the sector's contents are ignored and replaced 652*57696d54SAkhilesh Sanikop with 0 values. This could produce false positives on CRC checks on disks 653*57696d54SAkhilesh Sanikop with over-512-byte sector sizes if the header sector is padded with 654*57696d54SAkhilesh Sanikop something other than 0 values. 655*57696d54SAkhilesh Sanikop 656*57696d54SAkhilesh Sanikop- Fixed bug in new (as of 0.8.0) check that main and backup partition 657*57696d54SAkhilesh Sanikop tables are identical on big-endian (PowerPC, etc.) hardware. 658*57696d54SAkhilesh Sanikop 659*57696d54SAkhilesh Sanikop0.8.0 (9/10/2011): 660*57696d54SAkhilesh Sanikop------------------ 661*57696d54SAkhilesh Sanikop 662*57696d54SAkhilesh Sanikop- Added new return option for sgdisk: 8, which means that a replication 663*57696d54SAkhilesh Sanikop operation (-R or --replicate) failed. Note that other operations on 664*57696d54SAkhilesh Sanikop the same command line might still have succeeded. 665*57696d54SAkhilesh Sanikop 666*57696d54SAkhilesh Sanikop- Added gdisk_test.sh shell script, contributed by Guillaume Delacour. 667*57696d54SAkhilesh Sanikop This script tests some common gdisk and sgdisk operations to be sure 668*57696d54SAkhilesh Sanikop they're working correctly. 669*57696d54SAkhilesh Sanikop 670*57696d54SAkhilesh Sanikop- Enable sgdisk's -l (--load-backup) and -o (--clear) options to work 671*57696d54SAkhilesh Sanikop even on disks that are damaged. Most other options will still be ignored, 672*57696d54SAkhilesh Sanikop though, so if you suspect a disk may be bad and want to use one of these 673*57696d54SAkhilesh Sanikop options, you should do so on a line by itself, followed by a separate 674*57696d54SAkhilesh Sanikop command to perform other actions (such as adding new partitions). 675*57696d54SAkhilesh Sanikop 676*57696d54SAkhilesh Sanikop- Added check for mis-matched primary and backup partition tables. 677*57696d54SAkhilesh Sanikop A mismatch is reported as a CRC error. 678*57696d54SAkhilesh Sanikop 679*57696d54SAkhilesh Sanikop- Added Apple Core Storage partition type code (hex code AF05, GUID 680*57696d54SAkhilesh Sanikop 53746F72-6167-11AA-AA11-00306543ECAC). 681*57696d54SAkhilesh Sanikop 682*57696d54SAkhilesh Sanikop- Added cgdisk program to the family. This program is a rough workalike 683*57696d54SAkhilesh Sanikop to cfdisk, much as gdisk is a rough workalike to fdisk. See the cgdisk 684*57696d54SAkhilesh Sanikop man page or http://www.rodsbooks.com/gdisk/cgdisk-walkthrough.html for 685*57696d54SAkhilesh Sanikop details about its operation. 686*57696d54SAkhilesh Sanikop 687*57696d54SAkhilesh Sanikop- Fixed bug that caused CHS end point for protective MBR to be set to 688*57696d54SAkhilesh Sanikop 0xfeffff rather than the spec-mandated 0xffffff on disks over ~8GB. This 689*57696d54SAkhilesh Sanikop is a very minor bug, since not much cares about this, and most other GPT 690*57696d54SAkhilesh Sanikop tools get it wrong in the same way, too. 691*57696d54SAkhilesh Sanikop 692*57696d54SAkhilesh Sanikop0.7.2 (6/26/2011): 693*57696d54SAkhilesh Sanikop------------------ 694*57696d54SAkhilesh Sanikop 695*57696d54SAkhilesh Sanikop- The Windows version now (finally!) generates proper GUIDs rather than a 696*57696d54SAkhilesh Sanikop purely random number. This fixes a bug that caused Windows 7 to crash 697*57696d54SAkhilesh Sanikop when converting a disk from MBR format (but, oddly, not when creating a 698*57696d54SAkhilesh Sanikop fresh partition table or doing various other things). 699*57696d54SAkhilesh Sanikop 700*57696d54SAkhilesh Sanikop- Added a warning when an MBR partition is discarded because it's too 701*57696d54SAkhilesh Sanikop big for the disk. 702*57696d54SAkhilesh Sanikop 703*57696d54SAkhilesh Sanikop- Changed warning to Windows users about the dangers of converting to GPT 704*57696d54SAkhilesh Sanikop so that it appears only on disks that aren't already in GPT form. 705*57696d54SAkhilesh Sanikop 706*57696d54SAkhilesh Sanikop- Fixed bug that caused bogus "3" values to pad the ends of partition names 707*57696d54SAkhilesh Sanikop on some disks (particularly those created by Microsoft's disk 708*57696d54SAkhilesh Sanikop partitioning tools). 709*57696d54SAkhilesh Sanikop 710*57696d54SAkhilesh Sanikop- Made compilation without Unicode support possible (see README file) 711*57696d54SAkhilesh Sanikop 712*57696d54SAkhilesh Sanikop- Made default filesystem type code OS-dependent (based on the compilation 713*57696d54SAkhilesh Sanikop platform). 714*57696d54SAkhilesh Sanikop 715*57696d54SAkhilesh Sanikop- Added new Linux-only filesystem partition type GUID code, 716*57696d54SAkhilesh Sanikop 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (8300 entry code). Also changed name 717*57696d54SAkhilesh Sanikop of the EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (0700 entry code) to 718*57696d54SAkhilesh Sanikop "Microsoft basic data"). 719*57696d54SAkhilesh Sanikop 720*57696d54SAkhilesh Sanikop- Fixed a bug that caused an incorrect code to be set for active/bootable 721*57696d54SAkhilesh Sanikop partitions when generating a hybrid MBR. 722*57696d54SAkhilesh Sanikop 723*57696d54SAkhilesh Sanikop- Enable entry of hex codes that begin with "0x" for both GPT and MBR 724*57696d54SAkhilesh Sanikop partitions. 725*57696d54SAkhilesh Sanikop 726*57696d54SAkhilesh Sanikop- Fixed bug that caused the boot loader code to be lost when creating a 727*57696d54SAkhilesh Sanikop hybrid MBR. 728*57696d54SAkhilesh Sanikop 729*57696d54SAkhilesh Sanikop- Fixed bug in sector input code that could produce improper values 730*57696d54SAkhilesh Sanikop if the user inputs ridiculously large "+" values. 731*57696d54SAkhilesh Sanikop 732*57696d54SAkhilesh Sanikop0.7.1 (3/21/2011): 733*57696d54SAkhilesh Sanikop------------------ 734*57696d54SAkhilesh Sanikop 735*57696d54SAkhilesh Sanikop- Added support for proper UTF-16LE partition names rather than the 736*57696d54SAkhilesh Sanikop "shortcut" that properly encoded only ASCII names. This support works 737*57696d54SAkhilesh Sanikop only in Linux, FreeBSD, and OS X, though, at least for the moment. 738*57696d54SAkhilesh Sanikop Although it's possible to compile this support into Windows when using 739*57696d54SAkhilesh Sanikop Visual C++, it doesn't seem to work properly. Since using this feature 740*57696d54SAkhilesh Sanikop would require distributing the ICU libraries with the Windows binary, 741*57696d54SAkhilesh Sanikop thus bloating the binary package's size to no effect, I've disabled it in 742*57696d54SAkhilesh Sanikop my standard Windows build, at least for now. 743*57696d54SAkhilesh Sanikop 744*57696d54SAkhilesh Sanikop- Added check to fixparts to keep it from operating on devices that 745*57696d54SAkhilesh Sanikop lack an existing MBR signature. (In 0.7.0, it could write an empty 746*57696d54SAkhilesh Sanikop MBR data structure to a device on which it was mistakenly launched.) 747*57696d54SAkhilesh Sanikop 748*57696d54SAkhilesh Sanikop- Fixed bug that caused the protective MBR to not be written when 749*57696d54SAkhilesh Sanikop restoring a backup of the GPT data. 750*57696d54SAkhilesh Sanikop 751*57696d54SAkhilesh Sanikop- Fixed bug that caused second protective MBR partition, when created 752*57696d54SAkhilesh Sanikop as part of a hybrid MBR, to always be of type 0xEE, even when the 753*57696d54SAkhilesh Sanikop user specified something else. 754*57696d54SAkhilesh Sanikop 755*57696d54SAkhilesh Sanikop- Integrated a number of code cleanups contributed by Florian Zumbiehl. 756*57696d54SAkhilesh Sanikop 757*57696d54SAkhilesh Sanikop0.7.0 (3/11/2011): 758*57696d54SAkhilesh Sanikop------------------ 759*57696d54SAkhilesh Sanikop 760*57696d54SAkhilesh Sanikop- Fixed bug that caused some types of logical partitions to be misread. 761*57696d54SAkhilesh Sanikop 762*57696d54SAkhilesh Sanikop- Created FixParts program, to fix problems on MBR-partitioned disks. 763*57696d54SAkhilesh Sanikop Although this program is part of the GPT fdisk family, it is NOT used on 764*57696d54SAkhilesh Sanikop GPT disks. 765*57696d54SAkhilesh Sanikop 766*57696d54SAkhilesh Sanikop- Completely redid the GPT-to-MBR code, used both for converting to MBR 767*57696d54SAkhilesh Sanikop form and for creating hybrid MBRs. 768*57696d54SAkhilesh Sanikop 769*57696d54SAkhilesh Sanikop- Fixed a bug that caused gdisk to "forget" some partitions if there were 770*57696d54SAkhilesh Sanikop numbering gaps when a conversion to MBR was aborted. 771*57696d54SAkhilesh Sanikop 772*57696d54SAkhilesh Sanikop- Improved CHS value creation on small (<~8GB) disks for protective MBR 773*57696d54SAkhilesh Sanikop and when creating hybrid MBRs or converting to MBR format. Linux-only, 774*57696d54SAkhilesh Sanikop for the moment; other platforms still produce bad CHS values on sub-~8GB 775*57696d54SAkhilesh Sanikop disks (but few OSes care these days). 776*57696d54SAkhilesh Sanikop 777*57696d54SAkhilesh Sanikop- Enhanced disk replication features ('u' on the experts' menu in gdisk; -R 778*57696d54SAkhilesh Sanikop or --replicate in sgdisk). It's now possible to replicate the partition 779*57696d54SAkhilesh Sanikop table from a larger to a smaller disk, so long as all the partitions fit 780*57696d54SAkhilesh Sanikop on the smaller disk. In sgdisk, the secondary GPT data are moved 781*57696d54SAkhilesh Sanikop automatically if disk sizes don't match. In gdisk, the secondary GPT data 782*57696d54SAkhilesh Sanikop are moved automatically if the target disk is smaller than the source 783*57696d54SAkhilesh Sanikop disk; if the target disk is larger than the source disk, the user is 784*57696d54SAkhilesh Sanikop given the option of making this adjustment. 785*57696d54SAkhilesh Sanikop 786*57696d54SAkhilesh Sanikop- Fixed --load-backup (-l) option to sgdisk, which was broken. 787*57696d54SAkhilesh Sanikop 788*57696d54SAkhilesh Sanikop- Changed largest drive that's not given a minimum 4 KiB alignment even 789*57696d54SAkhilesh Sanikop when smaller alignment is detected on the disk to 300 GB. 790*57696d54SAkhilesh Sanikop 791*57696d54SAkhilesh Sanikop- Fixed bug that prevented aborting a partition table backup ('u' on the 792*57696d54SAkhilesh Sanikop experts' menu) by hitting the Enter key for the device filename. 793*57696d54SAkhilesh Sanikop 794*57696d54SAkhilesh Sanikop- Implemented a number of code cleanups provided by Florian Zumbiehl. 795*57696d54SAkhilesh Sanikop 796*57696d54SAkhilesh Sanikop0.6.14 (1/8/2011): 797*57696d54SAkhilesh Sanikop------------------ 798*57696d54SAkhilesh Sanikop 799*57696d54SAkhilesh Sanikop- Made small change to the way the start sector is interpreted if you use a 800*57696d54SAkhilesh Sanikop "+" specification, as in "+2G" to locate a partition 2 GiB into the 801*57696d54SAkhilesh Sanikop default range. This change makes adjustments for sector alignment less 802*57696d54SAkhilesh Sanikop likely. 803*57696d54SAkhilesh Sanikop 804*57696d54SAkhilesh Sanikop- Modified sgdisk's -n (--new) option to work with relative start and end 805*57696d54SAkhilesh Sanikop values (which the man page incorrectly stated it already did). Values of 806*57696d54SAkhilesh Sanikop 0 for the start and end sectors refer to the first and last available 807*57696d54SAkhilesh Sanikop sectors in the largest free block, and a partition number of 0 refers to 808*57696d54SAkhilesh Sanikop the first available partition. 809*57696d54SAkhilesh Sanikop 810*57696d54SAkhilesh Sanikop- Added ChromeOS GUID values to list of recognized partition type GUIDs. 811*57696d54SAkhilesh Sanikop 7F00 = ChromeOS kernel, 7501 = ChromeOS root, 7502 = ChromeOS reserved. 812*57696d54SAkhilesh Sanikop Untested on actual ChromeOS system. 813*57696d54SAkhilesh Sanikop 814*57696d54SAkhilesh Sanikop- Tweaked APM detection to look for APM signature even if an MBR 815*57696d54SAkhilesh Sanikop signature has already been found. Helps in diagnosis of cases 816*57696d54SAkhilesh Sanikop in which an MBR has overwritten an APM disk. 817*57696d54SAkhilesh Sanikop 818*57696d54SAkhilesh Sanikop0.6.13 (10/12/2010): 819*57696d54SAkhilesh Sanikop-------------------- 820*57696d54SAkhilesh Sanikop 821*57696d54SAkhilesh Sanikop- Added notification about nonexistent partitions to hybrid MBR creation 822*57696d54SAkhilesh Sanikop in gdisk. 823*57696d54SAkhilesh Sanikop 824*57696d54SAkhilesh Sanikop- Fixed bug in GPT-to-MBR conversion that could sometimes enable creation 825*57696d54SAkhilesh Sanikop of an extended partition that overlaps a preceding partition. 826*57696d54SAkhilesh Sanikop 827*57696d54SAkhilesh Sanikop- Fixed bug in GPT-to-MBR conversion that prevented creation of an MBR 828*57696d54SAkhilesh Sanikop table with logical partitions if there were four or fewer partitions. 829*57696d54SAkhilesh Sanikop 830*57696d54SAkhilesh Sanikop0.6.12 (10/7/2010): 831*57696d54SAkhilesh Sanikop------------------- 832*57696d54SAkhilesh Sanikop 833*57696d54SAkhilesh Sanikop- Adjusted alignment code to use 1 MiB alignment by default for drives with 834*57696d54SAkhilesh Sanikop other than 512-byte sector sizes. (Previous versions increased this -- 835*57696d54SAkhilesh Sanikop for instance, to 4 MiB for drives with 2048-byte logical sector size.) 836*57696d54SAkhilesh Sanikop 837*57696d54SAkhilesh Sanikop- Entry of non-hexadecimal value for partition type code now causes 838*57696d54SAkhilesh Sanikop re-prompting for a new value, fixing a recently-introduced minor bug. 839*57696d54SAkhilesh Sanikop 840*57696d54SAkhilesh Sanikop- Fixed bug in sector entry using K/M/G/T/P suffixes on disks with 841*57696d54SAkhilesh Sanikop other-than-512-byte sector numbers. 842*57696d54SAkhilesh Sanikop 843*57696d54SAkhilesh Sanikop- Added "P" (PiB, pebibyte) suffix to suffixes accepted in entering 844*57696d54SAkhilesh Sanikop partition sizes. 845*57696d54SAkhilesh Sanikop 846*57696d54SAkhilesh Sanikop- Fixed bug that caused sgdisk to segfault if fed the (invalid) 847*57696d54SAkhilesh Sanikop "-A show" parameter. Now it terminates with a complaint about an invalid 848*57696d54SAkhilesh Sanikop partition number 0. 849*57696d54SAkhilesh Sanikop 850*57696d54SAkhilesh Sanikop- Removed warning when running on big-endian hardware, since this 851*57696d54SAkhilesh Sanikop support has been present for quite a while with no bug reports. 852*57696d54SAkhilesh Sanikop 853*57696d54SAkhilesh Sanikop0.6.11 (9/25/2010): 854*57696d54SAkhilesh Sanikop------------------- 855*57696d54SAkhilesh Sanikop 856*57696d54SAkhilesh Sanikop- Added -F (--first-aligned-in-largest) option to sgdisk. This option is a 857*57696d54SAkhilesh Sanikop variant on -f (--first-in-largest); it returns the number of the first 858*57696d54SAkhilesh Sanikop sector that will be used in the largest free area, given the current 859*57696d54SAkhilesh Sanikop alignment value (set via -a/--set-alignment). 860*57696d54SAkhilesh Sanikop 861*57696d54SAkhilesh Sanikop- Streamlined GUID code entry in gdisk; it no longer offers the option 862*57696d54SAkhilesh Sanikop to enter GUIDs in separate segments. 863*57696d54SAkhilesh Sanikop 864*57696d54SAkhilesh Sanikop- The -t option to sgdisk now accepts GUID values as well as the 865*57696d54SAkhilesh Sanikop sgdisk/gdisk-specific two-byte hex codes. 866*57696d54SAkhilesh Sanikop 867*57696d54SAkhilesh Sanikop- Added check that the protective 0xEE MBR partition begins on sector 1 868*57696d54SAkhilesh Sanikop to the verify function. If it doesn't, a warning message is displayed, 869*57696d54SAkhilesh Sanikop but it doesn't count as an error. 870*57696d54SAkhilesh Sanikop 871*57696d54SAkhilesh Sanikop- Added check for overlapping MBR partitions to verify function (gdisk "v" 872*57696d54SAkhilesh Sanikop function on all menus; sgdisk -v/--verify function). Also warns about 873*57696d54SAkhilesh Sanikop multiple MBR 0xEE partitions (causes problems in some OSes). 874*57696d54SAkhilesh Sanikop 875*57696d54SAkhilesh Sanikop- Added check to GPT-to-MBR and hybrid MBR creation options to prevent 876*57696d54SAkhilesh Sanikop creation of disks with duplicate partitions. When told to create a disk 877*57696d54SAkhilesh Sanikop with duplicates, sgdisk now aborts with the error message "Problem 878*57696d54SAkhilesh Sanikop creating MBR!" When attempting to create a hybrid MBR with duplicates, 879*57696d54SAkhilesh Sanikop gdisk silently drops duplicate partitions, leaving fewer than requested. 880*57696d54SAkhilesh Sanikop Creating duplicates should not be possible in sgdisk when converting to 881*57696d54SAkhilesh Sanikop MBR form. 882*57696d54SAkhilesh Sanikop 883*57696d54SAkhilesh Sanikop0.6.10 (8/22/2010): 884*57696d54SAkhilesh Sanikop------------------- 885*57696d54SAkhilesh Sanikop 886*57696d54SAkhilesh Sanikop- Enable disk-wipe (-z and -Z) and verification (-v) operations in 887*57696d54SAkhilesh Sanikop sgdisk even if the disk is badly damaged. 888*57696d54SAkhilesh Sanikop 889*57696d54SAkhilesh Sanikop- Added support for setting attributes in sgdisk (-A/--attributes option) 890*57696d54SAkhilesh Sanikop in sgdisk. 891*57696d54SAkhilesh Sanikop 892*57696d54SAkhilesh Sanikop- Fixed bug that created backwards attribute field values (bit #2 was 893*57696d54SAkhilesh Sanikop entered as bit #61, etc.). 894*57696d54SAkhilesh Sanikop 895*57696d54SAkhilesh Sanikop- Fixed bug that caused creation of hybrid MBR to wipe out the MBR's boot 896*57696d54SAkhilesh Sanikop code. 897*57696d54SAkhilesh Sanikop 898*57696d54SAkhilesh Sanikop- Added ability to save partition table from one device to another (gdisk: 899*57696d54SAkhilesh Sanikop 'u' on experts' menu; sgdisk: -R or --replicate option). 900*57696d54SAkhilesh Sanikop 901*57696d54SAkhilesh Sanikop- Fixed inaccessible -C/--recompute-chs option in sgdisk. 902*57696d54SAkhilesh Sanikop 903*57696d54SAkhilesh Sanikop0.6.9 (7/4/2010): 904*57696d54SAkhilesh Sanikop------------------ 905*57696d54SAkhilesh Sanikop 906*57696d54SAkhilesh Sanikop- Fixed minor error in sgdisk man page (--largest-new option requires 907*57696d54SAkhilesh Sanikop a partition number). 908*57696d54SAkhilesh Sanikop 909*57696d54SAkhilesh Sanikop- Fixed major bug in hybrid MBR creation, which caused incorrect 910*57696d54SAkhilesh Sanikop protective partition end point settings and occasionally other 911*57696d54SAkhilesh Sanikop problems. 912*57696d54SAkhilesh Sanikop 913*57696d54SAkhilesh Sanikop0.6.8 (5/23/2010): 914*57696d54SAkhilesh Sanikop------------------ 915*57696d54SAkhilesh Sanikop 916*57696d54SAkhilesh Sanikop- Added tests to see if the file to be opened is a directory, character 917*57696d54SAkhilesh Sanikop device, FIFO, or socket; program now terminates if any of these 918*57696d54SAkhilesh Sanikop conditions is met. (Linux/FreeBSD/OS X only.) Thanks to Justin Maggard 919*57696d54SAkhilesh Sanikop for this patch. 920*57696d54SAkhilesh Sanikop 921*57696d54SAkhilesh Sanikop- Added 'f' option on gdisk's experts' menu (-G/--randomize-guids in 922*57696d54SAkhilesh Sanikop sgdisk). This option randomizes the disk's GUID and all partitions' 923*57696d54SAkhilesh Sanikop GUIDs. Intended for use after cloning a disk with a utility that copies 924*57696d54SAkhilesh Sanikop the GUIDs intact (such as a raw dd copy) if you want each disk copy to 925*57696d54SAkhilesh Sanikop have its own set of GUIDs. 926*57696d54SAkhilesh Sanikop 927*57696d54SAkhilesh Sanikop- Added -u/--partition-guid and -U/--disk-guid options to sgdisk. These are 928*57696d54SAkhilesh Sanikop the equivalents of the 'g' and 'c' options, respectively, on the gdisk 929*57696d54SAkhilesh Sanikop experts' menu: They enable adjusting an individual partition's GUID or a 930*57696d54SAkhilesh Sanikop disk's GUID. The GUID may be either a fully specified GUID value or 'R' 931*57696d54SAkhilesh Sanikop or 'r' to set a random GUID value. 932*57696d54SAkhilesh Sanikop 933*57696d54SAkhilesh Sanikop- Fixed compile problem for FreeBSD (its math library lacks a log2() 934*57696d54SAkhilesh Sanikop function). Also created separate Makefile.freebsd with a couple of 935*57696d54SAkhilesh Sanikop FreeBSD-specific options. 936*57696d54SAkhilesh Sanikop 937*57696d54SAkhilesh Sanikop- Added -N (--largest-new) command to sgdisk. This command creates a single 938*57696d54SAkhilesh Sanikop partition that fills the largest single unpartitioned block of space on 939*57696d54SAkhilesh Sanikop the disk. 940*57696d54SAkhilesh Sanikop 941*57696d54SAkhilesh Sanikop- Fixed sgdisk man page error: the --change-name option was incorrectly 942*57696d54SAkhilesh Sanikop listed as --change. 943*57696d54SAkhilesh Sanikop 944*57696d54SAkhilesh Sanikop- Added 'h' option to gdisk experts' menu (-C or --recompute-chs in sgdisk) 945*57696d54SAkhilesh Sanikop to recompute all protective/hybrid MBR CHS values. This option is 946*57696d54SAkhilesh Sanikop intended to work around a bug in at least one BIOS that prevents the 947*57696d54SAkhilesh Sanikop computer from booting when the GPT-mandated (but technically illegal) 948*57696d54SAkhilesh Sanikop 0xFFFFFF CHS value is used as the end point for a protective MBR. The 949*57696d54SAkhilesh Sanikop recomputed values will be legal (e.g., 0xFEFFFF instead of 0xFFFFFF), 950*57696d54SAkhilesh Sanikop but incorrect in GPT terms, and will therefore enable at least one 951*57696d54SAkhilesh Sanikop BIOS to boot with a GPT disk. See http://www.rodsbooks.com/gdisk/bios.html 952*57696d54SAkhilesh Sanikop for all I know about BIOS/GPT incompatibilities. 953*57696d54SAkhilesh Sanikop 954*57696d54SAkhilesh Sanikop0.6.7 (5/1/2010): 955*57696d54SAkhilesh Sanikop----------------- 956*57696d54SAkhilesh Sanikop 957*57696d54SAkhilesh Sanikop- Undid earlier change, with version 0.6.4, that wiped the MBR boot loader 958*57696d54SAkhilesh Sanikop when doing MBR-to-GPT conversions. I've now become skeptical that MBR 959*57696d54SAkhilesh Sanikop boot loaders were causing any real problems on GPT disks, so I'm going 960*57696d54SAkhilesh Sanikop back to the philosophy of leaving as much alone as possible. 961*57696d54SAkhilesh Sanikop 962*57696d54SAkhilesh Sanikop- Fixed bug that caused incorrect reporting of free space on 0-size disks 963*57696d54SAkhilesh Sanikop (e.g., files of 0 length passed as disk images). 964*57696d54SAkhilesh Sanikop 965*57696d54SAkhilesh Sanikop- Fixed bug that caused segfault on some invalid disks 966*57696d54SAkhilesh Sanikop 967*57696d54SAkhilesh Sanikop- Fixed bug that caused incorrect partition numbers to be displayed for 968*57696d54SAkhilesh Sanikop some verify problems. 969*57696d54SAkhilesh Sanikop 970*57696d54SAkhilesh Sanikop 971*57696d54SAkhilesh Sanikop0.6.6 (3/21/2010): 972*57696d54SAkhilesh Sanikop----------------- 973*57696d54SAkhilesh Sanikop 974*57696d54SAkhilesh Sanikop- Added support for the "no block IO protocol" (referred to as "hide from 975*57696d54SAkhilesh Sanikop EFI" in GPT fdisk) and "legacy BIOS bootable" attribute bits. See Table 976*57696d54SAkhilesh Sanikop 19 of the UEFI 2.3 specification (p. 153) for details. 977*57696d54SAkhilesh Sanikop 978*57696d54SAkhilesh Sanikop- Changed the sequence in which GPT data structures are written to disk; 979*57696d54SAkhilesh Sanikop backups are now written first, followed by the main structures. This is 980*57696d54SAkhilesh Sanikop as recommended in the UEFI 2.3 specification, since it's safer in the 981*57696d54SAkhilesh Sanikop extremely unlikely event that a RAID array's size is increased and 982*57696d54SAkhilesh Sanikop there's a power outage mid-write. (If the main structures are written 983*57696d54SAkhilesh Sanikop first in this case, they'll point to data that's not yet been written; 984*57696d54SAkhilesh Sanikop but by writing the backups first, the old main structures will still 985*57696d54SAkhilesh Sanikop point to the valid old backup structures.) 986*57696d54SAkhilesh Sanikop 987*57696d54SAkhilesh Sanikop- Protective MBRs now have disk signatures of 0x00000000, to better 988*57696d54SAkhilesh Sanikop conform with GPT as described in the UEFI 2.3 specification. 989*57696d54SAkhilesh Sanikop 990*57696d54SAkhilesh Sanikop- Added alignment information to the summary data produced by the 991*57696d54SAkhilesh Sanikop 'p' main-menu option in gdisk or the -p option to sgdisk. 992*57696d54SAkhilesh Sanikop 993*57696d54SAkhilesh Sanikop- More alignment changes: GPT fdisk now attempts to determine the alignment 994*57696d54SAkhilesh Sanikop value based on alignment of current partitions, if any are defined. If no 995*57696d54SAkhilesh Sanikop partitions are defined, a default value of 2048 is set. If the computed 996*57696d54SAkhilesh Sanikop value is less than 8 on drives over about 596GiB, it's reset to 8, since 997*57696d54SAkhilesh Sanikop the drive might be a WD Advanced Format unit that requires an 8-sector 998*57696d54SAkhilesh Sanikop (or larger power-of-2) alignment value for best performance. The 999*57696d54SAkhilesh Sanikop 2048-sector default provides better alignment in some RAID 1000*57696d54SAkhilesh Sanikop configurations. 1001*57696d54SAkhilesh Sanikop 1002*57696d54SAkhilesh Sanikop- Changed behavior when a backup restore fails. Previously, GPT fdisk 1003*57696d54SAkhilesh Sanikop would create a fresh blank set of partitions. Now it does so only 1004*57696d54SAkhilesh Sanikop if the failure occurs when interpreting the backup's contents; if the 1005*57696d54SAkhilesh Sanikop user typed the wrong filename, the in-memory data structures aren't 1006*57696d54SAkhilesh Sanikop touched. 1007*57696d54SAkhilesh Sanikop 1008*57696d54SAkhilesh Sanikop 1009*57696d54SAkhilesh Sanikop0.6.5 (3/7/2010): 1010*57696d54SAkhilesh Sanikop----------------- 1011*57696d54SAkhilesh Sanikop 1012*57696d54SAkhilesh Sanikop- Added tests to verify ('v') function and to pre-save checks to look for 1013*57696d54SAkhilesh Sanikop partitions that end before they begin or that are too big for their 1014*57696d54SAkhilesh Sanikop disks. 1015*57696d54SAkhilesh Sanikop 1016*57696d54SAkhilesh Sanikop- Fixed a bug that could cause spurious data to appear in a grown partition 1017*57696d54SAkhilesh Sanikop table. 1018*57696d54SAkhilesh Sanikop 1019*57696d54SAkhilesh Sanikop- Added ability to convert some or all partitions to logical partitions in 1020*57696d54SAkhilesh Sanikop GPT-to-MBR conversion. This feature is limited by the fact that at least 1021*57696d54SAkhilesh Sanikop one free sector must exist immediately prior to each logical partition, 1022*57696d54SAkhilesh Sanikop so it won't do much good if partitions are crammed together. It should be 1023*57696d54SAkhilesh Sanikop possible to convert back to MBR any disk that started that way, provided 1024*57696d54SAkhilesh Sanikop no partitions were added or resized when the disk was in GPT form; and 1025*57696d54SAkhilesh Sanikop disks that were partitioned with Apple's Disk Utility or other tools that 1026*57696d54SAkhilesh Sanikop insert unpartitioned space should also be convertible. CAUTION: THE 1027*57696d54SAkhilesh Sanikop LOGICAL PARTITION CREATION FEATURE DOESN'T TRY TO ALIGN PARTITIONS OR 1028*57696d54SAkhilesh Sanikop PARTITION HEADER DATA TO CYLINDER BOUNDARIES! It's conceivable that some 1029*57696d54SAkhilesh Sanikop older OSes or utilities will object to these disks, although Linux, OS X, 1030*57696d54SAkhilesh Sanikop Windows Vista, and Windows 7 all seem happy with them. 1031*57696d54SAkhilesh Sanikop 1032*57696d54SAkhilesh Sanikop- Fixed bug that caused creation of 0-length file if an incorrect device 1033*57696d54SAkhilesh Sanikop filename was typed. 1034*57696d54SAkhilesh Sanikop 1035*57696d54SAkhilesh Sanikop- The gdisk program now prompts for a device filename if it's called with 1036*57696d54SAkhilesh Sanikop no options. This enables gdisk to do something useful if it's launched by 1037*57696d54SAkhilesh Sanikop double-clicking its icon in a GUI environment. 1038*57696d54SAkhilesh Sanikop 1039*57696d54SAkhilesh Sanikop- Added workaround for bug in some versions of MinGW that caused the 1040*57696d54SAkhilesh Sanikop program to garble input sector numbers. 1041*57696d54SAkhilesh Sanikop 1042*57696d54SAkhilesh Sanikop- The Windows version now works on disks with over-512-byte sectors. 1043*57696d54SAkhilesh Sanikop Tested on a magneto-optical (MO) drive with 2048-byte sectors. 1044*57696d54SAkhilesh Sanikop 1045*57696d54SAkhilesh Sanikop- Added -D (--display-alignment) option to sgdisk, to display sector 1046*57696d54SAkhilesh Sanikop alignment value (by default, 1 for sub-800GiB disks and 8 for disks 1047*57696d54SAkhilesh Sanikop over that size). 1048*57696d54SAkhilesh Sanikop 1049*57696d54SAkhilesh Sanikop- Fixed bug in computation of CHS geometries for protective MBR. This is 1050*57696d54SAkhilesh Sanikop non-critical, since most modern utilities ignore the CHS geometries. 1051*57696d54SAkhilesh Sanikop Concerned users can use the 'n' option on the experts' menu to build new 1052*57696d54SAkhilesh Sanikop protective MBRs with the new algorithm, if desired. (Note that GNU 1053*57696d54SAkhilesh Sanikop Parted, at least, gets this wrong, too.) 1054*57696d54SAkhilesh Sanikop 1055*57696d54SAkhilesh Sanikop- Fixed memory-allocation bug when reading GPT disks with partition tables 1056*57696d54SAkhilesh Sanikop with over 128 entries; could cause program to crash on startup. 1057*57696d54SAkhilesh Sanikop 1058*57696d54SAkhilesh Sanikop0.6.4-2 (2/20/2010): 1059*57696d54SAkhilesh Sanikop-------------------- 1060*57696d54SAkhilesh Sanikop 1061*57696d54SAkhilesh SanikopNote: Neither of the following changes affects actual program code, so I've 1062*57696d54SAkhilesh Sanikopleft the version number in the program at 0.6.4. 1063*57696d54SAkhilesh Sanikop 1064*57696d54SAkhilesh Sanikop- Altered Makefile to pass user's compiler and linker environment 1065*57696d54SAkhilesh Sanikop variables through. 1066*57696d54SAkhilesh Sanikop 1067*57696d54SAkhilesh Sanikop- Added #include to gpttext.cc to enable it to compile on the latest 1068*57696d54SAkhilesh Sanikop GCC versions (it was failing on at least some 4.4.x compilers). 1069*57696d54SAkhilesh Sanikop 1070*57696d54SAkhilesh Sanikop0.6.4 (2/19/2010): 1071*57696d54SAkhilesh Sanikop------------------- 1072*57696d54SAkhilesh Sanikop 1073*57696d54SAkhilesh Sanikop- Added -m (--gpttombr) option to sgdisk, enabling conversion of GPT 1074*57696d54SAkhilesh Sanikop disks to MBR format, with a limit of four partitions total, and of course 1075*57696d54SAkhilesh Sanikop without overcoming the 2TiB limit. 1076*57696d54SAkhilesh Sanikop 1077*57696d54SAkhilesh Sanikop- Added -h (--hybrid) option to sgdisk, enabling creation of hybrid 1078*57696d54SAkhilesh Sanikop MBRs. Fewer options are available in sgdisk than in gdisk, though, 1079*57696d54SAkhilesh Sanikop in order to keep the user interface manageable. 1080*57696d54SAkhilesh Sanikop 1081*57696d54SAkhilesh Sanikop- Fixed off-by-one bug in specification of partition when using the 1082*57696d54SAkhilesh Sanikop -T (--transform-bsd) option in sgdisk. 1083*57696d54SAkhilesh Sanikop 1084*57696d54SAkhilesh Sanikop- Changed the code to create a new MBR unique disk signature whenever a new 1085*57696d54SAkhilesh Sanikop protective MBR is generated (when doing an MBR-to-GPT conversion, when 1086*57696d54SAkhilesh Sanikop using the 'n' option on the experts' menu, or when using the 'o' option 1087*57696d54SAkhilesh Sanikop on the main menu, for example). Previous versions attempted to preserve 1088*57696d54SAkhilesh Sanikop the existing MBR disk signature in most cases, but this resulted in 1089*57696d54SAkhilesh Sanikop values of 0x00000000 whenever an empty disk was partitioned, and often in 1090*57696d54SAkhilesh Sanikop other cases, too. Better to risk changing this value too often than to 1091*57696d54SAkhilesh Sanikop leave multiple disks with 0x00000000 values, I think. 1092*57696d54SAkhilesh Sanikop 1093*57696d54SAkhilesh Sanikop- Added transpose ('t' on experts' menu in gdisk; or -r or --transpose in 1094*57696d54SAkhilesh Sanikop sgdisk) command to enable fine-tuning partition order without doing a 1095*57696d54SAkhilesh Sanikop full sort. 1096*57696d54SAkhilesh Sanikop 1097*57696d54SAkhilesh Sanikop- Added code to clear the MBR boot loader when doing an MBR-to-GPT 1098*57696d54SAkhilesh Sanikop conversion. (This was already done in full-disk BSD-to-GPT conversions.) 1099*57696d54SAkhilesh Sanikop This is done because I've seen a few problem reports that make me think 1100*57696d54SAkhilesh Sanikop some MBR boot loaders freak out and hang the system when they encounter 1101*57696d54SAkhilesh Sanikop GPT disks, and/or they attempt to load a second-stage boot loader stored 1102*57696d54SAkhilesh Sanikop in what is now GPT territory, causing a system hang. Since MBR boot 1103*57696d54SAkhilesh Sanikop loaders don't work on GPT disks anyhow (even GRUB needs to be 1104*57696d54SAkhilesh Sanikop reinstalled), this new wiping behavior shouldn't cause any problems, and 1105*57696d54SAkhilesh Sanikop may prevent a few. 1106*57696d54SAkhilesh Sanikop 1107*57696d54SAkhilesh Sanikop- Fixed bug in Windows version that prevented saving backup files. 1108*57696d54SAkhilesh Sanikop 1109*57696d54SAkhilesh Sanikop- Fixed bug that caused second and subsequent partition numbers in 1110*57696d54SAkhilesh Sanikop prompts in hybrid MBR conversion procedure to be displayed in 1111*57696d54SAkhilesh Sanikop hexadecimal. 1112*57696d54SAkhilesh Sanikop 1113*57696d54SAkhilesh Sanikop- Fixed very obscure potential bug in hybrid MBR/GPT synchronization when 1114*57696d54SAkhilesh Sanikop deleting partitions; code wasn't matching partition lengths correctly, 1115*57696d54SAkhilesh Sanikop which would only affect partitions that start at the same point but have 1116*57696d54SAkhilesh Sanikop different lengths in MBR vs. GPT. 1117*57696d54SAkhilesh Sanikop 1118*57696d54SAkhilesh Sanikop- Fixed bug in the -E option to sgdisk; it was actually returning the 1119*57696d54SAkhilesh Sanikop last free sector, not the last free sector in the largest free block. 1120*57696d54SAkhilesh Sanikop 1121*57696d54SAkhilesh Sanikop- Fixed bug in -t option to sgdisk; it was corrupting partition type 1122*57696d54SAkhilesh Sanikop codes. 1123*57696d54SAkhilesh Sanikop 1124*57696d54SAkhilesh Sanikop- Fixed minor alignment bug in partition summary list ('p' from any menu) 1125*57696d54SAkhilesh Sanikop when partition sizes are between 1000 and 1024 units. 1126*57696d54SAkhilesh Sanikop 1127*57696d54SAkhilesh Sanikop- Backup restore function ('l' on recovery & transformation menu) now 1128*57696d54SAkhilesh Sanikop accepts both backups generated by GPT fdisk and backups created by a 1129*57696d54SAkhilesh Sanikop direct copy (via dd, etc.) of the MBR, main GPT header, and main GPT 1130*57696d54SAkhilesh Sanikop partition table, in that order. ("dd if=/dev/sda of=backup.gpt bs=512 1131*57696d54SAkhilesh Sanikop count=34" will do this on Linux for a disk with a typical-sized GPT table 1132*57696d54SAkhilesh Sanikop of 128 entries.) 1133*57696d54SAkhilesh Sanikop 1134*57696d54SAkhilesh Sanikop0.6.3 (2/3/2010): 1135*57696d54SAkhilesh Sanikop------------------ 1136*57696d54SAkhilesh Sanikop 1137*57696d54SAkhilesh Sanikop- Fixed serious data corruption bug on big-endian (PowerPC and similar) 1138*57696d54SAkhilesh Sanikop systems. 1139*57696d54SAkhilesh Sanikop 1140*57696d54SAkhilesh Sanikop- Changed several GPT fdisk Solaris type codes to correct a duplicate 1141*57696d54SAkhilesh Sanikop 1142*57696d54SAkhilesh Sanikop- Corrected error in GPT fdisk type codes for NetBSD LFS and NetBSD RAID; 1143*57696d54SAkhilesh Sanikop they were identical, but I've now changed NetBSD RAID to A906, which 1144*57696d54SAkhilesh Sanikop is unique. 1145*57696d54SAkhilesh Sanikop 1146*57696d54SAkhilesh Sanikop- Added GUID for IBM General Parallel File System (GPFS) partition type 1147*57696d54SAkhilesh Sanikop code. Somewhat arbitrarily set it to use the 7501 number (MBR code 0x75 1148*57696d54SAkhilesh Sanikop is used by IBM PC/IX, so it's at least the right company, by my loose 1149*57696d54SAkhilesh Sanikop numbering rules....). 1150*57696d54SAkhilesh Sanikop 1151*57696d54SAkhilesh Sanikop- Improved GUID generation. Prior versions generated completely random 1152*57696d54SAkhilesh Sanikop numbers for GUIDs. This works, but is technically a violation of the 1153*57696d54SAkhilesh Sanikop spec. Unix versions now employ libuuid to generate GUIDs in a more 1154*57696d54SAkhilesh Sanikop correct way. The Windows version still generates random numbers, though. 1155*57696d54SAkhilesh Sanikop 1156*57696d54SAkhilesh Sanikop- Turned PartTypes class into a derived class of GUIDData, and renamed 1157*57696d54SAkhilesh Sanikop it to PartType. 1158*57696d54SAkhilesh Sanikop 1159*57696d54SAkhilesh Sanikop- Created new GUIDData class, to replace the original GUIDData struct. 1160*57696d54SAkhilesh Sanikop 1161*57696d54SAkhilesh Sanikop0.6.2 (1/29/2010): 1162*57696d54SAkhilesh Sanikop------------------ 1163*57696d54SAkhilesh Sanikop 1164*57696d54SAkhilesh Sanikop- The change-type ('t' on main menu) option now changes the partition's 1165*57696d54SAkhilesh Sanikop name *IF* the current name is the generic one for the partition type. 1166*57696d54SAkhilesh Sanikop If the current name is not the generic name, it is NOT changed. 1167*57696d54SAkhilesh Sanikop 1168*57696d54SAkhilesh Sanikop- Fixed bug that caused new protective MBR to not be created when the 1169*57696d54SAkhilesh Sanikop MBR was invalid and the GPT was damaged and the user opts to try to 1170*57696d54SAkhilesh Sanikop use the GPT data. 1171*57696d54SAkhilesh Sanikop 1172*57696d54SAkhilesh Sanikop- Enabled default partition type code of 0700 when creating partitions 1173*57696d54SAkhilesh Sanikop or changing their type codes. (Type 0700, Linux/Windows data, is set if 1174*57696d54SAkhilesh Sanikop the user hits the Enter key alone.) 1175*57696d54SAkhilesh Sanikop 1176*57696d54SAkhilesh Sanikop- Fixed bug in sort ('s' on main menu) option that caused partition 1177*57696d54SAkhilesh Sanikop numbers to begin at more than 1 if the original partition list had 1178*57696d54SAkhilesh Sanikop too many empty partitions before the last one defined. 1179*57696d54SAkhilesh Sanikop 1180*57696d54SAkhilesh Sanikop- Improved code to determine which partition table to load in case of 1181*57696d54SAkhilesh Sanikop CRC mismatches between the partition tables and the stored CRC values 1182*57696d54SAkhilesh Sanikop in the headers. 1183*57696d54SAkhilesh Sanikop 1184*57696d54SAkhilesh Sanikop- Compiles using MinGW (http://www.mingw.org) to create a Windows binary. 1185*57696d54SAkhilesh Sanikop 1186*57696d54SAkhilesh Sanikop- Moved all disk I/O functions to the new DiskIO class. This helps with the 1187*57696d54SAkhilesh Sanikop Windows port; it uses diskio-windows.cc for Windows-specific code, 1188*57696d54SAkhilesh Sanikop diskio-unix.cc for the Linux, FreeBSD, and OS X code, and diskio.cc for 1189*57696d54SAkhilesh Sanikop cross-platform disk I/O code. 1190*57696d54SAkhilesh Sanikop 1191*57696d54SAkhilesh Sanikop- Changed BSD disklabel detection code to be more correct (I think). 1192*57696d54SAkhilesh Sanikop This change has no effect on my test disks, but I hope it'll work 1193*57696d54SAkhilesh Sanikop better on disks with sector sizes other than 512 or 2048. 1194*57696d54SAkhilesh Sanikop 1195*57696d54SAkhilesh Sanikop0.6.1 (1/20/2010): 1196*57696d54SAkhilesh Sanikop------------------ 1197*57696d54SAkhilesh Sanikop 1198*57696d54SAkhilesh Sanikop- Fixed bug that returned incorrect disk size on 32-bit versions of 1199*57696d54SAkhilesh Sanikop FreeBSD. 1200*57696d54SAkhilesh Sanikop 1201*57696d54SAkhilesh Sanikop- Fixed bug that prevented FreeBSD version from working on disk image 1202*57696d54SAkhilesh Sanikop files. 1203*57696d54SAkhilesh Sanikop 1204*57696d54SAkhilesh Sanikop- Fixed bug that caused BSD disklabel conversion to fail. 1205*57696d54SAkhilesh Sanikop 1206*57696d54SAkhilesh Sanikop0.6.0 (1/15/2010): 1207*57696d54SAkhilesh Sanikop------------------ 1208*57696d54SAkhilesh Sanikop 1209*57696d54SAkhilesh Sanikop- Fixed bug that caused the convert to MBR function to fail. 1210*57696d54SAkhilesh Sanikop 1211*57696d54SAkhilesh Sanikop- Added support for disks with other than 512-byte sectors. 1212*57696d54SAkhilesh Sanikop 1213*57696d54SAkhilesh Sanikop- Created embryonic sgdisk program. 1214*57696d54SAkhilesh Sanikop 1215*57696d54SAkhilesh Sanikop- Fixed bug that caused relative sector numbers entered by users (e.g, 1216*57696d54SAkhilesh Sanikop "+128M") to be misinterpreted as from the start of the range rather than 1217*57696d54SAkhilesh Sanikop from the default value. 1218*57696d54SAkhilesh Sanikop 1219*57696d54SAkhilesh Sanikop0.5.3 (1/4/2010): 1220*57696d54SAkhilesh Sanikop----------------- 1221*57696d54SAkhilesh Sanikop 1222*57696d54SAkhilesh Sanikop- Fixed bug in display of GUIDs when compiled with some versions of GCC. 1223*57696d54SAkhilesh Sanikop 1224*57696d54SAkhilesh Sanikop- Eliminated warnings caused by additional checks in latest versions of 1225*57696d54SAkhilesh Sanikop GCC. These warnings were harmless, but to eliminate them I've added 1226*57696d54SAkhilesh Sanikop more error checking on disk I/O. 1227*57696d54SAkhilesh Sanikop 1228*57696d54SAkhilesh Sanikop- Eliminated unnecessary warnings about potential data loss if the program 1229*57696d54SAkhilesh Sanikop was launched with the -l option or if writes aren't possible. 1230*57696d54SAkhilesh Sanikop 1231*57696d54SAkhilesh Sanikop- Added code to set the partition boundary value based on the physical 1232*57696d54SAkhilesh Sanikop sector size. (FindAlignment() function.) This function, however, works 1233*57696d54SAkhilesh Sanikop only on Linux, and then only if the BLKPBSZGET ioctl is defined. This 1234*57696d54SAkhilesh Sanikop ioctl is new in kernel 2.6.32 or thereabouts. 1235*57696d54SAkhilesh Sanikop 1236*57696d54SAkhilesh Sanikop0.5.2 (12/31/2009): 1237*57696d54SAkhilesh Sanikop------------------- 1238*57696d54SAkhilesh Sanikop 1239*57696d54SAkhilesh Sanikop- Modified partition creation function to begin partitions on 8-sector 1240*57696d54SAkhilesh Sanikop boundaries by default. This improves performance on the new Western 1241*57696d54SAkhilesh Sanikop Digital Advanced Format drives. The new 'd' and 'l' options on the 1242*57696d54SAkhilesh Sanikop experts' menu display and change, respectively, the boundary size. 1243*57696d54SAkhilesh Sanikop 1244*57696d54SAkhilesh Sanikop- Tweaked code to produce fewer warnings on the latest versions of 1245*57696d54SAkhilesh Sanikop GCC. 1246*57696d54SAkhilesh Sanikop 1247*57696d54SAkhilesh Sanikop0.5.1: 1248*57696d54SAkhilesh Sanikop------ 1249*57696d54SAkhilesh Sanikop 1250*57696d54SAkhilesh Sanikop- Made some minor edits to the man page. 1251*57696d54SAkhilesh Sanikop 1252*57696d54SAkhilesh Sanikop- Incorporated RPM .spec file changes contributed by Scott Collier 1253*57696d54SAkhilesh Sanikop ([email protected]). 1254*57696d54SAkhilesh Sanikop 1255*57696d54SAkhilesh Sanikop- Changed method of locating and loading backup GPT data, to use the 1256*57696d54SAkhilesh Sanikop main header's pointer, if it's valid, rather than seeking to the 1257*57696d54SAkhilesh Sanikop end of the disk. 1258*57696d54SAkhilesh Sanikop 1259*57696d54SAkhilesh Sanikop- Added 'e' option (relocate backup GPT data structures) to the experts' 1260*57696d54SAkhilesh Sanikop menu. 1261*57696d54SAkhilesh Sanikop 1262*57696d54SAkhilesh Sanikop- Fixed bug that prevented recovery of partitions in case of partially 1263*57696d54SAkhilesh Sanikop damaged GPT data (bad main and good backup or bad backup and good 1264*57696d54SAkhilesh Sanikop main header, for instance). 1265*57696d54SAkhilesh Sanikop 1266*57696d54SAkhilesh Sanikop0.5.0: 1267*57696d54SAkhilesh Sanikop------ 1268*57696d54SAkhilesh Sanikop 1269*57696d54SAkhilesh Sanikop- Added GPT-to-MBR conversion function. It's very limited, but potentially 1270*57696d54SAkhilesh Sanikop useful in some cases. 1271*57696d54SAkhilesh Sanikop 1272*57696d54SAkhilesh Sanikop- Fixed bug that caused incorrect file sizes to be reported on 32-bit 1273*57696d54SAkhilesh Sanikop Linux, thus causing problems when editing partition tables in disk images 1274*57696d54SAkhilesh Sanikop or when loading GPT backup files. 1275*57696d54SAkhilesh Sanikop 1276*57696d54SAkhilesh Sanikop- Fixed bug that caused bogus CRC error reports when loading backup GPT 1277*57696d54SAkhilesh Sanikop data. 1278*57696d54SAkhilesh Sanikop 1279*57696d54SAkhilesh Sanikop- Reorganized menus. There are now three: the main menu, the experts' menu, 1280*57696d54SAkhilesh Sanikop and the recovery & transformation menu. The last of these has most of the 1281*57696d54SAkhilesh Sanikop items that had been on the earlier versions' experts' menu. 1282*57696d54SAkhilesh Sanikop 1283*57696d54SAkhilesh Sanikop- Added ability to re-load the MBR and generate a fresh GPT from it. This 1284*57696d54SAkhilesh Sanikop is normally identical to quitting and re-running the program, but it 1285*57696d54SAkhilesh Sanikop could be handy if, say, the GPT partitions on a hybrid configuration are 1286*57696d54SAkhilesh Sanikop badly messed up; this will enable using the hybridized partitions as the 1287*57696d54SAkhilesh Sanikop starting point for a new GPT setup. 1288*57696d54SAkhilesh Sanikop 1289*57696d54SAkhilesh Sanikop- The program now generates CHS values for hybrid and GPT-to-MBR conversion 1290*57696d54SAkhilesh Sanikop MBRs. For the moment, the assumption is the maximum number of heads and 1291*57696d54SAkhilesh Sanikop sectors per track (255 and 63, respectively), although the bulk of the 1292*57696d54SAkhilesh Sanikop code supports other values -- it'd just be awkward to enter the data in 1293*57696d54SAkhilesh Sanikop the user interface. 1294*57696d54SAkhilesh Sanikop 1295*57696d54SAkhilesh Sanikop- Fixed minor display bug that caused number of sectors on the disk to be 1296*57696d54SAkhilesh Sanikop shown as 0 on large disks when running 32-bit binaries. 1297*57696d54SAkhilesh Sanikop 1298*57696d54SAkhilesh Sanikop- Reverted 0.4.2's zap (destroy GPT) changes, since I don't want to wipe 1299*57696d54SAkhilesh Sanikop out a valid MBR if the user created that MBR over an older GPT without 1300*57696d54SAkhilesh Sanikop first properly wiping out the GPT, and the user now wants to wipe out 1301*57696d54SAkhilesh Sanikop the GPT. 1302*57696d54SAkhilesh Sanikop 1303*57696d54SAkhilesh Sanikop- Reformatted and edited the man page. Aside from edits related to the 1304*57696d54SAkhilesh Sanikop preceding program changes, I've altered the markup slightly and trimmed 1305*57696d54SAkhilesh Sanikop much of the more tutorial information from the man page to better 1306*57696d54SAkhilesh Sanikop conform to typical terse man page style. 1307*57696d54SAkhilesh Sanikop 1308*57696d54SAkhilesh Sanikop0.4.2: 1309*57696d54SAkhilesh Sanikop------ 1310*57696d54SAkhilesh Sanikop 1311*57696d54SAkhilesh Sanikop- Code cleanup. 1312*57696d54SAkhilesh Sanikop 1313*57696d54SAkhilesh Sanikop- Fixed very small formatting bug in display of hex code when a match isn't 1314*57696d54SAkhilesh Sanikop found when converting from an MBR/gdisk hex code to a GUID type code. 1315*57696d54SAkhilesh Sanikop 1316*57696d54SAkhilesh Sanikop- Added the ability to work on disk image files (raw files for virtual 1317*57696d54SAkhilesh Sanikop machines, backup images, etc.). The program assumes that all such disk 1318*57696d54SAkhilesh Sanikop image files have 512-byte sectors. 1319*57696d54SAkhilesh Sanikop 1320*57696d54SAkhilesh Sanikop- Added verification prompt to 'o' main-menu option to avoid accidental 1321*57696d54SAkhilesh Sanikop erasures of all partitions. 1322*57696d54SAkhilesh Sanikop 1323*57696d54SAkhilesh Sanikop- The "destroy GPT data structures" option ('z' on the experts' menu) now 1324*57696d54SAkhilesh Sanikop also destroys all EFI GPT (0xEE) partitions in the MBR. 1325*57696d54SAkhilesh Sanikop 1326*57696d54SAkhilesh Sanikop- Added an extra warning to the "destroy GPT data structures" option if an APM 1327*57696d54SAkhilesh Sanikop or BSD disklabel was detected on the disk. 1328*57696d54SAkhilesh Sanikop 1329*57696d54SAkhilesh Sanikop- Added a buffer flush after destroying GPT data structures, to get the OS 1330*57696d54SAkhilesh Sanikop to read the new (empty or MBR-only) partition table. 1331*57696d54SAkhilesh Sanikop 1332*57696d54SAkhilesh Sanikop- Fixed bug that allowed entry of nonexistent partition numbers when creating 1333*57696d54SAkhilesh Sanikop a hybrid MBR. 1334*57696d54SAkhilesh Sanikop 1335*57696d54SAkhilesh Sanikop0.4.1: 1336*57696d54SAkhilesh Sanikop------ 1337*57696d54SAkhilesh Sanikop 1338*57696d54SAkhilesh Sanikop- Code cleanup/re-organization 1339*57696d54SAkhilesh Sanikop 1340*57696d54SAkhilesh Sanikop- Partition creation function ('n' on main menu) now uses the start of the 1341*57696d54SAkhilesh Sanikop largest available chunk of free space rather than the first available 1342*57696d54SAkhilesh Sanikop sector as the default starting sector number. This should enable easier 1343*57696d54SAkhilesh Sanikop partition creation if there are small bits of free space on the disk. 1344*57696d54SAkhilesh Sanikop 1345*57696d54SAkhilesh Sanikop- You can now specify the end point of a partition by using a minus sign, 1346*57696d54SAkhilesh Sanikop in which case the end point is the default value minus the specified 1347*57696d54SAkhilesh Sanikop size. For instance, "-200M" creates a partition that ends 200MiB before 1348*57696d54SAkhilesh Sanikop the default end point. 1349*57696d54SAkhilesh Sanikop 1350*57696d54SAkhilesh Sanikop- You can now specify the start point of a partition by using a plus or 1351*57696d54SAkhilesh Sanikop minus sign, in which case the start point is the specified distance from 1352*57696d54SAkhilesh Sanikop the start (+) or end (-) of free space. This is exactly the same as the 1353*57696d54SAkhilesh Sanikop new rules for entry of the end point, except that the default value is 1354*57696d54SAkhilesh Sanikop set differently. 1355*57696d54SAkhilesh Sanikop 1356*57696d54SAkhilesh Sanikop- Deleting a partition now checks for a matching hybrid MBR partition, and 1357*57696d54SAkhilesh Sanikop if one is found, it's deleted. Any empty space that then surrounds the 1358*57696d54SAkhilesh Sanikop 0xEE (EFI GPT) MBR partitions is then added to the nearby 0xEE partition. 1359*57696d54SAkhilesh Sanikop If no non-0xEE partitions are left, a fresh protective MBR is generated. 1360*57696d54SAkhilesh Sanikop 1361*57696d54SAkhilesh Sanikop- Added hybrid MBR consistency check to the verify ('v') option and to 1362*57696d54SAkhilesh Sanikop pre-write checks. If non-0xEE/non-0x00 MBR partitions without 1363*57696d54SAkhilesh Sanikop corresponding GPT partitions are found, the user is warned. This finding 1364*57696d54SAkhilesh Sanikop does NOT prevent writing the partition table, though. 1365*57696d54SAkhilesh Sanikop 1366*57696d54SAkhilesh Sanikop- Added non-destructive write test when opening the device file, in order 1367*57696d54SAkhilesh Sanikop to detect the problem with FreeBSD being unable to write to disks with 1368*57696d54SAkhilesh Sanikop mounted partitions (or other potential problems). 1369*57696d54SAkhilesh Sanikop 1370*57696d54SAkhilesh Sanikop0.4.0: 1371*57696d54SAkhilesh Sanikop------ 1372*57696d54SAkhilesh Sanikop 1373*57696d54SAkhilesh Sanikop- Added support for BSD disklabels. The program can now convert disks that 1374*57696d54SAkhilesh Sanikop use "raw" disklabels, with the caveat that the first partition will 1375*57696d54SAkhilesh Sanikop almost certainly need to be deleted because it'll overlap the main GPT 1376*57696d54SAkhilesh Sanikop header; and convert disklabels contained within a GPT (or a former MBR, 1377*57696d54SAkhilesh Sanikop converted to GPT) partition. In the latter case, the 'b' main menu option 1378*57696d54SAkhilesh Sanikop is used. 1379*57696d54SAkhilesh Sanikop 1380*57696d54SAkhilesh Sanikop- Added support for compiling on FreeBSD. 1381*57696d54SAkhilesh Sanikop 1382*57696d54SAkhilesh Sanikop- Fixed bug that could cause crashes or incomplete sorts when sorting 1383*57696d54SAkhilesh Sanikop the partition table. 1384*57696d54SAkhilesh Sanikop 1385*57696d54SAkhilesh Sanikop- New partitions, including converted ones, now take on the name of the 1386*57696d54SAkhilesh Sanikop partition type as a default name. 1387*57696d54SAkhilesh Sanikop 1388*57696d54SAkhilesh Sanikop- Reorganized some code; created a separate C++ class for GPT partitions 1389*57696d54SAkhilesh Sanikop (GPTPart), which replaced a struct and enabled moving code from the 1390*57696d54SAkhilesh Sanikop bloated GPTData class into GPTPart. 1391*57696d54SAkhilesh Sanikop 1392*57696d54SAkhilesh Sanikop- Fixed a bug that produced spurious warnings about unknown sector sizes 1393*57696d54SAkhilesh Sanikop when loading a backup file. 1394*57696d54SAkhilesh Sanikop 1395*57696d54SAkhilesh Sanikop0.3.5: 1396*57696d54SAkhilesh Sanikop------ 1397*57696d54SAkhilesh Sanikop 1398*57696d54SAkhilesh SanikopNote: This version was not officially publicly released; I wanted to test 1399*57696d54SAkhilesh Sanikopthe big-endian support while developing 0.4.0. 1400*57696d54SAkhilesh Sanikop 1401*57696d54SAkhilesh Sanikop- Tweaked the disk type identification code to warn users to re-sync their 1402*57696d54SAkhilesh Sanikop hybrid MBRs when one is detected. 1403*57696d54SAkhilesh Sanikop 1404*57696d54SAkhilesh Sanikop- Tweaked MBR-reading code to ignore 0xEE (EFI GPT) partitions. This will 1405*57696d54SAkhilesh Sanikop only have an effect on a poorly partitioned MBR disk that contains an 1406*57696d54SAkhilesh Sanikop inappropriate EFI GPT partition, or when attempting to recover a 1407*57696d54SAkhilesh Sanikop corrupted disk by using the hybrid MBR for data recovery. 1408*57696d54SAkhilesh Sanikop 1409*57696d54SAkhilesh Sanikop- Added big-endian (PowerPC, etc.) support! 1410*57696d54SAkhilesh Sanikop 1411*57696d54SAkhilesh Sanikop- Added code to identify and warn of the presence of an Apple Partition 1412*57696d54SAkhilesh Sanikop Map (APM) on the disk. 1413*57696d54SAkhilesh Sanikop 1414*57696d54SAkhilesh Sanikop- Enabled MBR conversion code to handle multiple logical partitions. 1415*57696d54SAkhilesh Sanikop 1416*57696d54SAkhilesh Sanikop0.3.4: 1417*57696d54SAkhilesh Sanikop------ 1418*57696d54SAkhilesh Sanikop 1419*57696d54SAkhilesh Sanikop- Fixed bug that enabled (possibly accidental) entry of MBR type codes of 1420*57696d54SAkhilesh Sanikop 0x00 in GPTData::MakeHybrid(). The fix also enables entry of default 1421*57696d54SAkhilesh Sanikop type code by pressing the Enter key when prompted. Applied a similar 1422*57696d54SAkhilesh Sanikop fix to the entry of the type code for the second protective partition, 1423*57696d54SAkhilesh Sanikop if one is used. 1424*57696d54SAkhilesh Sanikop 1425*57696d54SAkhilesh Sanikop- Fixed a typo: "sectors" was spelled "sectprs" in one spot! 1426*57696d54SAkhilesh Sanikop 1427*57696d54SAkhilesh Sanikop- Fixed bug that caused default entry for end sector to be refused if an 1428*57696d54SAkhilesh Sanikop initial value using a plus sign (e.g., "+20G") was also refused. 1429*57696d54SAkhilesh Sanikop 1430*57696d54SAkhilesh Sanikop0.3.3: 1431*57696d54SAkhilesh Sanikop------ 1432*57696d54SAkhilesh Sanikop 1433*57696d54SAkhilesh Sanikop- Gave users control over the way MBR partitions are assigned to slots in a 1434*57696d54SAkhilesh Sanikop hybrid MBR setup; the original method (putting the 0xEE partition after 1435*57696d54SAkhilesh Sanikop the real partitions) works well for non-boot disks, but both GRUB and 1436*57696d54SAkhilesh Sanikop GRUB2 become confused by this type of setup, so it needs changing. 1437*57696d54SAkhilesh Sanikop 1438*57696d54SAkhilesh Sanikop- Changed "blocks" to "sectors" in GPT and MBR table displays. 1439*57696d54SAkhilesh Sanikop 1440*57696d54SAkhilesh Sanikop- Added "Boot" column to MBR table display; shows an asterisk (*) when the 1441*57696d54SAkhilesh Sanikop partition's status is bootable. 1442*57696d54SAkhilesh Sanikop 1443*57696d54SAkhilesh Sanikop0.3.2: 1444*57696d54SAkhilesh Sanikop------ 1445*57696d54SAkhilesh Sanikop 1446*57696d54SAkhilesh Sanikop- Changed __DARWIN_UNIX03 to __APPLE__ as code to enable MacOS X support. 1447*57696d54SAkhilesh Sanikop 1448*57696d54SAkhilesh Sanikop- Added the ability to create a hybrid MBR ('h' on experts' menu). This was 1449*57696d54SAkhilesh Sanikop motivated by my discovery that Windows 7 remains brain-dead when it comes 1450*57696d54SAkhilesh Sanikop to the ability to boot from a GPT disk, at least on BIOS-based machines. 1451*57696d54SAkhilesh Sanikop 1452*57696d54SAkhilesh Sanikop- Added 'z' option to experts' menu, to destroy GPT data structures and 1453*57696d54SAkhilesh Sanikop exit. The intent is to use this feature to enable subsequent partitioning 1454*57696d54SAkhilesh Sanikop of the disk using fdisk or other GPT-unaware tools. (GNU Parted will wipe 1455*57696d54SAkhilesh Sanikop the GPT data structures itself when you create a new MBR ["msdos 1456*57696d54SAkhilesh Sanikop disklabel," in Parted parlance], so using Parted is another option.) 1457*57696d54SAkhilesh Sanikop 1458*57696d54SAkhilesh Sanikop- Slightly altered the effect of the 'o' command on the main menu. It now 1459*57696d54SAkhilesh Sanikop blanks out the protective MBR, as well as the GPT data. 1460*57696d54SAkhilesh Sanikop 1461*57696d54SAkhilesh Sanikop0.3.1: 1462*57696d54SAkhilesh Sanikop------ 1463*57696d54SAkhilesh Sanikop 1464*57696d54SAkhilesh Sanikop- Added Mac OS X support, provided as a patch by David Hubbard 1465*57696d54SAkhilesh Sanikop ([email protected]). 1466*57696d54SAkhilesh Sanikop 1467*57696d54SAkhilesh Sanikop- Fixed bug in disksize() function on Mac OS. (Possibly dependent on the 1468*57696d54SAkhilesh Sanikop kernel and/or GCC version.) The disk size, of type uint64_t, was not 1469*57696d54SAkhilesh Sanikop being passed correctly, so I reorganized the function to return it as 1470*57696d54SAkhilesh Sanikop the function's return value rather than as a parameter. This seems to 1471*57696d54SAkhilesh Sanikop work OK on my Mac OS test system and on both 32- and 64-bit Linux 1472*57696d54SAkhilesh Sanikop systems. 1473*57696d54SAkhilesh Sanikop 1474*57696d54SAkhilesh Sanikop- Fixed off-by-one bug in GPTData::FindLastAvailable(). 1475*57696d54SAkhilesh Sanikop 1476*57696d54SAkhilesh Sanikop- Fixed bug that caused display of options after a disk-write error. 1477*57696d54SAkhilesh Sanikop 1478*57696d54SAkhilesh Sanikop- Fixed several incorrect MacOS X partition type GUIDs, thanks to Yves 1479*57696d54SAkhilesh Sanikop Blusseau ([email protected]). 1480*57696d54SAkhilesh Sanikop 1481*57696d54SAkhilesh Sanikop0.3.0: 1482*57696d54SAkhilesh Sanikop------ 1483*57696d54SAkhilesh Sanikop 1484*57696d54SAkhilesh Sanikop- Changed version number to 0.3.0, reflecting the fact that I've received 1485*57696d54SAkhilesh Sanikop no significant bug reports and so am elevating the program to "beta" 1486*57696d54SAkhilesh Sanikop status. This change also entailed altering the warning the program 1487*57696d54SAkhilesh Sanikop displays when saving partition table changes. 1488*57696d54SAkhilesh Sanikop 1489*57696d54SAkhilesh Sanikop- Fixed minor bug in CHS geometry of the protective MBR's type EE partition 1490*57696d54SAkhilesh Sanikop (was producing 0x000200 as the start value, but should be 0x000100). 1491*57696d54SAkhilesh Sanikop Should be a non-critical bug since the protective MBR partition 1492*57696d54SAkhilesh Sanikop definition is only there to keep MBR-only disk utilities from messing 1493*57696d54SAkhilesh Sanikop with the disk. 1494*57696d54SAkhilesh Sanikop 1495*57696d54SAkhilesh Sanikop- Added ability to enter GUIDs as single massive strings rather than in 1496*57696d54SAkhilesh Sanikop chunks. 1497*57696d54SAkhilesh Sanikop 1498*57696d54SAkhilesh Sanikop0.2.2: 1499*57696d54SAkhilesh Sanikop------ 1500*57696d54SAkhilesh Sanikop 1501*57696d54SAkhilesh Sanikop- Added #include directives required to compile the program using GCC 1502*57696d54SAkhilesh Sanikop 4.4.0. 1503*57696d54SAkhilesh Sanikop 1504*57696d54SAkhilesh Sanikop0.2.1: 1505*57696d54SAkhilesh Sanikop------ 1506*57696d54SAkhilesh Sanikop 1507*57696d54SAkhilesh Sanikop- Fixed partition numbering problem in reports of partition overlaps in 1508*57696d54SAkhilesh Sanikop verification function. 1509*57696d54SAkhilesh Sanikop 1510*57696d54SAkhilesh Sanikop- Fixed 1-sector partition size problem when creating new partitions 1511*57696d54SAkhilesh Sanikop (partitions were 1 sector too big when using the +size option). 1512*57696d54SAkhilesh Sanikop 1513*57696d54SAkhilesh Sanikop- Changed BytesToSI() to display values in bytes without decimal points 1514*57696d54SAkhilesh Sanikop (e.g., "512 bytes" rather than "512.0 bytes"). 1515*57696d54SAkhilesh Sanikop 1516*57696d54SAkhilesh Sanikop- Added GPTData class member functions to retrieve GPT data structure 1517*57696d54SAkhilesh Sanikop locations on disk; used in my internal-use-only GPT-wiping program. 1518*57696d54SAkhilesh Sanikop 1519*57696d54SAkhilesh Sanikop- Eliminated the "a reboot is recommended" notice after writing the 1520*57696d54SAkhilesh Sanikop partition table. 1521*57696d54SAkhilesh Sanikop 1522*57696d54SAkhilesh Sanikop- Added notice after sorting the partition table to the effect that 1523*57696d54SAkhilesh Sanikop editing /etc/fstab and/or the boot loader files may be required. 1524*57696d54SAkhilesh Sanikop 1525*57696d54SAkhilesh Sanikop- Fixed bug in MBR-reading function that caused 0x0f (Win95 LBA) and 0x85 1526*57696d54SAkhilesh Sanikop (Linux extended) extended partitions to not be read. 1527*57696d54SAkhilesh Sanikop 1528*57696d54SAkhilesh Sanikop- Fixed bug in GetLastSector() (in support.cc) that would have prevented 1529*57696d54SAkhilesh Sanikop correct user entry of over-32-bit sector numbers on 32-bit systems. 1530*57696d54SAkhilesh Sanikop 1531*57696d54SAkhilesh Sanikop- Made some changes/corrections to the partition type list in 1532*57696d54SAkhilesh Sanikop parttypes.cc. Most of these were based on newly-discovered MBR type 1533*57696d54SAkhilesh Sanikop codes for Apple (Mac OS X) filesystems. 1534*57696d54SAkhilesh Sanikop 1535*57696d54SAkhilesh Sanikop- General code cleanup (setting explicit casts, etc.) 1536*57696d54SAkhilesh Sanikop 1537*57696d54SAkhilesh Sanikop0.2.0: 1538*57696d54SAkhilesh Sanikop------ 1539*57696d54SAkhilesh Sanikop 1540*57696d54SAkhilesh Sanikop- Initial semi-public release 1541