Fixed bug in hybrid MBR generation; gdisk 0.6.9
This commit is contained in:
18
NEWS
18
NEWS
@@ -1,10 +1,20 @@
|
||||
0.6.9 (7/4/2010):
|
||||
------------------
|
||||
|
||||
- Fixed minor error in sgdisk man page (--largest-new option requires
|
||||
a partition number).
|
||||
|
||||
- Fixed major bug in hybrid MBR creation, which caused incorrect
|
||||
protective partition end point settings and occasionally other
|
||||
problems.
|
||||
|
||||
0.6.8 (5/23/2010):
|
||||
------------------
|
||||
|
||||
- Added tests to see if the file to be opened is a directory,
|
||||
character device, FIFO, or socket; program now terminates if any of
|
||||
these conditions is met. (Linux/FreeBSD/OS X only.) Thanks to an
|
||||
anonymous contributor for this patch.
|
||||
- Added tests to see if the file to be opened is a directory, character
|
||||
device, FIFO, or socket; program now terminates if any of these
|
||||
conditions is met. (Linux/FreeBSD/OS X only.) Thanks to Justin Maggard
|
||||
for this patch.
|
||||
|
||||
- Added 'f' option on gdisk's experts' menu (-G/--randomize-guids in
|
||||
sgdisk). This option randomizes the disk's GUID and all partitions'
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
Summary: An fdisk-like partitioning tool for GPT disks
|
||||
Name: gdisk
|
||||
Version: 0.6.8
|
||||
Version: 0.6.9
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2
|
||||
URL: http://www.rodsbooks.com/gdisk
|
||||
Group: Applications/System
|
||||
Source: http://www.rodsbooks.com/gdisk/gdisk-0.6.8.tgz
|
||||
Source: http://www.rodsbooks.com/gdisk/gdisk-0.6.9.tgz
|
||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
|
||||
%description
|
||||
@@ -40,5 +40,5 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%doc %{_mandir}/man8*
|
||||
|
||||
%changelog
|
||||
* Sun May 23 2010 R Smith <rodsmith@rodsbooks.com> - 0.6.8
|
||||
- Created spec file for 0.6.8 release
|
||||
* Sun Jul 4 2010 R Smith <rodsmith@rodsbooks.com> - 0.6.9
|
||||
- Created spec file for 0.6.9 release
|
||||
|
||||
5
gdisk.8
5
gdisk.8
@@ -1,6 +1,6 @@
|
||||
.\" Copyright 2010 Roderick W. Smith (rodsmith@rodsbooks.com)
|
||||
.\" May be distributed under the GNU General Public License
|
||||
.TH "GDISK" "8" "0.6.8" "Roderick W. Smith" "GPT fdisk Manual"
|
||||
.TH "GDISK" "8" "0.6.9" "Roderick W. Smith" "GPT fdisk Manual"
|
||||
.SH "NAME"
|
||||
gdisk \- Interactive GUID partition table (GPT) manipulator
|
||||
.SH "SYNOPSIS"
|
||||
@@ -648,7 +648,8 @@ Contributors:
|
||||
|
||||
* David Hubbard (david.c.hubbard@gmail.com)
|
||||
|
||||
* One anonymous contributor
|
||||
* Justin Maggard (justin.maggard@netgear.com)
|
||||
|
||||
|
||||
.SH "SEE ALSO"
|
||||
\fBcfdisk (8)\fR,
|
||||
|
||||
14
gpt.cc
14
gpt.cc
@@ -1519,6 +1519,15 @@ int GPTData::PartsToMBR(PartNotes & notes) {
|
||||
protectiveMBR.SetPartBootable(mbrNum);
|
||||
mbrNum++;
|
||||
} // if
|
||||
if (convInfo.gptPartNum == MBR_EFI_GPT)
|
||||
mbrNum++;
|
||||
} // for
|
||||
// Now go through and set sizes for MBR_EFI_GPT partitions....
|
||||
notes.Rewind();
|
||||
mbrNum = 0;
|
||||
while (notes.GetNextInfo(&convInfo) >= 0) {
|
||||
if ((convInfo.gptPartNum >= 0) && (convInfo.type == PRIMARY))
|
||||
mbrNum++;
|
||||
if (convInfo.gptPartNum == MBR_EFI_GPT) {
|
||||
if (protectiveMBR.FindFirstAvailable() == UINT32_C(1)) {
|
||||
protectiveMBR.MakePart(mbrNum, 1, protectiveMBR.FindLastInFree(1), convInfo.hexCode);
|
||||
@@ -1527,12 +1536,11 @@ int GPTData::PartsToMBR(PartNotes & notes) {
|
||||
protectiveMBR.MakeBiggestPart(mbrNum, convInfo.hexCode);
|
||||
} // if/else
|
||||
mbrNum++;
|
||||
} // if EFI GPT partition specified
|
||||
} // for
|
||||
} // if
|
||||
} // while
|
||||
// Now do logical partition(s)...
|
||||
protectiveMBR.SetDisk(&myDisk);
|
||||
numConverted += protectiveMBR.CreateLogicals(notes);
|
||||
// numConverted += PartsToLogical(notes);
|
||||
return numConverted;
|
||||
} // GPTData::PartsToMBR()
|
||||
|
||||
|
||||
4
gpt.h
4
gpt.h
@@ -1,7 +1,7 @@
|
||||
/* gpt.h -- GPT and data structure definitions, types, and
|
||||
functions */
|
||||
|
||||
/* This program is copyright (c) 2009 by Roderick W. Smith. It is distributed
|
||||
/* This program is copyright (c) 2009, 2010 by Roderick W. Smith. It is distributed
|
||||
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
|
||||
|
||||
#include <stdint.h>
|
||||
@@ -16,7 +16,7 @@
|
||||
#ifndef __GPTSTRUCTS
|
||||
#define __GPTSTRUCTS
|
||||
|
||||
#define GPTFDISK_VERSION "0.6.8"
|
||||
#define GPTFDISK_VERSION "0.6.9"
|
||||
|
||||
// Constants used by GPTData::PartsToMBR(). MBR_EMPTY must be the lowest-
|
||||
// numbered value to refer to partition numbers. (Most will be 0 or positive,
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <stdint.h>
|
||||
#include <limits.h>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <cstdio>
|
||||
@@ -390,6 +391,7 @@ void GPTDataTextUI::MakeHybrid(void) {
|
||||
// Linux won't find any partitions on the disk.
|
||||
newNote = new struct PartInfo;
|
||||
newNote->gptPartNum = MBR_EFI_GPT;
|
||||
newNote->firstLBA = 1;
|
||||
newNote->active = 0;
|
||||
newNote->hexCode = 0xEE;
|
||||
newNote->type = PRIMARY;
|
||||
|
||||
@@ -444,7 +444,6 @@ int PartNotes::IsLegal(void) {
|
||||
return (((p+e) <= 4) && (e <= 1));
|
||||
} // PartNotes::IsLegal()
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* *
|
||||
* The following partitions manipulate the data in the quest to create a *
|
||||
|
||||
6
sgdisk.8
6
sgdisk.8
@@ -1,6 +1,6 @@
|
||||
.\" Copyright 2010 Roderick W. Smith (rodsmith@rodsbooks.com)
|
||||
.\" May be distributed under the GNU General Public License
|
||||
.TH "SGDISK" "8" "0.6.8" "Roderick W. Smith" "GPT fdisk Manual"
|
||||
.TH "SGDISK" "8" "0.6.9" "Roderick W. Smith" "GPT fdisk Manual"
|
||||
.SH "NAME"
|
||||
sgdisk \- Command\-line GUID partition table (GPT) manipulator for Linux and Unix
|
||||
.SH "SYNOPSIS"
|
||||
@@ -304,7 +304,7 @@ which is the start of the largest available block for the start sector and
|
||||
the end of the same block for the end sector.
|
||||
|
||||
.TP
|
||||
.B \-N, \-\-largest\-new
|
||||
.B \-N, \-\-largest\-new=num
|
||||
Create a new partition that fills the largest available block of space on
|
||||
the disk. Note that if used on a completely blank disk, this is likely to
|
||||
result in a sector-moved warning, since the first available sector
|
||||
@@ -532,7 +532,7 @@ Contributors:
|
||||
|
||||
* David Hubbard (david.c.hubbard@gmail.com)
|
||||
|
||||
* One anonymous contributor
|
||||
* Justin Maggard (justin.maggard@netgear.com)
|
||||
|
||||
.SH "SEE ALSO"
|
||||
\fBcfdisk (8)\fR,
|
||||
|
||||
Reference in New Issue
Block a user