Revert "Update external/gptfdisk to 1.0.1" am: bdbab02f71 am: 165c596ac3
am: fa990d2e3b
Change-Id: I88a6501b6dbc6b6682ac414a1aa590a11bbd3306
This commit is contained in:
3
Makefile
3
Makefile
@@ -28,9 +28,6 @@ sgdisk: $(LIB_OBJS) sgdisk.o gptcl.o
|
||||
fixparts: $(MBR_LIB_OBJS) fixparts.o
|
||||
$(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts
|
||||
|
||||
test:
|
||||
./gdisk_test.sh
|
||||
|
||||
lint: #no pre-reqs
|
||||
lint $(SRCS)
|
||||
|
||||
|
||||
20
Makefile.mac
20
Makefile.mac
@@ -1,9 +1,8 @@
|
||||
CC=gcc
|
||||
CXX=clang++
|
||||
FATBINFLAGS=-arch x86_64 -arch i386 -mmacosx-version-min=10.4
|
||||
CFLAGS=$(FATBINFLAGS) -O2 -D_FILE_OFFSET_BITS=64 -g
|
||||
#CXXFLAGS=-O2 -Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 -I/opt/local/include -I/usr/local/include -I/opt/local/include -g
|
||||
CXXFLAGS=$(FATBINFLAGS) -O2 -Wall -D_FILE_OFFSET_BITS=64 -I/opt/local/include -I /usr/local/include -I/opt/local/include -g
|
||||
CXX=g++
|
||||
CFLAGS=-O2 -D_FILE_OFFSET_BITS=64 -g
|
||||
#CXXFLAGS=-O2 -Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 -I/sw/include -I/usr/local/include -I/opt/local/include -g
|
||||
CXXFLAGS=-O2 -Wall -D_FILE_OFFSET_BITS=64 -I/sw/include -I /usr/local/include -I/opt/local/include -g
|
||||
LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
|
||||
MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
|
||||
#LIB_SRCS=$(NAMES:=.cc)
|
||||
@@ -15,20 +14,19 @@ DEPEND= makedepend $(CFLAGS)
|
||||
all: gdisk sgdisk cgdisk fixparts
|
||||
|
||||
gdisk: $(LIB_OBJS) gpttext.o gdisk.o
|
||||
$(CXX) $(LIB_OBJS) gpttext.o gdisk.o $(FATBINFLAGS) -o gdisk
|
||||
$(CXX) $(LIB_OBJS) gpttext.o gdisk.o -o gdisk
|
||||
# $(CXX) $(LIB_OBJS) -L/usr/lib -licucore gpttext.o gdisk.o -o gdisk
|
||||
|
||||
cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o
|
||||
$(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o /opt/local/lib/libncurses.a $(LDFLAGS) $(FATBINFLAGS) -o cgdisk
|
||||
$(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -lncurses -o cgdisk
|
||||
# $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -licucore -lncurses -o cgdisk
|
||||
|
||||
sgdisk: $(LIB_OBJS) gptcl.o sgdisk.o
|
||||
# $(CXX) $(LIB_OBJS) gptcl.o sgdisk.o /opt/local/lib/libiconv.a /opt/local/lib/libintl.a /opt/local/lib/libpopt.a $(FATBINFLAGS) -o sgdisk
|
||||
$(CXX) $(LIB_OBJS) gptcl.o sgdisk.o -L/opt/local/lib -lpopt $(FATBINFLAGS) -o sgdisk
|
||||
$(CXX) $(LIB_OBJS) gptcl.o sgdisk.o -L/sw/lib -lpopt -o sgdisk
|
||||
# $(CXX) $(LIB_OBJS) gptcl.o sgdisk.o -L/sw/lib -licucore -lpopt -o sgdisk
|
||||
|
||||
fixparts: $(MBR_LIB_OBJS) fixparts.o
|
||||
$(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) $(FATBINFLAGS) -o fixparts
|
||||
$(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts
|
||||
|
||||
testguid: $(LIB_OBJS) testguid.o
|
||||
$(CXX) $(LIB_OBJS) testguid.o -o testguid
|
||||
@@ -37,7 +35,7 @@ lint: #no pre-reqs
|
||||
lint $(SRCS)
|
||||
|
||||
clean: #no pre-reqs
|
||||
rm -f core *.o *~ gdisk sgdisk cgdisk fixparts
|
||||
rm -f core *.o *~ gdisk sgdisk
|
||||
|
||||
# what are the source dependencies
|
||||
depend: $(SRCS)
|
||||
|
||||
105
NEWS
105
NEWS
@@ -1,107 +1,6 @@
|
||||
1.0.1 (10/18/2015):
|
||||
-------------------
|
||||
|
||||
- Fixed bug that caused -N/--largest-new option to sgdisk to fail when
|
||||
fed a "0" option.
|
||||
|
||||
- Fixed bug that caused input glitches in EFI version of gdisk.
|
||||
|
||||
- Fixed bug that caused sgdisk to not return an appropriate error code
|
||||
when it encountered a write error when saving changes.
|
||||
|
||||
- Fixed bug that caused cgdisk's "Info" display to under-report the
|
||||
partition's size by one sector.
|
||||
|
||||
- OS X 10.11 includes new security features that prevent GPT fdisk from
|
||||
working unless these features are disabled. To do so, you must boot to a
|
||||
Recovery HD system, open a Terminal, type "csrutil disable", and reboot
|
||||
into the normal system. You can re-enable the security features by
|
||||
repeating the process, but specify "enable" rather than "disable". I've
|
||||
added a message pointing users to a Web page explaining how to disable
|
||||
this feature when gdisk detects that it can't write to the disk under OS
|
||||
X. If you know of a way around this (including code changes to gdisk),
|
||||
please contact me.
|
||||
|
||||
- I've updated the OS X installation location from the Unix-standard
|
||||
/usr/sbin (and related locations for documentation) to /usr/local/bin
|
||||
(and related locations for documentation). This is Just Plain Crazy from
|
||||
a Unix point of view, but Apple has to be Apple and do things just a
|
||||
little bit differently.
|
||||
|
||||
- I've updated my OS X environment to OS X 10.11 and LLVM 7.0.0. This has
|
||||
also meant installing fresh versions of popt and ncurses from MacPorts,
|
||||
which may require upgrading popt to get sgdisk working on some systems.
|
||||
(gdisk, cgdisk, and fixparts should continue to work normally on all
|
||||
systems.) The OS X binaries are now "fat" (32- and 64-bit) versions,
|
||||
which should have no noticeable effect unless you have a Mac with broken
|
||||
32-bit support, in which case the binaries will now work.
|
||||
|
||||
- Changed the default name of 0xab00 partitions from "Apple boot" to
|
||||
"Recovery HD", since the latter is the name that Apple gives these
|
||||
partitions. Also, I discovered through painful experience that OS X
|
||||
flakes out and won't boot if the name is something other than "Recovery
|
||||
HD", so it really has to have the right name!
|
||||
|
||||
- Changed the OpenBSD type codes (0xa600 and 0xa601): 0xa600 is now
|
||||
824CC7A0-36A8-11E3-890A-952519AD3F61 (OpenBSD disklabel) and 0xa601 is
|
||||
now gone. Previously, 0xa600 was 516E7CB4-6ECF-11D6-8FF8-00022D09712B, a
|
||||
duplicate of the FreeBSD disklabel, and 0xa601 was
|
||||
824CC7A0-36A8-11E3-890A-952519AD3F61. OpenBSD is now officially
|
||||
supporting 824CC7A0-36A8-11E3-890A-952519AD3F61 as a disklabel type,
|
||||
though. It's unclear what, if anything, OpenBSD will use for
|
||||
non-disklabel type codes at the moment.
|
||||
|
||||
- Added GUID 0311FC50-01CA-4725-AD77-9ADBB20ACE98 (0xbc00) for
|
||||
Acronis Secure Zone backup partitions.
|
||||
|
||||
- Fixed bug that caused random crashes on ppc64el systems (and perhaps
|
||||
others).
|
||||
|
||||
- Added GUID C91818F9-8025-47AF-89D2-F030D7000C2C (0x3900) for Plan 9.
|
||||
|
||||
- Added GUID 69DAD710-2CE4-4E3C-B16C-21A1D49ABED3 (0x8307) for 32-bit ARM
|
||||
Linux root (/) partition, as per the Freedesktop.org Discoverable
|
||||
Partition Spec
|
||||
(http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/).
|
||||
|
||||
- Edited man pages to clarify that default alignment is to 1MiB boundaries;
|
||||
this translates to 2048 sectors on disks with 512-byte sectors, but it
|
||||
will be something else on disks with other sector sizes.
|
||||
|
||||
- Changed behavior of -z/--zap and -Z/--zap-all options to sgdisk so that
|
||||
if a subsequent command causes changes, they'll be written to disk.
|
||||
Previously, doing something like "sgdisk --zap-all --clear /dev/sdd"
|
||||
would wipe the disk but not create a partition table; to create a blank
|
||||
table you'd need to do "sgdisk --zap-all --clear --mbrtogpt /dev/sdd",
|
||||
which is a bit odd and counter-intuitive, to the point of arguably being
|
||||
a bug.
|
||||
|
||||
1.0.0 (3/16/2015):
|
||||
0.8.11 (?/?/2014):
|
||||
------------------
|
||||
|
||||
- I'm now building a binary package of gdisk_x64.efi, using the UEFI GPT
|
||||
fdisk package.
|
||||
|
||||
- Added partition type for OpenBSD data
|
||||
(824CC7A0-36A8-11E3-890A-952519AD3F61/0xa601). Also mapped 0xa600 to the
|
||||
FreeBSD disklabel type code (516E7CB4-6ECF-11D6-8FF8-00022D09712B). I'm
|
||||
not sure that's 100% correct, but since I can't find references to an
|
||||
OpenBSD disklabel GPT type code, it seems the best choice at the moment.
|
||||
|
||||
- Added partition type for Windows Storage Spaces
|
||||
(E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D/0x4202)
|
||||
|
||||
- Added -O/--print-mbr option to sgdisk, enabling easier display of MBR
|
||||
data structures without invoking gdisk.
|
||||
|
||||
- Updated warning message: "EBR describes a logical partition" now reads
|
||||
"EBR points to an EBR," which is more technically correct.
|
||||
|
||||
- Altered warning displayed when run from Windows on non-GPT disk, because
|
||||
Windows on UEFI-based systems is becoming more common.
|
||||
|
||||
- Fixed spurious "1" return value in gdisk.
|
||||
|
||||
- Small code changes to support compilation as EFI application with the
|
||||
UEFI GPT fdisk library
|
||||
(http://sourceforge.net/projects/uefigptfdisk/?source=directory)
|
||||
@@ -110,7 +9,7 @@
|
||||
(https://github.com/ceph/ceph/blob/9bcc42a3e6b08521694b5c0228b2c6ed7b3d312e/src/ceph-disk#L76-L81):
|
||||
4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D/0xf800 (Ceph OSD),
|
||||
4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D/0xf801 (Ceph dm-crypt OSD),
|
||||
45B0969E-9B03-4F30-B4C6-B4B80CEFF106/0xf802 (Ceph journal),
|
||||
BFBFAFE7-A34F-448A-9A5B-6213EB736C22/0xf802 (Ceph journal),
|
||||
45B0969E-9B03-4F30-B4C6-5EC00CEFF106/0xf803 (Ceph dm-crypt journal),
|
||||
89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE/0xf804 (Ceph disk in creation), and
|
||||
89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE/0xf805 (Ceph dm-crypt disk in
|
||||
|
||||
11
README
11
README
@@ -200,12 +200,11 @@ be used instead. In addition, note these requirements:
|
||||
(headers). Most Linux distributions install popt by default, but you may
|
||||
need to install a package called popt-dev, popt-devel, or something
|
||||
similar to obtain the header files. Mac OS users can find a version of
|
||||
popt for Mac OS from Darwin Ports (http://popt.darwinports.com), MacPorts
|
||||
(https://trac.macports.org/browser/trunk/dports/devel/popt/Portfile), or
|
||||
Fink (http://www.finkproject.org); however, you'll first need to install
|
||||
DarwinPorts, MacPorts, or Fink (instructions exist on the relevant
|
||||
projects' pages). Alternatively, you can compile gdisk and/or cgdisk
|
||||
alone, without sgdisk; gdisk doesn't require popt.
|
||||
popt for Mac OS from Darwin Ports (http://popt.darwinports.com) or Fink
|
||||
(http://www.finkproject.org); however, you'll first need to install
|
||||
DarwinPorts or Fink (instructions exist on the relevant projects' pages).
|
||||
Alternatively, you can compile gdisk and/or cgdisk alone, without sgdisk;
|
||||
gdisk doesn't require popt.
|
||||
|
||||
When all the necessary development tools and libraries are installed, you
|
||||
can uncompress the package and type "make" at the command prompt in the
|
||||
|
||||
@@ -298,7 +298,7 @@ int BasicMBRData::ReadLogicalParts(uint64_t extendedStart, int partNum) {
|
||||
// the logical partition when this is the case....
|
||||
ebrType = ebr.partitions[0].partitionType;
|
||||
if ((ebrType == 0x05) || (ebrType == 0x0f) || (ebrType == 0x85)) {
|
||||
cout << "EBR points to an EBR!\n";
|
||||
cout << "EBR describes a logical partition!\n";
|
||||
offset = extendedStart + ebr.partitions[0].firstLBA;
|
||||
} else {
|
||||
// Copy over the basic data....
|
||||
|
||||
24
cgdisk.8
24
cgdisk.8
@@ -1,6 +1,6 @@
|
||||
.\" Copyright 2011-2015 Roderick W. Smith (rodsmith@rodsbooks.com)
|
||||
.\" Copyright 2011-2013 Roderick W. Smith (rodsmith@rodsbooks.com)
|
||||
.\" May be distributed under the GNU General Public License
|
||||
.TH "CGDISK" "8" "1.0.1" "Roderick W. Smith" "GPT fdisk Manual"
|
||||
.TH "CGDISK" "8" "0.8.10" "Roderick W. Smith" "GPT fdisk Manual"
|
||||
.SH "NAME"
|
||||
cgdisk \- Curses-based GUID partition table (GPT) manipulator
|
||||
.SH "SYNOPSIS"
|
||||
@@ -181,13 +181,12 @@ Change the sector alignment value. Disks with more logical sectors than
|
||||
physical sectors (such as modern Advanced Format drives), some RAID
|
||||
configurations, and many SSD devices, can suffer performance problems if
|
||||
partitions are not aligned properly for their internal data structures. On
|
||||
new disks, GPT fdisk attempts to align partitions on 1MiB boundaries
|
||||
(2048\-sectors on disks with 512-byte sectors) by default, which optimizes
|
||||
performance for all of these disk types. On pre\-partitioned disks, GPT
|
||||
fdisk attempts to identify the alignment value used on that disk, but will
|
||||
set 8-sector alignment on disks larger than 300 GB even if lesser alignment
|
||||
values are detected. In either case, it can be changed by using this
|
||||
option.
|
||||
new disks, GPT fdisk attempts to align partitions on 2048\-sector (1MiB)
|
||||
boundaries by default, which optimizes performance for all of these disk
|
||||
types. On pre\-partitioned disks, GPT fdisk attempts to identify the
|
||||
alignment value used on that disk, but will set 8-sector alignment on disks
|
||||
larger than 300 GB even if lesser alignment values are detected. In either
|
||||
case, it can be changed by using this option.
|
||||
|
||||
.TP
|
||||
.B Backup
|
||||
@@ -277,7 +276,10 @@ Write data. Use this command to save your changes.
|
||||
|
||||
.SH "BUGS"
|
||||
|
||||
Known bugs and limitations include:
|
||||
As of March 2014 (version 0.8.10), \fBcgdisk\fR should be considered
|
||||
beta software. Although the underlying partition manipulation code is much
|
||||
older, the \fBcgdisk\fR ncurses user interface is brand new with GPT fdisk
|
||||
version 0.8.0. Known bugs and limitations include:
|
||||
|
||||
.TP
|
||||
.B *
|
||||
@@ -365,7 +367,7 @@ Contributors:
|
||||
|
||||
* Justin Maggard (justin.maggard@netgear.com)
|
||||
|
||||
* Dwight Schauer (dschauer@gmail.com)
|
||||
* Dwight Schauer (dschauer@ti.com)
|
||||
|
||||
* Florian Zumbiehl (florz@florz.de)
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
Summary: GPT partitioning and MBR repair software
|
||||
Name: gptfdisk
|
||||
Version: 1.0.1
|
||||
Version: 0.8.10
|
||||
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2
|
||||
URL: http://www.rodsbooks.com/gdisk
|
||||
Group: Applications/System
|
||||
Source: http://www.rodsbooks.com/gdisk/gptfdisk-1.0.1.tar.gz
|
||||
Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.8.10.tar.gz
|
||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||||
|
||||
%description
|
||||
@@ -81,5 +81,5 @@ provides a few additional partition manipulation features.
|
||||
|
||||
|
||||
%changelog
|
||||
* Sun Mar 2 2014 R Smith <rodsmith@rodsbooks.com> - 1.0.1
|
||||
- Created spec file for 1.0.1 release
|
||||
* Sun Mar 2 2014 R Smith <rodsmith@rodsbooks.com> - 0.8.10
|
||||
- Created spec file for 0.8.10 release
|
||||
|
||||
@@ -76,8 +76,7 @@ int DiskIO::OpenForRead(void) {
|
||||
if (fstat64(fd, &st) == 0) {
|
||||
if (S_ISDIR(st.st_mode))
|
||||
cerr << "The specified path is a directory!\n";
|
||||
#if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) \
|
||||
&& !defined(__APPLE__)
|
||||
#if !defined(__FreeBSD__) && !defined(__APPLE__)
|
||||
else if (S_ISCHR(st.st_mode))
|
||||
cerr << "The specified path is a character device!\n";
|
||||
#endif
|
||||
@@ -256,8 +255,7 @@ int DiskIO::DiskSync(void) {
|
||||
i = ioctl(fd, BLKRRPART);
|
||||
if (i) {
|
||||
cout << "Warning: The kernel is still using the old partition table.\n"
|
||||
<< "The new table will be used at the next reboot or after you\n"
|
||||
<< "run partprobe(8) or kpartx(8)\n";
|
||||
<< "The new table will be used at the next reboot.\n";
|
||||
} else {
|
||||
retval = 1;
|
||||
} // if/else
|
||||
@@ -275,7 +273,7 @@ int DiskIO::DiskSync(void) {
|
||||
// Note that seeking beyond the end of the file is NOT detected as a failure!
|
||||
int DiskIO::Seek(uint64_t sector) {
|
||||
int retval = 1;
|
||||
off_t seekTo, sought;
|
||||
off64_t seekTo, sought;
|
||||
|
||||
// If disk isn't open, try to open it....
|
||||
if (!isOpen) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.\" Copyright 2011-2015 Roderick W. Smith (rodsmith@rodsbooks.com)
|
||||
.\" Copyright 2011-2013 Roderick W. Smith (rodsmith@rodsbooks.com)
|
||||
.\" May be distributed under the GNU General Public License
|
||||
.TH "FIXPARTS" "8" "1.0.1" "Roderick W. Smith" "FixParts Manual"
|
||||
.TH "FIXPARTS" "8" "0.8.10" "Roderick W. Smith" "FixParts Manual"
|
||||
.SH "NAME"
|
||||
fixparts \- MBR partition table repair utility
|
||||
.SH "SYNOPSIS"
|
||||
@@ -202,7 +202,8 @@ see a summary of available options.
|
||||
.PP
|
||||
|
||||
.SH "BUGS"
|
||||
Known bugs and limitations include:
|
||||
As of March 2014 (version 0.8.10), \fBfixparts\fR
|
||||
should be considered beta software. Known bugs and limitations include:
|
||||
|
||||
.TP
|
||||
.B *
|
||||
@@ -258,7 +259,7 @@ Contributors:
|
||||
|
||||
* Justin Maggard (justin.maggard@netgear.com)
|
||||
|
||||
* Dwight Schauer (dschauer@gmail.com)
|
||||
* Dwight Schauer (dschauer@ti.com)
|
||||
|
||||
* Florian Zumbiehl (florz@florz.de)
|
||||
|
||||
|
||||
25
gdisk.8
25
gdisk.8
@@ -1,6 +1,6 @@
|
||||
.\" Copyright 2011-2015 Roderick W. Smith (rodsmith@rodsbooks.com)
|
||||
.\" Copyright 2011-2013 Roderick W. Smith (rodsmith@rodsbooks.com)
|
||||
.\" May be distributed under the GNU General Public License
|
||||
.TH "GDISK" "8" "1.0.1" "Roderick W. Smith" "GPT fdisk Manual"
|
||||
.TH "GDISK" "8" "0.8.10" "Roderick W. Smith" "GPT fdisk Manual"
|
||||
.SH "NAME"
|
||||
gdisk \- Interactive GUID partition table (GPT) manipulator
|
||||
.SH "SYNOPSIS"
|
||||
@@ -212,8 +212,7 @@ sector.
|
||||
.B o
|
||||
Clear out all partition data. This includes GPT header data,
|
||||
all partition definitions, and the protective MBR. The sector alignment
|
||||
is reset to the default (1MB, or 2048 sectors on a disk with 512-byte
|
||||
sectors).
|
||||
is reset to the default (2048 sectors, or 1MB).
|
||||
|
||||
.TP
|
||||
.B p
|
||||
@@ -471,13 +470,12 @@ Change the sector alignment value. Disks with more logical sectors per
|
||||
physical sectors (such as modern Advanced Format drives), some RAID
|
||||
configurations, and many SSD devices, can suffer performance problems if
|
||||
partitions are not aligned properly for their internal data structures. On
|
||||
new disks, GPT fdisk attempts to align partitions on 1MiB boundaries
|
||||
(2048\-sectors on disks with 512-byte sectors) by default, which optimizes
|
||||
performance for all of these disk types. On pre\-partitioned disks, GPT
|
||||
fdisk attempts to identify the alignment value used on that disk, but will
|
||||
set 8-sector alignment on disks larger than 300 GB even if lesser alignment
|
||||
values are detected. In either case, it can be changed by using this
|
||||
option.
|
||||
new disks, GPT fdisk attempts to align partitions on 2048\-sector (1MiB)
|
||||
boundaries by default, which optimizes performance for all of these disk
|
||||
types. On pre\-partitioned disks, GPT fdisk attempts to identify the
|
||||
alignment value used on that disk, but will set 8-sector alignment on disks
|
||||
larger than 300 GB even if lesser alignment values are detected. In either
|
||||
case, it can be changed by using this option.
|
||||
|
||||
.TP
|
||||
.B m
|
||||
@@ -563,7 +561,8 @@ entering data. When only one option is possible, \fBgdisk\fR
|
||||
usually bypasses the prompt entirely.
|
||||
|
||||
.SH "BUGS"
|
||||
Known bugs and limitations include:
|
||||
As of March 2014 (version 0.8.10), \fBgdisk\fR
|
||||
should be considered beta software. Known bugs and limitations include:
|
||||
|
||||
.TP
|
||||
.B *
|
||||
@@ -661,7 +660,7 @@ Contributors:
|
||||
|
||||
* Justin Maggard (justin.maggard@netgear.com)
|
||||
|
||||
* Dwight Schauer (dschauer@gmail.com)
|
||||
* Dwight Schauer (dschauer@ti.com)
|
||||
|
||||
* Florian Zumbiehl (florz@florz.de)
|
||||
|
||||
|
||||
@@ -115,23 +115,9 @@ Y
|
||||
w
|
||||
Y
|
||||
EOF
|
||||
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ]
|
||||
then
|
||||
pretty_print "FAILED" "gdisk return $ret when creating partition table"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
sgdisk)
|
||||
$SGDISK_BIN $TEMP_DISK -${OPT_CLEAR}
|
||||
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ]
|
||||
then
|
||||
pretty_print "FAILED" "sgdisk return $ret when creating partition table"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -161,7 +147,7 @@ EOF
|
||||
;;
|
||||
|
||||
sgdisk)
|
||||
$SGDISK_BIN $TEMP_DISK -${OPT_NEW} 1 -${OPT_CHANGE_NAME} 1:"${TEST_PART_DEFAULT_NAME}" -${OPT_CHANGE_TYPE} 1:$TEST_PART_TYPE
|
||||
$SGDISK_BIN $TEMP_DISK -${OPT_NEW} 1 -${OPT_CHANGE_NAME} 1:"${TEST_PART_DEFAULT_NAME}"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -325,7 +311,6 @@ EOF
|
||||
pretty_print "SUCCESS" "GUID of disk has been sucessfully changed"
|
||||
else
|
||||
pretty_print "FAILED" "GUID of disk is the same as the previous one"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -368,7 +353,7 @@ EOF
|
||||
###################################
|
||||
|
||||
# create a file to simulate a real device
|
||||
dd if=/dev/zero of=$TEMP_DISK bs=1024 count=$TEMP_DISK_SIZE > /dev/null 2>&1
|
||||
dd if=/dev/zero of=$TEMP_DISK bs=1024 count=$TEMP_DISK_SIZE
|
||||
|
||||
if [ -s $TEMP_DISK ]
|
||||
then
|
||||
|
||||
7
gpt.cc
7
gpt.cc
@@ -753,12 +753,7 @@ int GPTData::LoadPartitions(const string & deviceFilename) {
|
||||
<< "'sysctl kern.geom.debugflags=16' at a shell prompt, and re-running this\n"
|
||||
<< "program.\n";
|
||||
#endif
|
||||
#if defined (__APPLE__)
|
||||
cout << "You may need to deactivate System Integrity Protection to use this program. See\n"
|
||||
<< "https://www.quora.com/How-do-I-turn-off-the-rootless-in-OS-X-El-Capitan-10-11\n"
|
||||
<< "for more information.\n";
|
||||
#endif
|
||||
cout << "\n";
|
||||
cout << "\n";
|
||||
} // if
|
||||
myDisk.Close(); // Close and re-open read-only in case of bugs
|
||||
} else allOK = 0; // if
|
||||
|
||||
23
gptcl.cc
23
gptcl.cc
@@ -23,7 +23,6 @@
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <errno.h>
|
||||
#include <popt.h>
|
||||
#include "gptcl.h"
|
||||
|
||||
GPTDataCL::GPTDataCL(void) {
|
||||
@@ -72,8 +71,7 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
|
||||
struct poptOption theOptions[] =
|
||||
{
|
||||
{"attributes", 'A', POPT_ARG_STRING, &attributeOperation, 'A', "operate on partition attributes",
|
||||
"list|[partnum:show|or|nand|xor|=|set|clear|toggle|get[:bitnum|hexbitmask]]"},
|
||||
{"attributes", 'A', POPT_ARG_STRING, &attributeOperation, 'A', "operate on partition attributes", "list|[partnum:show|or|nand|xor|=|set|clear|toggle|get[:bitnum|hexbitmask]]"},
|
||||
{"set-alignment", 'a', POPT_ARG_INT, &alignment, 'a', "set sector alignment", "value"},
|
||||
{"backup", 'b', POPT_ARG_STRING, &backupFile, 'b', "backup GPT to file", "file"},
|
||||
{"change-name", 'c', POPT_ARG_STRING, &partName, 'c', "change partition's name", "partnum:name"},
|
||||
@@ -95,7 +93,6 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
{"new", 'n', POPT_ARG_STRING, &newPartInfo, 'n', "create new partition", "partnum:start:end"},
|
||||
{"largest-new", 'N', POPT_ARG_INT, &largestPartNum, 'N', "create largest possible new partition", "partnum"},
|
||||
{"clear", 'o', POPT_ARG_NONE, NULL, 'o', "clear partition table", ""},
|
||||
{"print-mbr", 'O', POPT_ARG_NONE, NULL, 'O', "print MBR partition table", ""},
|
||||
{"print", 'p', POPT_ARG_NONE, NULL, 'p', "print partition table", ""},
|
||||
{"pretend", 'P', POPT_ARG_NONE, NULL, 'P', "make changes in memory, but don't write them", ""},
|
||||
{"transpose", 'r', POPT_ARG_STRING, &twoParts, 'r', "transpose two partitions", "partnum:partnum"},
|
||||
@@ -311,8 +308,8 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
startSector = FindFirstInLargest();
|
||||
Align(&startSector);
|
||||
endSector = FindLastInFree(startSector);
|
||||
if (largestPartNum <= 0)
|
||||
largestPartNum = FindFirstFreePart() + 1;
|
||||
if (largestPartNum < 0)
|
||||
largestPartNum = FindFirstFreePart();
|
||||
if (CreatePartition(largestPartNum - 1, startSector, endSector)) {
|
||||
saveData = 1;
|
||||
} else {
|
||||
@@ -326,9 +323,6 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
ClearGPTData();
|
||||
saveData = 1;
|
||||
break;
|
||||
case 'O':
|
||||
DisplayMBRData();
|
||||
break;
|
||||
case 'p':
|
||||
DisplayGPTData();
|
||||
break;
|
||||
@@ -409,7 +403,7 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
if (!pretend) {
|
||||
DestroyGPT();
|
||||
} // if
|
||||
saveNonGPT = 1;
|
||||
saveNonGPT = 0;
|
||||
saveData = 0;
|
||||
break;
|
||||
case 'Z':
|
||||
@@ -417,7 +411,7 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
DestroyGPT();
|
||||
DestroyMBR();
|
||||
} // if
|
||||
saveNonGPT = 1;
|
||||
saveNonGPT = 0;
|
||||
saveData = 0;
|
||||
break;
|
||||
default:
|
||||
@@ -451,7 +445,7 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
if (!pretend) {
|
||||
DestroyGPT();
|
||||
} // if
|
||||
saveNonGPT = 1;
|
||||
saveNonGPT = 0;
|
||||
saveData = 0;
|
||||
break;
|
||||
case 'Z':
|
||||
@@ -459,7 +453,7 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
DestroyGPT();
|
||||
DestroyMBR();
|
||||
} // if
|
||||
saveNonGPT = 1;
|
||||
saveNonGPT = 0;
|
||||
saveData = 0;
|
||||
break;
|
||||
} // switch
|
||||
@@ -467,8 +461,7 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
|
||||
retval = 2;
|
||||
} // if/else loaded OK
|
||||
if ((saveData) && (!neverSaveData) && (saveNonGPT) && (!pretend)) {
|
||||
if (!SaveGPTData(1))
|
||||
retval = 4;
|
||||
SaveGPTData(1);
|
||||
}
|
||||
if (saveData && (!saveNonGPT)) {
|
||||
cout << "Non-GPT disk; not saving changes. Use -g to override.\n";
|
||||
|
||||
@@ -332,7 +332,7 @@ void GPTDataCurses::ShowInfo(int partNum) {
|
||||
BytesToIeee(partitions[partNum].GetFirstLBA(), blockSize).c_str());
|
||||
printw("Last sector: %lld (at %s)\n", partitions[partNum].GetLastLBA(),
|
||||
BytesToIeee(partitions[partNum].GetLastLBA(), blockSize).c_str());
|
||||
size = partitions[partNum].GetLastLBA() - partitions[partNum].GetFirstLBA() + 1;
|
||||
size = partitions[partNum].GetLastLBA() - partitions[partNum].GetFirstLBA();
|
||||
printw("Partition size: %lld sectors (%s)\n", size, BytesToIeee(size, blockSize).c_str());
|
||||
printw("Attribute flags: %016x\n", partitions[partNum].GetAttributes().GetAttributes());
|
||||
#ifdef USE_UTF16
|
||||
|
||||
3
mbr.cc
3
mbr.cc
@@ -30,9 +30,6 @@ using namespace std;
|
||||
* *
|
||||
****************************************/
|
||||
|
||||
MBRData::~MBRData(void) {
|
||||
} // MBRData destructor
|
||||
|
||||
/* // Assignment operator -- copy entire set of MBR data.
|
||||
MBRData & MBRData::operator=(const MBRData & orig) {
|
||||
BasicMBRData::operator=(orig);
|
||||
|
||||
1
mbr.h
1
mbr.h
@@ -28,7 +28,6 @@ public:
|
||||
MBRData(void) {}
|
||||
MBRData(string deviceFilename) : BasicMBRData(deviceFilename) {}
|
||||
MBRData & operator=(const BasicMBRData & orig);
|
||||
~MBRData(void);
|
||||
|
||||
// Functions to create, delete, or change partitions
|
||||
// Pass EmptyMBR 1 to clear the boot loader code, 0 to leave it intact
|
||||
|
||||
17
parttypes.cc
17
parttypes.cc
@@ -2,7 +2,7 @@
|
||||
// Class to manage partition type codes -- a slight variant on MBR type
|
||||
// codes, GUID type codes, and associated names.
|
||||
|
||||
/* This program is copyright (c) 2009-2015 by Roderick W. Smith. It is distributed
|
||||
/* This program is copyright (c) 2009-2014 by Roderick W. Smith. It is distributed
|
||||
under the terms of the GNU GPL version 2, as detailed in the COPYING file. */
|
||||
|
||||
#define __STDC_LIMIT_MACROS
|
||||
@@ -99,16 +99,12 @@ void PartType::AddAllTypes(void) {
|
||||
AddType(0x3000, "7412F7D5-A156-4B13-81DC-867174929325", "ONIE boot");
|
||||
AddType(0x3001, "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149", "ONIE config");
|
||||
|
||||
// Plan 9; see http://man.cat-v.org/9front/8/prep
|
||||
AddType(0x3900, "C91818F9-8025-47AF-89D2-F030D7000C2C", "Plan 9");
|
||||
|
||||
// PowerPC reference platform boot partition
|
||||
AddType(0x4100, "9E1A2D38-C612-4316-AA26-8B49521E5A8B", "PowerPC PReP boot");
|
||||
|
||||
// Windows LDM ("dynamic disk") types
|
||||
AddType(0x4200, "AF9B60A0-1431-4F62-BC68-3311714A69AD", "Windows LDM data"); // Logical disk manager
|
||||
AddType(0x4201, "5808C8AA-7E8F-42E0-85D2-E1E90434CFB3", "Windows LDM metadata"); // Logical disk manager
|
||||
AddType(0x4202, "E75CAF8F-F680-4CEE-AFA3-B001E56EFC2D", "Windows Storage Spaces"); // A newer LDM-type setup
|
||||
|
||||
// An oddball IBM filesystem....
|
||||
AddType(0x7501, "37AFFC90-EF7D-4E96-91C3-2D7AE055B174", "IBM GPFS"); // General Parallel File System (GPFS)
|
||||
@@ -134,7 +130,6 @@ void PartType::AddAllTypes(void) {
|
||||
AddType(0x8304, "4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709", "Linux x86-64 root (/)"); // Linux / on x86-64 (auto-mounted by systemd)
|
||||
AddType(0x8305, "B921B045-1DF0-41C3-AF44-4C6F280D3FAE", "Linux ARM64 root (/)"); // Linux / on 64-bit ARM (auto-mounted by systemd)
|
||||
AddType(0x8306, "3B8F8425-20E0-4F3B-907F-1A25A76F98E8", "Linux /srv"); // Linux /srv (auto-mounted by systemd)
|
||||
AddType(0x8307, "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3", "Linux ARM32 root (/)"); // Linux / on 32-bit ARM (auto-mounted by systemd)
|
||||
|
||||
// Used by Intel Rapid Start technology
|
||||
AddType(0x8400, "D3BFE2DE-3DAF-11DF-BA40-E3A556D89593", "Intel Rapid Start");
|
||||
@@ -160,9 +155,6 @@ void PartType::AddAllTypes(void) {
|
||||
AddType(0xa584, "85D5E45D-237C-11E1-B4B3-E89A8F7FC3A7", "Midnight BSD ZFS");
|
||||
AddType(0xa585, "85D5E45C-237C-11E1-B4B3-E89A8F7FC3A7", "Midnight BSD Vinum");
|
||||
|
||||
// OpenBSD partition type....
|
||||
AddType(0xa600, "824CC7A0-36A8-11E3-890A-952519AD3F61", "OpenBSD disklabel");
|
||||
|
||||
// A MacOS partition type, separated from others by NetBSD partition types...
|
||||
AddType(0xa800, "55465300-0000-11AA-AA11-00306543ECAC", "Apple UFS"); // Mac OS X
|
||||
|
||||
@@ -177,7 +169,7 @@ void PartType::AddAllTypes(void) {
|
||||
AddType(0xa906, "49F48DAA-B10E-11DC-B99B-0019D1879648", "NetBSD RAID");
|
||||
|
||||
// Mac OS partition types (See also 0xa800, above)....
|
||||
AddType(0xab00, "426F6F74-0000-11AA-AA11-00306543ECAC", "Recovery HD");
|
||||
AddType(0xab00, "426F6F74-0000-11AA-AA11-00306543ECAC", "Apple boot");
|
||||
AddType(0xaf00, "48465300-0000-11AA-AA11-00306543ECAC", "Apple HFS/HFS+");
|
||||
AddType(0xaf01, "52414944-0000-11AA-AA11-00306543ECAC", "Apple RAID");
|
||||
AddType(0xaf02, "52414944-5F4F-11AA-AA11-00306543ECAC", "Apple RAID offline");
|
||||
@@ -185,9 +177,6 @@ void PartType::AddAllTypes(void) {
|
||||
AddType(0xaf04, "5265636F-7665-11AA-AA11-00306543ECAC", "AppleTV recovery");
|
||||
AddType(0xaf05, "53746F72-6167-11AA-AA11-00306543ECAC", "Apple Core Storage");
|
||||
|
||||
// Acronis Secure Zone
|
||||
AddType(0xbc00, "0311FC50-01CA-4725-AD77-9ADBB20ACE98", "Acronis Secure Zone");
|
||||
|
||||
// Solaris partition types (one of which is shared with MacOS)
|
||||
AddType(0xbe00, "6A82CB45-1DD2-11B2-99A6-080020736631", "Solaris boot");
|
||||
AddType(0xbf00, "6A85CF4D-1DD2-11B2-99A6-080020736631", "Solaris root");
|
||||
@@ -226,7 +215,7 @@ void PartType::AddAllTypes(void) {
|
||||
// Ceph type codes; see https://github.com/ceph/ceph/blob/9bcc42a3e6b08521694b5c0228b2c6ed7b3d312e/src/ceph-disk#L76-L81
|
||||
AddType(0xf800, "4FBD7E29-9D25-41B8-AFD0-062C0CEFF05D", "Ceph OSD"); // Ceph Object Storage Daemon
|
||||
AddType(0xf801, "4FBD7E29-9D25-41B8-AFD0-5EC00CEFF05D", "Ceph dm-crypt OSD"); // Ceph Object Storage Daemon (encrypted)
|
||||
AddType(0xf802, "45B0969E-9B03-4F30-B4C6-B4B80CEFF106", "Ceph journal");
|
||||
AddType(0xf802, "BFBFAFE7-A34F-448A-9A5B-6213EB736C22", "Ceph journal");
|
||||
AddType(0xf803, "45B0969E-9B03-4F30-B4C6-5EC00CEFF106", "Ceph dm-crypt journal");
|
||||
AddType(0xf804, "89C57F98-2FE5-4DC0-89C1-F3AD0CEFF2BE", "Ceph disk in creation");
|
||||
AddType(0xf805, "89C57F98-2FE5-4DC0-89C1-5EC00CEFF2BE", "Ceph dm-crypt disk in creation");
|
||||
|
||||
43
sgdisk.8
43
sgdisk.8
@@ -1,6 +1,6 @@
|
||||
.\" Copyright 2011-2015 Roderick W. Smith (rodsmith@rodsbooks.com)
|
||||
.\" Copyright 2011-2013 Roderick W. Smith (rodsmith@rodsbooks.com)
|
||||
.\" May be distributed under the GNU General Public License
|
||||
.TH "SGDISK" "8" "1.0.1" "Roderick W. Smith" "GPT fdisk Manual"
|
||||
.TH "SGDISK" "8" "0.8.10" "Roderick W. Smith" "GPT fdisk Manual"
|
||||
.SH "NAME"
|
||||
sgdisk \- Command\-line GUID partition table (GPT) manipulator for Linux and Unix
|
||||
.SH "SYNOPSIS"
|
||||
@@ -148,11 +148,11 @@ sibling. Options available in \fBsgdisk\fR are:
|
||||
.TP
|
||||
.B \-a, \-\-set\-alignment=value
|
||||
Set the sector alignment multiple. GPT fdisk aligns the start of partitions
|
||||
to sectors that are multiples of this value, which defaults to 1MiB (2048
|
||||
on disks with 512-byte sectors) on freshly formatted disks. This alignment
|
||||
value is necessary to obtain optimum performance with Western Digital
|
||||
Advanced Format and similar drives with larger physical than logical sector
|
||||
sizes, with some types of RAID arrays, and with SSD devices.
|
||||
to sectors that are multiples of this value, which defaults to 2048 on
|
||||
freshly formatted disks. This alignment value is necessary to obtain optimum
|
||||
performance with Western Digital Advanced Format and similar drives with larger
|
||||
physical than logical sector sizes, with some types of RAID arrays, and
|
||||
with SSD devices.
|
||||
|
||||
.TP
|
||||
.B \-A, \-\-attributes=list|[partnum:show|or|nand|xor|=|set|clear|toggle|get[:bitnum|hexbitmask]]
|
||||
@@ -335,7 +335,10 @@ to use the first available partition number. Subsequent uses of the
|
||||
.TP
|
||||
.B \-N, \-\-largest\-new=num
|
||||
Create a new partition that fills the largest available block of space on
|
||||
the disk. You can use the \fI\-a\fR (\fI\-\-set\-alignment\fR) option to
|
||||
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
|
||||
(normally 34) doesn't fall on a 2048-sector boundary (the default for
|
||||
alignment). You can use the \fI\-a\fR (\fI\-\-set\-alignment\fR) option to
|
||||
adjust the alignment, if desired. A num value of 0 causes the program to
|
||||
use the first available partition number.
|
||||
|
||||
@@ -349,20 +352,12 @@ and then partition it normally. This option will work even if the
|
||||
disk's original partition table is bad; however, most other options on the
|
||||
same command line will be ignored.
|
||||
|
||||
.TP
|
||||
.B \-O, \-\-print\-mbr
|
||||
Display basic \fIMBR\fR partition summary data. This includes partition
|
||||
numbers, starting and ending sector numbers, partition sizes, MBR partition
|
||||
types codes, and partition names. This option is useful mainly for
|
||||
diagnosing partition table problems, particularly on disks with hybrid
|
||||
MBRs.
|
||||
|
||||
.TP
|
||||
.B \-p, \-\-print
|
||||
Display basic GPT partition summary data. This includes partition numbers,
|
||||
starting and ending sector numbers, partition sizes, \fBsgdisk\fR's
|
||||
partition types codes, and partition names. For additional information, use
|
||||
the \fI\-i\fR (\fI\-\-info\fR) option.
|
||||
Display basic partition summary data. This includes partition
|
||||
numbers, starting and ending sector numbers, partition sizes,
|
||||
\fBsgdisk\fR's partition types codes, and partition names. For
|
||||
additional information, use the \fI\-i\fR (\fI\-\-info\fR) option.
|
||||
|
||||
.TP
|
||||
.B \-P, \-\-pretend
|
||||
@@ -480,8 +475,7 @@ An error occurred while reading the partition table
|
||||
|
||||
.TP
|
||||
.B 3
|
||||
Non\-GPT disk detected and no \fI\-g\fR option, but operation requires a
|
||||
write action
|
||||
Non\-GPT disk detected and no \fI\-g\fR option
|
||||
|
||||
.TP
|
||||
.B 4
|
||||
@@ -497,7 +491,8 @@ sgdisk, but may with gdisk)
|
||||
Disk replication operation (-R) failed
|
||||
|
||||
.SH "BUGS"
|
||||
Known bugs and limitations include:
|
||||
As of March 2014 (version 0.8.10), \fBsgdisk\fR
|
||||
should be considered beta software. Known bugs and limitations include:
|
||||
|
||||
.TP
|
||||
.B *
|
||||
@@ -583,7 +578,7 @@ Contributors:
|
||||
|
||||
* Justin Maggard (justin.maggard@netgear.com)
|
||||
|
||||
* Dwight Schauer (dschauer@gmail.com)
|
||||
* Dwight Schauer (dschauer@ti.com)
|
||||
|
||||
* Florian Zumbiehl (florz@florz.de)
|
||||
|
||||
|
||||
23
support.cc
23
support.cc
@@ -36,24 +36,6 @@ using namespace std;
|
||||
// Reads a string from stdin, returning it as a C++-style string.
|
||||
// Note that the returned string will NOT include the carriage return
|
||||
// entered by the user.
|
||||
#ifdef EFI
|
||||
extern int __sscanf( const char * str , const char * format , ... ) ;
|
||||
string ReadString(void) {
|
||||
string inString;
|
||||
char efiString[256];
|
||||
int stringLength;
|
||||
|
||||
if (fgets(efiString, 255, stdin) != NULL) {
|
||||
stringLength = strlen(efiString);
|
||||
if ((stringLength > 0) && (efiString[stringLength - 1] == '\n'))
|
||||
efiString[stringLength - 1] = '\0';
|
||||
inString = efiString;
|
||||
} else {
|
||||
inString = "";
|
||||
}
|
||||
return inString;
|
||||
} // ReadString()
|
||||
#else
|
||||
string ReadString(void) {
|
||||
string inString;
|
||||
|
||||
@@ -62,7 +44,6 @@ string ReadString(void) {
|
||||
exit(5);
|
||||
return inString;
|
||||
} // ReadString()
|
||||
#endif
|
||||
|
||||
// Get a numeric value from the user, between low and high (inclusive).
|
||||
// Keeps looping until the user enters a value within that range.
|
||||
@@ -153,7 +134,7 @@ uint64_t GetSectorNum(uint64_t low, uint64_t high, uint64_t def, uint64_t sSize,
|
||||
uint64_t IeeeToInt(string inValue, uint64_t sSize, uint64_t low, uint64_t high, uint64_t def) {
|
||||
uint64_t response = def, bytesPerUnit = 1, mult = 1, divide = 1;
|
||||
size_t foundAt = 0;
|
||||
char suffix = ' ', plusFlag = ' ';
|
||||
char suffix, plusFlag = ' ';
|
||||
string suffixes = "KMGTPE";
|
||||
int badInput = 0; // flag bad input; once this goes to 1, other values are irrelevant
|
||||
|
||||
@@ -246,7 +227,7 @@ string BytesToIeee(uint64_t size, uint32_t sectorSize) {
|
||||
uint64_t sizeInIeee;
|
||||
uint64_t previousIeee;
|
||||
float decimalIeee;
|
||||
uint64_t index = 0;
|
||||
uint index = 0;
|
||||
string units, prefixes = " KMGTPEZ";
|
||||
ostringstream theValue;
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#ifndef __GPTSUPPORT
|
||||
#define __GPTSUPPORT
|
||||
|
||||
#define GPTFDISK_VERSION "1.0.1"
|
||||
#define GPTFDISK_VERSION "0.8.10.2"
|
||||
|
||||
#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
|
||||
// Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64
|
||||
|
||||
Reference in New Issue
Block a user