0.7.2 release, includes new Linux type code & true GUID generation in

Windows
This commit is contained in:
srs5694
2011-06-26 22:40:06 -04:00
parent 6aae2a9b70
commit 00b6d7a460
23 changed files with 208 additions and 660 deletions

538
Makefile
View File

@@ -1,11 +1,11 @@
CC=gcc
CXX=g++
CFLAGS+=-D_FILE_OFFSET_BITS=64
CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16
#CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
LDFLAGS+=
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)
LIB_OBJS=$(LIB_NAMES:=.o)
MBR_LIB_OBJS=$(MBR_LIBS:=.o)
LIB_HEADERS=$(LIB_NAMES:=.h)
@@ -14,9 +14,11 @@ DEPEND= makedepend $(CXXFLAGS)
all: gdisk sgdisk fixparts
gdisk: $(LIB_OBJS) gdisk.o gpttext.o
# $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk
$(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk
sgdisk: $(LIB_OBJS) sgdisk.o
# $(CXX) $(LIB_OBJS) sgdisk.o $(LDFLAGS) -luuid -lpopt -o sgdisk
$(CXX) $(LIB_OBJS) sgdisk.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk
fixparts: $(MBR_LIB_OBJS) fixparts.o
@@ -36,535 +38,3 @@ $(OBJS):
$(CRITICAL_CXX_FLAGS)
# DO NOT DELETE
attributes.o: /usr/include/stdint.h /usr/include/features.h
attributes.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
attributes.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
attributes.o: /usr/include/bits/wchar.h /usr/include/stdio.h
attributes.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
attributes.o: /usr/include/libio.h /usr/include/_G_config.h
attributes.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
attributes.o: /usr/include/bits/sys_errlist.h attributes.h support.h
attributes.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
attributes.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
attributes.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
attributes.o: /usr/include/sys/types.h /usr/include/time.h
attributes.o: /usr/include/sys/select.h /usr/include/bits/select.h
attributes.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
attributes.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
attributes.o: /usr/include/alloca.h
basicmbr.o: /usr/include/stdio.h /usr/include/features.h
basicmbr.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
basicmbr.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
basicmbr.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
basicmbr.o: /usr/include/libio.h /usr/include/_G_config.h
basicmbr.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
basicmbr.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h
basicmbr.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
basicmbr.o: /usr/include/endian.h /usr/include/bits/endian.h
basicmbr.o: /usr/include/bits/byteswap.h /usr/include/sys/types.h
basicmbr.o: /usr/include/time.h /usr/include/sys/select.h
basicmbr.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
basicmbr.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
basicmbr.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
basicmbr.o: /usr/include/stdint.h /usr/include/bits/wchar.h
basicmbr.o: /usr/include/fcntl.h /usr/include/bits/fcntl.h
basicmbr.o: /usr/include/bits/stat.h /usr/include/string.h
basicmbr.o: /usr/include/xlocale.h /usr/include/sys/stat.h
basicmbr.o: /usr/include/errno.h /usr/include/bits/errno.h
basicmbr.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
basicmbr.o: /usr/include/asm-generic/errno.h
basicmbr.o: /usr/include/asm-generic/errno-base.h mbr.h gptpart.h support.h
basicmbr.o: parttypes.h /usr/include/unicode/ustream.h
basicmbr.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
basicmbr.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
basicmbr.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
basicmbr.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
basicmbr.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
basicmbr.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
basicmbr.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
basicmbr.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
basicmbr.o: /usr/include/unicode/std_string.h
basicmbr.o: /usr/include/unicode/stringpiece.h
basicmbr.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
basicmbr.o: /usr/include/sys/time.h attributes.h diskio.h
basicmbr.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
basicmbr.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
basicmbr.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
basicmbr.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
basicmbr.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h
bsd.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
bsd.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
bsd.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
bsd.o: /usr/include/bits/typesizes.h /usr/include/libio.h
bsd.o: /usr/include/_G_config.h /usr/include/wchar.h
bsd.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
bsd.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
bsd.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
bsd.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
bsd.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
bsd.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
bsd.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
bsd.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
bsd.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
bsd.o: /usr/include/bits/fcntl.h /usr/include/bits/stat.h
bsd.o: /usr/include/sys/stat.h /usr/include/errno.h /usr/include/bits/errno.h
bsd.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
bsd.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
bsd.o: support.h bsd.h gptpart.h parttypes.h /usr/include/unicode/ustream.h
bsd.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
bsd.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
bsd.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
bsd.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
bsd.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
bsd.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
bsd.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
bsd.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
bsd.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
bsd.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
bsd.o: /usr/include/sys/time.h attributes.h diskio.h /usr/include/sys/ioctl.h
bsd.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
bsd.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
bsd.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
bsd.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
crc32.o: /usr/include/stdio.h /usr/include/features.h
crc32.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
crc32.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
crc32.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
crc32.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
crc32.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
crc32.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
crc32.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
crc32.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
crc32.o: /usr/include/sys/types.h /usr/include/time.h
crc32.o: /usr/include/sys/select.h /usr/include/bits/select.h
crc32.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
crc32.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
crc32.o: /usr/include/alloca.h crc32.h /usr/include/stdint.h
crc32.o: /usr/include/bits/wchar.h
diskio.o: /usr/include/sys/ioctl.h /usr/include/features.h
diskio.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
diskio.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
diskio.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
diskio.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
diskio.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
diskio.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
diskio.o: /usr/include/stdint.h /usr/include/bits/wchar.h
diskio.o: /usr/include/errno.h /usr/include/bits/errno.h
diskio.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
diskio.o: /usr/include/asm-generic/errno.h
diskio.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
diskio.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
diskio.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
diskio.o: /usr/include/time.h /usr/include/endian.h
diskio.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
diskio.o: /usr/include/sys/select.h /usr/include/bits/select.h
diskio.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
diskio.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
diskio.o: /usr/include/bits/stat.h /usr/include/sys/stat.h support.h
diskio.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
diskio.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h diskio.h
diskio-unix.o: /usr/include/sys/ioctl.h /usr/include/features.h
diskio-unix.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
diskio-unix.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
diskio-unix.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
diskio-unix.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
diskio-unix.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
diskio-unix.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
diskio-unix.o: /usr/include/string.h /usr/include/xlocale.h
diskio-unix.o: /usr/include/stdint.h /usr/include/bits/wchar.h
diskio-unix.o: /usr/include/errno.h /usr/include/bits/errno.h
diskio-unix.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
diskio-unix.o: /usr/include/asm-generic/errno.h
diskio-unix.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
diskio-unix.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
diskio-unix.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
diskio-unix.o: /usr/include/time.h /usr/include/endian.h
diskio-unix.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
diskio-unix.o: /usr/include/sys/select.h /usr/include/bits/select.h
diskio-unix.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
diskio-unix.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
diskio-unix.o: /usr/include/bits/stat.h /usr/include/sys/stat.h diskio.h
diskio-unix.o: support.h /usr/include/stdlib.h /usr/include/bits/waitflags.h
diskio-unix.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
diskio-windows.o: /usr/include/stdio.h /usr/include/features.h
diskio-windows.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
diskio-windows.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
diskio-windows.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
diskio-windows.o: /usr/include/libio.h /usr/include/_G_config.h
diskio-windows.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
diskio-windows.o: /usr/include/bits/sys_errlist.h /usr/include/stdint.h
diskio-windows.o: /usr/include/bits/wchar.h /usr/include/errno.h
diskio-windows.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
diskio-windows.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
diskio-windows.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
diskio-windows.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
diskio-windows.o: /usr/include/time.h /usr/include/endian.h
diskio-windows.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
diskio-windows.o: /usr/include/sys/select.h /usr/include/bits/select.h
diskio-windows.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
diskio-windows.o: /usr/include/sys/sysmacros.h
diskio-windows.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/stat.h
diskio-windows.o: /usr/include/sys/stat.h support.h /usr/include/stdlib.h
diskio-windows.o: /usr/include/bits/waitflags.h
diskio-windows.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
diskio-windows.o: diskio.h /usr/include/sys/ioctl.h
diskio-windows.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
diskio-windows.o: /usr/include/asm-generic/ioctls.h
diskio-windows.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
diskio-windows.o: /usr/include/asm-generic/ioctl.h
diskio-windows.o: /usr/include/bits/ioctl-types.h
diskio-windows.o: /usr/include/sys/ttydefaults.h
fixparts.o: /usr/include/stdio.h /usr/include/features.h
fixparts.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
fixparts.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
fixparts.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
fixparts.o: /usr/include/libio.h /usr/include/_G_config.h
fixparts.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
fixparts.o: /usr/include/bits/sys_errlist.h /usr/include/string.h
fixparts.o: /usr/include/xlocale.h basicmbr.h /usr/include/stdint.h
fixparts.o: /usr/include/bits/wchar.h /usr/include/sys/types.h
fixparts.o: /usr/include/time.h /usr/include/endian.h
fixparts.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
fixparts.o: /usr/include/sys/select.h /usr/include/bits/select.h
fixparts.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
fixparts.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
fixparts.o: diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
fixparts.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
fixparts.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
fixparts.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
fixparts.o: /usr/include/sys/ttydefaults.h support.h /usr/include/stdlib.h
fixparts.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
fixparts.o: /usr/include/alloca.h mbrpart.h
gdisk.o: /usr/include/stdio.h /usr/include/features.h
gdisk.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
gdisk.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
gdisk.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
gdisk.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
gdisk.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
gdisk.o: /usr/include/string.h /usr/include/xlocale.h mbr.h
gdisk.o: /usr/include/stdint.h /usr/include/bits/wchar.h
gdisk.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/endian.h
gdisk.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
gdisk.o: /usr/include/sys/select.h /usr/include/bits/select.h
gdisk.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
gdisk.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
gdisk.o: gptpart.h support.h /usr/include/stdlib.h
gdisk.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
gdisk.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
gdisk.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
gdisk.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
gdisk.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
gdisk.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
gdisk.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
gdisk.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
gdisk.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
gdisk.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
gdisk.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
gdisk.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
gdisk.o: /usr/include/sys/time.h attributes.h diskio.h
gdisk.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
gdisk.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
gdisk.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
gdisk.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
gdisk.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h gpttext.h gpt.h
gdisk.o: bsd.h
gpt.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
gpt.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
gpt.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
gpt.o: /usr/include/bits/typesizes.h /usr/include/libio.h
gpt.o: /usr/include/_G_config.h /usr/include/wchar.h
gpt.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
gpt.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
gpt.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
gpt.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
gpt.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
gpt.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
gpt.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
gpt.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
gpt.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
gpt.o: /usr/include/bits/fcntl.h /usr/include/bits/stat.h
gpt.o: /usr/include/string.h /usr/include/xlocale.h /usr/include/math.h
gpt.o: /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h
gpt.o: /usr/include/bits/huge_vall.h /usr/include/bits/inf.h
gpt.o: /usr/include/bits/nan.h /usr/include/bits/mathdef.h
gpt.o: /usr/include/bits/mathcalls.h /usr/include/sys/stat.h
gpt.o: /usr/include/errno.h /usr/include/bits/errno.h
gpt.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
gpt.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
gpt.o: crc32.h gpt.h gptpart.h support.h parttypes.h
gpt.o: /usr/include/unicode/ustream.h /usr/include/unicode/unistr.h
gpt.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
gpt.o: /usr/include/unicode/ptypes.h /usr/include/unicode/platform.h
gpt.o: /usr/include/inttypes.h /usr/include/unicode/urename.h
gpt.o: /usr/include/unicode/uvernum.h /usr/include/unicode/utf.h
gpt.o: /usr/include/unicode/utf8.h /usr/include/unicode/utf16.h
gpt.o: /usr/include/unicode/utf_old.h /usr/include/unicode/uversion.h
gpt.o: /usr/include/unicode/uconfig.h /usr/include/unicode/rep.h
gpt.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
gpt.o: /usr/include/unicode/stringpiece.h /usr/include/unicode/bytestream.h
gpt.o: guid.h /usr/include/uuid/uuid.h /usr/include/sys/time.h attributes.h
gpt.o: mbr.h diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
gpt.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
gpt.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
gpt.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
gpt.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h bsd.h
gptpart.o: /usr/include/unicode/ustdio.h /usr/include/stdio.h
gptpart.o: /usr/include/features.h /usr/include/sys/cdefs.h
gptpart.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
gptpart.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
gptpart.o: /usr/include/bits/typesizes.h /usr/include/libio.h
gptpart.o: /usr/include/_G_config.h /usr/include/wchar.h
gptpart.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
gptpart.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
gptpart.o: /usr/include/unicode/ptypes.h /usr/include/sys/types.h
gptpart.o: /usr/include/time.h /usr/include/endian.h
gptpart.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
gptpart.o: /usr/include/sys/select.h /usr/include/bits/select.h
gptpart.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
gptpart.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
gptpart.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
gptpart.o: /usr/include/stdint.h /usr/include/bits/wchar.h
gptpart.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
gptpart.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
gptpart.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
gptpart.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
gptpart.o: /usr/include/unicode/ucnv.h /usr/include/unicode/ucnv_err.h
gptpart.o: /usr/include/unicode/uenum.h /usr/include/unicode/localpointer.h
gptpart.o: /usr/include/unicode/utrans.h /usr/include/unicode/urep.h
gptpart.o: /usr/include/unicode/parseerr.h /usr/include/string.h
gptpart.o: /usr/include/xlocale.h gptpart.h support.h /usr/include/stdlib.h
gptpart.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
gptpart.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
gptpart.o: /usr/include/unicode/unistr.h /usr/include/unicode/rep.h
gptpart.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
gptpart.o: /usr/include/unicode/stringpiece.h
gptpart.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
gptpart.o: /usr/include/sys/time.h attributes.h
gpttext.o: /usr/include/string.h /usr/include/features.h
gpttext.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
gpttext.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
gpttext.o: /usr/include/xlocale.h /usr/include/errno.h
gpttext.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
gpttext.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
gpttext.o: /usr/include/asm-generic/errno-base.h /usr/include/stdint.h
gpttext.o: /usr/include/bits/wchar.h /usr/include/limits.h
gpttext.o: /usr/include/bits/posix1_lim.h /usr/include/bits/local_lim.h
gpttext.o: /usr/include/linux/limits.h /usr/include/bits/posix2_lim.h
gpttext.o: attributes.h gpttext.h gpt.h /usr/include/sys/types.h
gpttext.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
gpttext.o: /usr/include/time.h /usr/include/endian.h
gpttext.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
gpttext.o: /usr/include/sys/select.h /usr/include/bits/select.h
gpttext.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
gpttext.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
gpttext.o: gptpart.h support.h /usr/include/stdlib.h
gpttext.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
gpttext.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
gpttext.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
gpttext.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
gpttext.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
gpttext.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
gpttext.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
gpttext.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
gpttext.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
gpttext.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
gpttext.o: /usr/include/unicode/std_string.h
gpttext.o: /usr/include/unicode/stringpiece.h
gpttext.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
gpttext.o: /usr/include/sys/time.h mbr.h diskio.h /usr/include/sys/ioctl.h
gpttext.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
gpttext.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
gpttext.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
gpttext.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
gpttext.o: basicmbr.h mbrpart.h bsd.h
guid.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
guid.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
guid.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
guid.o: /usr/include/bits/typesizes.h /usr/include/libio.h
guid.o: /usr/include/_G_config.h /usr/include/wchar.h
guid.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
guid.o: /usr/include/time.h /usr/include/string.h /usr/include/xlocale.h
guid.o: guid.h /usr/include/stdint.h /usr/include/bits/wchar.h
guid.o: /usr/include/uuid/uuid.h /usr/include/sys/types.h
guid.o: /usr/include/endian.h /usr/include/bits/endian.h
guid.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
guid.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
guid.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
guid.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/time.h support.h
guid.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
guid.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
mbr.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
mbr.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
mbr.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
mbr.o: /usr/include/bits/typesizes.h /usr/include/libio.h
mbr.o: /usr/include/_G_config.h /usr/include/wchar.h
mbr.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
mbr.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
mbr.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
mbr.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
mbr.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
mbr.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mbr.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
mbr.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
mbr.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
mbr.o: /usr/include/bits/fcntl.h /usr/include/bits/stat.h
mbr.o: /usr/include/string.h /usr/include/xlocale.h /usr/include/sys/stat.h
mbr.o: /usr/include/errno.h /usr/include/bits/errno.h
mbr.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
mbr.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
mbr.o: mbr.h gptpart.h support.h parttypes.h /usr/include/unicode/ustream.h
mbr.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
mbr.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
mbr.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
mbr.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
mbr.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
mbr.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
mbr.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
mbr.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
mbr.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
mbr.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
mbr.o: /usr/include/sys/time.h attributes.h diskio.h /usr/include/sys/ioctl.h
mbr.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
mbr.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
mbr.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
mbr.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
mbr.o: basicmbr.h mbrpart.h
mbrpart.o: /usr/include/stdint.h /usr/include/features.h
mbrpart.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
mbrpart.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
mbrpart.o: /usr/include/bits/wchar.h support.h /usr/include/stdlib.h
mbrpart.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
mbrpart.o: /usr/include/endian.h /usr/include/bits/endian.h
mbrpart.o: /usr/include/bits/byteswap.h /usr/include/sys/types.h
mbrpart.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
mbrpart.o: /usr/include/time.h /usr/include/sys/select.h
mbrpart.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
mbrpart.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
mbrpart.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h mbrpart.h
parttypes.o: /usr/include/string.h /usr/include/features.h
parttypes.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
parttypes.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
parttypes.o: /usr/include/xlocale.h /usr/include/stdint.h
parttypes.o: /usr/include/bits/wchar.h /usr/include/stdio.h
parttypes.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
parttypes.o: /usr/include/libio.h /usr/include/_G_config.h
parttypes.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
parttypes.o: /usr/include/bits/sys_errlist.h parttypes.h
parttypes.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
parttypes.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
parttypes.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
parttypes.o: /usr/include/sys/types.h /usr/include/time.h
parttypes.o: /usr/include/sys/select.h /usr/include/bits/select.h
parttypes.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
parttypes.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
parttypes.o: /usr/include/alloca.h /usr/include/unicode/ustream.h
parttypes.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
parttypes.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
parttypes.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
parttypes.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
parttypes.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
parttypes.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
parttypes.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
parttypes.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
parttypes.o: /usr/include/unicode/std_string.h
parttypes.o: /usr/include/unicode/stringpiece.h
parttypes.o: /usr/include/unicode/bytestream.h support.h guid.h
parttypes.o: /usr/include/uuid/uuid.h /usr/include/sys/time.h
sgdisk.o: /usr/include/stdio.h /usr/include/features.h
sgdisk.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
sgdisk.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
sgdisk.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
sgdisk.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
sgdisk.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
sgdisk.o: /usr/include/popt.h /usr/include/errno.h /usr/include/bits/errno.h
sgdisk.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
sgdisk.o: /usr/include/asm-generic/errno.h
sgdisk.o: /usr/include/asm-generic/errno-base.h /usr/include/stdint.h
sgdisk.o: /usr/include/bits/wchar.h /usr/include/string.h
sgdisk.o: /usr/include/xlocale.h mbr.h /usr/include/sys/types.h
sgdisk.o: /usr/include/time.h /usr/include/endian.h
sgdisk.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
sgdisk.o: /usr/include/sys/select.h /usr/include/bits/select.h
sgdisk.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
sgdisk.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
sgdisk.o: gptpart.h support.h /usr/include/stdlib.h
sgdisk.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
sgdisk.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
sgdisk.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
sgdisk.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
sgdisk.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
sgdisk.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
sgdisk.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
sgdisk.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
sgdisk.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
sgdisk.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
sgdisk.o: /usr/include/unicode/std_string.h
sgdisk.o: /usr/include/unicode/stringpiece.h
sgdisk.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
sgdisk.o: /usr/include/sys/time.h attributes.h diskio.h
sgdisk.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
sgdisk.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
sgdisk.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
sgdisk.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
sgdisk.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h gpt.h bsd.h
support.o: /usr/include/stdio.h /usr/include/features.h
support.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
support.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
support.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
support.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
support.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
support.o: /usr/include/stdint.h /usr/include/bits/wchar.h
support.o: /usr/include/errno.h /usr/include/bits/errno.h
support.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
support.o: /usr/include/asm-generic/errno.h
support.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
support.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
support.o: /usr/include/time.h /usr/include/endian.h
support.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
support.o: /usr/include/sys/select.h /usr/include/bits/select.h
support.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
support.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
support.o: /usr/include/bits/stat.h /usr/include/string.h
support.o: /usr/include/xlocale.h /usr/include/sys/stat.h support.h
support.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
support.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
test.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
test.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
test.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
test.o: /usr/include/bits/typesizes.h /usr/include/libio.h
test.o: /usr/include/_G_config.h /usr/include/wchar.h
test.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
test.o: support.h /usr/include/stdint.h /usr/include/bits/wchar.h
test.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
test.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
test.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
test.o: /usr/include/sys/types.h /usr/include/time.h
test.o: /usr/include/sys/select.h /usr/include/bits/select.h
test.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
test.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
test.o: /usr/include/alloca.h
testguid.o: guid.h /usr/include/stdint.h /usr/include/features.h
testguid.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
testguid.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
testguid.o: /usr/include/bits/wchar.h /usr/include/uuid/uuid.h
testguid.o: /usr/include/sys/types.h /usr/include/bits/types.h
testguid.o: /usr/include/bits/typesizes.h /usr/include/time.h
testguid.o: /usr/include/endian.h /usr/include/bits/endian.h
testguid.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
testguid.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
testguid.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
testguid.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/time.h
testguid.o: parttypes.h /usr/include/stdlib.h /usr/include/bits/waitflags.h
testguid.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
testguid.o: /usr/include/unicode/ustream.h /usr/include/unicode/unistr.h
testguid.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
testguid.o: /usr/include/unicode/ptypes.h /usr/include/unicode/platform.h
testguid.o: /usr/include/inttypes.h /usr/include/unicode/urename.h
testguid.o: /usr/include/unicode/uvernum.h /usr/include/unicode/utf.h
testguid.o: /usr/include/unicode/utf8.h /usr/include/unicode/utf16.h
testguid.o: /usr/include/unicode/utf_old.h /usr/include/unicode/uversion.h
testguid.o: /usr/include/unicode/uconfig.h /usr/include/unicode/rep.h
testguid.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
testguid.o: /usr/include/unicode/stringpiece.h
testguid.o: /usr/include/unicode/bytestream.h support.h

View File

@@ -1,7 +1,8 @@
CC=gcc
CXX=g++
CFLAGS+=-D_FILE_OFFSET_BITS=64
CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -I/usr/local/include
CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 -I/usr/local/include
#CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -I /usr/local/include
LDFLAGS+=
LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
@@ -14,9 +15,11 @@ all: gdisk sgdisk fixparts
gdisk: $(LIB_OBJS) gdisk.o gpttext.o
$(CXX) $(LIB_OBJS) gdisk.o gpttext.o -L/usr/local/lib $(LDFLAGS) -licuio -luuid -o gdisk
# $(CXX) $(LIB_OBJS) gdisk.o gpttext.o -L/usr/local/lib $(LDFLAGS) -luuid -o gdisk
sgdisk: $(LIB_OBJS) sgdisk.o
$(CXX) $(LIB_OBJS) sgdisk.o -L/usr/local/lib $(LDFLAGS) -luuid -licuio -lpopt -o sgdisk
# $(CXX) $(LIB_OBJS) sgdisk.o -L/usr/local/lib $(LDFLAGS) -luuid -lpopt -o sgdisk
fixparts: $(MBR_LIB_OBJS) fixparts.o
$(CXX) $(MBR_LIB_OBJS) fixparts.o -L/usr/local/lib $(LDFLAGS) -o fixparts

View File

@@ -1,7 +1,8 @@
CC=gcc
CXX=g++
CFLAGS=-O2 -D_FILE_OFFSET_BITS=64 -g
CXXFLAGS=-O2 -Wall -D_FILE_OFFSET_BITS=64 -I /usr/local/include -I/opt/local/include -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 /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)
@@ -12,11 +13,13 @@ DEPEND= makedepend $(CFLAGS)
all: gdisk sgdisk fixparts
gdisk: $(LIB_OBJS) gpttext.o gdisk.o
$(CXX) $(LIB_OBJS) -L/usr/local/lib -licuuc -licuio -licudata gpttext.o gdisk.o -o gdisk
gdisk: $(LIB_OBJS) gpttext.o gdisk.o
# $(CXX) $(LIB_OBJS) gpttext.o gdisk.o -o gdisk
$(CXX) $(LIB_OBJS) -L/usr/lib -licucore gpttext.o gdisk.o -o gdisk
sgdisk: $(LIB_OBJS) sgdisk.o
$(CXX) $(LIB_OBJS) sgdisk.o -L/opt/local/lib -L/usr/local/lib -licudata -licuio -licuuc -lpopt -o sgdisk
# $(CXX) $(LIB_OBJS) sgdisk.o -L/sw/lib -lpopt -o sgdisk
$(CXX) $(LIB_OBJS) sgdisk.o -L/sw/lib -licucore -lpopt -o sgdisk
fixparts: $(MBR_LIB_OBJS) fixparts.o
$(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts

View File

@@ -15,7 +15,7 @@ DEPEND= makedepend $(CFLAGS)
all: gdisk fixparts
gdisk: $(LIB_OBJS) gdisk.o gpttext.o
$(CXX) $(LIB_OBJS) gdisk.o gpttext.o -luuid -static-libgcc -o gdisk.exe
$(CXX) $(LIB_OBJS) gdisk.o gpttext.o -lrpcrt4 -static-libgcc -o gdisk.exe
sgdisk: $(LIB_OBJS) sgdisk.o
$(CXX) $(LIB_OBJS) sgdisk.o -lpopt -static-libgcc -o sgdisk.exe

27
NEWS
View File

@@ -1,6 +1,31 @@
0.7.2 (?/??/2011):
0.7.2 (6/26/2011):
------------------
- The Windows version now (finally!) generates proper GUIDs rather than a
purely random number. This fixes a bug that caused Windows 7 to crash
when converting a disk from MBR format (but, oddly, not when creating a
fresh partition table or doing various other things).
- Added a warning when an MBR partition is discarded because it's too
big for the disk.
- Changed warning to Windows users about the dangers of converting to GPT
so that it appears only on disks that aren't already in GPT form.
- Fixed bug that caused bogus "3" values to pad the ends of partition names
on some disks (particularly those created by Microsoft's disk
partitioning tools).
- Made compilation without Unicode support possible (see README file)
- Made default filesystem type code OS-dependent (based on the compilation
platform).
- Added new Linux-only filesystem partition type GUID code,
0FC63DAF-8483-4772-8E79-3D69D8477DE4 (8300 entry code). Also changed name
of the EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (0700 entry code) to
"Microsoft basic data").
- Fixed a bug that caused an incorrect code to be set for active/bootable
partitions when generating a hybrid MBR.

39
README
View File

@@ -160,19 +160,26 @@ used.) In addition, note these requirements:
called uuid-dev or something similar to get the headers. On FreeBSD, the
e2fsprogs-libuuid port must be installed.
* The ICU library (http://site.icu-project.org) is required on all
platforms except Windows. This library is normally installed in Linux,
but you may need to install the development headers (libicu-dev or
something similar).
* The ICU library (http://site.icu-project.org), which provides support for
Unicode partition names, is recommended on all
platforms except Windows. This library is normally installed in Linux and
OS X, but you may need to install the development headers (libicu-dev or
something similar in Linux; or the libicu36-dev Fink package in OS X). To
compile without ICU support, you must modify the Makefile: Remove the
"-D USE_UTF16" part from the CXXFLAGS line and remove references to
-licuio, -licuuc, -licudata, and -licucore (details vary between
platforms) from the compilation options. Suitable lines are present, but
commented out, in the Makefile, Makefile.mac, and Makefile.bsd files.
* The sgdisk program also requires the popt library and its development
files (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 http://popt.darwinports.com; however,
you'll first need to install DarwinPorts (instructions exist on the
preceding page). Alternatively, you can compile gdisk alone, without
sgdisk; gdisk doesn't require popt.
version of popt for Mac OS from Drawin 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 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
@@ -192,17 +199,17 @@ Caveats
THIS SOFTWARE IS BETA SOFTWARE! IF IT WIPES OUT YOUR HARD DISK OR EATS YOUR
CAT, DON'T BLAME ME! To date, I've tested the software on several USB flash
drives, a handful of PATA and SATA hard disks, and several virtual disks in
the QEMU and VirtualBox environments. Many others have now used the
software on their computers, as well. I believe all data-corruption bugs to
be squashed, but I know full well that the odds of my missing something are
high. This is particularly true for large drives; my only direct testing
with such disks is with virtual QEMU disks. I've received user reports of
success with RAID arrays over 2TiB in size, though.
drives, physical hard disks, and virtual disks in the QEMU and VirtualBox
environments. Many others have now used the software on their computers, as
well. I believe all data-corruption bugs to be squashed, but I know full well
that the odds of my missing something are high. This is particularly true for
large (over-2TiB) drives; my only direct testing with such disks is with
virtual QEMU and VirtualBox disks. I've received user reports of success with
RAID arrays over 2TiB in size, though.
My main development platform is a system running the 64-bit version of
Gentoo Linux (previously Ubuntu 8.04). I've also tested on several other
32- and 64-bit Linux distributions Intel-based Mac OS X 10.5 and 10.6,
32- and 64-bit Linux distributions, Intel-based Mac OS X 10.5 and 10.6,
64-bit FreeBSD 7.1, and Windows 7.
Redistribution

View File

@@ -130,9 +130,9 @@ int BasicMBRData::ReadMBRData(const string & deviceFilename) {
// Read data from MBR. If checkBlockSize == 1 (the default), the block
// size is checked; otherwise it's set to the default (512 bytes).
// Note that any extended partition(s) present will be explicitly stored
// in the partitions[] array, along with their contained partitions; the
// extended container partition(s) should be ignored by other functions.
// Note that any extended partition(s) present will be omitted from
// in the partitions[] array; these partitions must be re-created when
// the partition table is saved in MBR format.
int BasicMBRData::ReadMBRData(DiskIO * theDisk, int checkBlockSize) {
int allOK = 1, i, logicalNum = 0;
int err = 1;
@@ -1100,7 +1100,8 @@ void BasicMBRData::SortMBR(int start) {
// Delete any partitions that are too big to fit on the disk
// or that are too big for MBR (32-bit limits).
// This really deletes the partitions by setting values to 0.
// This deletes the partitions by setting values to 0, not just
// by setting them as being omitted.
// Returns the number of partitions deleted in this way.
int BasicMBRData::DeleteOversizedParts() {
int num = 0, i;
@@ -1108,6 +1109,8 @@ int BasicMBRData::DeleteOversizedParts() {
for (i = 0; i < MAX_MBR_PARTS; i++) {
if ((partitions[i].GetStartLBA() > diskSize) || (partitions[i].GetLastLBA() > diskSize) ||
(partitions[i].GetStartLBA() > UINT32_MAX) || (partitions[i].GetLengthLBA() > UINT32_MAX)) {
cerr << "\aWarning: Deleting oversized partition #" << i + 1 << "! Start = "
<< partitions[i].GetStartLBA() << ", length = " << partitions[i].GetLengthLBA() << "\n";
partitions[i].Empty();
num++;
} // if

2
bsd.cc
View File

@@ -323,7 +323,7 @@ GPTPart BSDData::AsGPT(int i) {
case 27: // FreeBSD ZFS
guid.SetType(0xa504); break;
default:
guid.SetType(0x0700); break;
guid.SetType(0xa503); break;
} // switch
// Set the partition name to the name of the type code....
guid.SetName(guid.GetTypeName());

View File

@@ -1,11 +1,11 @@
Summary: GPT partitioning and MBR repair software
Name: gptfdisk
Version: 0.7.1
Version: 0.7.2
Release: 1%{?dist}
License: GPLv2
URL: http://www.rodsbooks.com/gdisk
Group: Applications/System
Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.7.1.tgz
Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.7.2.tar.gz
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
%description
@@ -77,5 +77,5 @@ provides a few additional partition manipulation features.
%changelog
* Mon Mar 21 2011 R Smith <rodsmith@rodsbooks.com> - 0.7.1
- Created spec file for 0.7.1 release
* Sun Jun 26 2011 R Smith <rodsmith@rodsbooks.com> - 0.7.2
- Created spec file for 0.7.2 release

View File

@@ -230,7 +230,8 @@ void DiskIO::DiskSync(void) {
platformFound++;
#endif
#ifdef __linux__
sleep(2);
sleep(1); // Theoretically unnecessary, but ioctl() fails sometimes if omitted....
fsync(fd);
i = ioctl(fd, BLKRRPART);
if (i)
cout << "Warning: The kernel is still using the old partition table.\n"

View File

@@ -1,6 +1,6 @@
.\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License
.TH "FIXPARTS" "8" "0.7.1" "Roderick W. Smith" "FixParts Manual"
.TH "FIXPARTS" "8" "0.7.2" "Roderick W. Smith" "FixParts Manual"
.SH "NAME"
fixparts \- MBR partition table repair utility
.SH "SYNOPSIS"
@@ -202,7 +202,7 @@ see a summary of available options.
.PP
.SH "BUGS"
As of March 2011 (version 0.7.1), \fBfixparts\fR
As of June 2011 (version 0.7.2), \fBfixparts\fR
should be considered beta software. Known bugs and limitations include:
.TP

30
gdisk.8
View File

@@ -1,6 +1,6 @@
.\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License
.TH "GDISK" "8" "0.7.1" "Roderick W. Smith" "GPT fdisk Manual"
.TH "GDISK" "8" "0.7.2" "Roderick W. Smith" "GPT fdisk Manual"
.SH "NAME"
gdisk \- Interactive GUID partition table (GPT) manipulator
.SH "SYNOPSIS"
@@ -177,19 +177,19 @@ displays this information for a single partition.
.TP
.B l
Display a summary of partition types. GPT uses a GUID to identify
partition types for particular OSes and purposes. For ease of data entry,
\fBgdisk\fR compresses these into two\-byte (four\-digit hexadecimal)
values that are related to their equivalent MBR codes. Specifically, the
MBR code is multiplied by hexadecimal 0x0100. For instance, the code for
Linux swap space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR.
A one\-to\-one correspondence is impossible, though. Most notably, many DOS,
Windows, and Linux data partition codes correspond to a single GPT code
(entered as 0x0700 in \fBgdisk\fR). Some OSes use a single MBR code but
employ many more codes in GPT. For these, \fBgdisk\fR
adds code numbers sequentially, such as 0xa500 for a FreeBSD disklabel,
0xa501 for FreeBSD boot, 0xa502 for FreeBSD swap, and so on. Note that
these two\-byte codes are unique to \fBgdisk\fR.
Display a summary of partition types. GPT uses a GUID to identify partition
types for particular OSes and purposes. For ease of data entry, \fBgdisk\fR
compresses these into two\-byte (four\-digit hexadecimal) values that are
related to their equivalent MBR codes. Specifically, the MBR code is
multiplied by hexadecimal 0x0100. For instance, the code for Linux swap
space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR. A one\-to\-one
correspondence is impossible, though. Most notably, the codes for all
varieties of FAT and NTFS partition correspond to a single GPT code
(entered as 0x0700 in \fBsgdisk\fR). Some OSes use a single MBR code but
employ many more codes in GPT. For these, \fBgdisk\fR adds code numbers
sequentially, such as 0xa500 for a FreeBSD disklabel, 0xa501 for FreeBSD
boot, 0xa502 for FreeBSD swap, and so on. Note that these two\-byte codes
are unique to \fBgdisk\fR.
.TP
.B n
@@ -561,7 +561,7 @@ entering data. When only one option is possible, \fBgdisk\fR
usually bypasses the prompt entirely.
.SH "BUGS"
As of March 2011 (version 0.7.1), \fBgdisk\fR
As of June 2011 (version 0.7.2), \fBgdisk\fR
should be considered beta software. Known bugs and limitations include:
.TP

View File

@@ -38,19 +38,22 @@ int main(int argc, char* argv[]) {
switch (argc) {
case 1:
WinWarning();
cout << "Type device filename, or press <Enter> to exit: ";
device = ReadString();
if (device.length() == 0)
exit(0);
else if (theGPT.LoadPartitions(device)) {
if (theGPT.GetState() != use_gpt)
WinWarning();
MainMenu(device, &theGPT);
} // if/elseif
break;
case 2: // basic usage
WinWarning();
if (theGPT.LoadPartitions(argv[1]))
if (theGPT.LoadPartitions(argv[1])) {
if (theGPT.GetState() != use_gpt)
WinWarning();
MainMenu(argv[1], &theGPT);
} // if
break;
case 3: // usage with "-l" option
if (strcmp(argv[1], "-l") == 0) {
@@ -433,8 +436,8 @@ void WinWarning(void) {
cout << "\a************************************************************************\n"
<< "Most versions of Windows cannot boot from a GPT disk, and most varieties\n"
<< "prior to Vista cannot read GPT disks. Therefore, you should exit now\n"
<< "unless you understand the implications of converting MBR to GPT, editing\n"
<< "an existing GPT disk, or creating a new GPT disk layout!\n"
<< "unless you understand the implications of converting MBR to GPT or creating\n"
<< "a new GPT disk layout!\n"
<< "************************************************************************\n\n";
cout << "Are you SURE you want to continue? ";
if (GetYN() != 'Y')

5
gpt.cc
View File

@@ -1669,7 +1669,7 @@ uint32_t GPTData::CreatePartition(uint32_t partNum, uint64_t startSector, uint64
if (FindLastInFree(startSector) >= endSector) {
partitions[partNum].SetFirstLBA(startSector);
partitions[partNum].SetLastLBA(endSector);
partitions[partNum].SetType(0x0700);
partitions[partNum].SetType(DEFAULT_TYPE);
partitions[partNum].RandomizeUniqueGUID();
} else retval = 0; // if free space until endSector
} else retval = 0; // if startSector is free
@@ -1858,10 +1858,9 @@ void GPTData::RecomputeCHS(void) {
// was unchanged.
int GPTData::Align(uint64_t* sector) {
int retval = 0, sectorOK = 0;
uint64_t earlier, later, testSector, original;
uint64_t earlier, later, testSector;
if ((*sector % sectorAlignment) != 0) {
original = *sector;
earlier = (*sector / sectorAlignment) * sectorAlignment;
later = earlier + (uint64_t) sectorAlignment;

5
gpt.h
View File

@@ -155,9 +155,10 @@ public:
void MakeProtectiveMBR(void) {protectiveMBR.MakeProtectiveMBR();}
void RecomputeCHS(void);
int Align(uint64_t* sector);
// Return data about the GPT structures....
void SetProtectiveMBR(BasicMBRData & newMBR) {protectiveMBR = newMBR;}
// Return data about the GPT structures....
WhichToUse GetState(void) {return whichWasUsed;}
int GetPartRange(uint32_t* low, uint32_t* high);
int FindFirstFreePart(void);
uint32_t GetNumParts(void) {return mainHeader.numParts;}

View File

@@ -15,7 +15,7 @@
#define __STDC_LIMIT_MACROS
#define __STDC_CONSTANT_MACROS
#ifndef _WIN32
#ifdef USE_UTF16
#include <unicode/ustdio.h>
#else
#define UnicodeString string
@@ -68,7 +68,7 @@ uint64_t GPTPart::GetLengthLBA(void) const {
return length;
} // GPTPart::GetLengthLBA()
#ifndef _WIN32
#ifdef USE_UTF16
// Return partition's name field, converted to a Unicode string
UnicodeString GPTPart::GetDescription(void) {
return (UChar*) name;
@@ -77,13 +77,13 @@ UnicodeString GPTPart::GetDescription(void) {
// Return partition's name field, converted to a C++ ASCII string
string GPTPart::GetDescription(void) {
string theName;
int i;
int i = 0;
theName = "";
for (i = 0; i < NAME_SIZE; i += 2) {
if (name[i] != '\0')
theName += name[i];
} // for
while ((i < NAME_SIZE) && (name[i] != '\0')) {
theName += name[i];
i+=2;
} // while
return theName;
} // GPTPart::GetDescription() (Windows version)
#endif
@@ -103,7 +103,7 @@ void GPTPart::SetType(PartType t) {
partitionType = t;
} // GPTPart::SetType()
#ifndef _WIN32
#ifdef USE_UTF16
// Set the name for a partition to theName, using a C++-style string as
// input.
void GPTPart::SetName(const string & theName) {
@@ -120,7 +120,9 @@ void GPTPart::SetName(const UnicodeString & theName) {
theName.extractBetween(0, NAME_SIZE / 2 - 1, (UChar*) name);
} // if/else
} // GPTPart::SetName()
#else
// Set the name for a partition to theName. Note that theName is a
// standard C++-style ASCII string, although the GUID partition definition
// requires a UTF-16LE string. This function creates a simple-minded copy
@@ -190,7 +192,7 @@ void GPTPart::ShowSummary(int partNum, uint32_t blockSize) {
cout.setf(ios::uppercase);
cout << hex << partitionType.GetHexType() << " " << dec;
cout.fill(' ');
#ifndef _WIN32
#ifdef USE_UTF16
GetDescription().extractBetween(0, 23, description);
cout << description << "\n";
#else
@@ -273,13 +275,13 @@ void GPTPart::ChangeType(void) {
cout << "Current type is '" << GetTypeName() << "'\n";
do {
cout << "Hex code or GUID (L to show codes, Enter = 0700): ";
cout << "Hex code or GUID (L to show codes, Enter = " << hex << DEFAULT_TYPE << dec << "): ";
line = ReadString();
if ((line[0] == 'L') || (line[0] == 'l')) {
partitionType.ShowAllTypes();
} else {
if (line.length() == 0)
tempType = 0x0700;
tempType= DEFAULT_TYPE;
else
tempType = line;
} // if/else

View File

@@ -74,7 +74,7 @@ class GPTPart {
void SetAttributes(uint64_t a) {attributes = a;}
void SetAttributes(void) {attributes.ChangeAttributes();}
void SetName(const string & theName);
#ifndef _WIN32
#ifdef USE_UTF16
void SetName(const UnicodeString & theName);
#endif
void SetDefaultDescription(void);

31
guid.cc
View File

@@ -128,20 +128,35 @@ void GUIDData::Zero(void) {
// Set a completely random GUID value....
// The uuid_generate() function returns a value that needs to have its
// first three fields byte-reversed to conform to Intel's GUID layout.
// If that function isn't defined (e.g., on Windows), set a completely
// random GUID -- not completely kosher, but it doesn't seem to cause
// any problems (so far...)
// The Windows UuidCreate() function doesn't need this adjustment. If
// neither function is defined, or if UuidCreate() fails, set a completely
// random GUID -- not completely kosher, but it works on most platforms
// (immediately after creating the UUID on Windows 7 being an important
// exception).
void GUIDData::Randomize(void) {
int i, uuidGenerated = 0;
#ifdef _UUID_UUID_H
uuid_generate(uuidData);
ReverseBytes(&uuidData[0], 4);
ReverseBytes(&uuidData[4], 2);
ReverseBytes(&uuidData[6], 2);
#else
int i;
for (i = 0; i < 16; i++)
uuidData[i] = (unsigned char) (256.0 * (rand() / (RAND_MAX + 1.0)));
uuidGenerated = 1;
#endif
#if defined (_RPC_H) || defined (__RPC_H__)
UUID MsUuid;
if (UuidCreate(&MsUuid) == RPC_S_OK) {
memcpy(uuidData, &MsUuid, 16);
uuidGenerated = 1;
} // if
#endif
if (!uuidGenerated) {
cerr << "Warning! Unable to generate a proper UUID! Creating an improper one as a last\n"
<< "resort! Windows 7 may crash if you save this partition table!\a\n";
for (i = 0; i < 16; i++)
uuidData[i] = (unsigned char) (256.0 * (rand() / (RAND_MAX + 1.0)));
} // if
} // GUIDData::Randomize
// Equality operator; returns 1 if the GUIDs are equal, 0 if they're unequal
@@ -194,4 +209,4 @@ ostream & operator<<(ostream & os, const GUIDData & data) {
os << data.AsString();
return os;
} // GUIDData::operator<<()
} // GUIDData::operator<<()

10
guid.h
View File

@@ -5,7 +5,7 @@
// Implements the GUIDData data structure and support methods
//
//
// Author: Rod Smith <rodsmith@rodsbooks.com>, (C) 2010
// Author: Rod Smith <rodsmith@rodsbooks.com>, (C) 2010-2011
//
// Copyright: See COPYING file that comes with this distribution
//
@@ -18,10 +18,14 @@
#include <string>
// Have to play games with uuid_t since it's defined in incompatible ways
// for Unix (libuuid) vs. Windows
// for Unix (libuuid) vs. Windows (in rpc.h)
#ifdef _WIN32
#include <rpc.h>
#ifdef _MSC_VER
#pragma comment(lib, "Rpcrt4.lib")
#endif
typedef unsigned char my_uuid_t[16];
#else
#else // Not Windows
#include <uuid/uuid.h>
typedef uuid_t my_uuid_t;
#endif

View File

@@ -73,21 +73,21 @@ void PartType::AddAllTypes(void) {
AddType(0x0000, "00000000-0000-0000-0000-000000000000", "Unused entry", 0);
// DOS/Windows partition types, which confusingly Linux also uses in GPT
AddType(0x0100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-12
AddType(0x0400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-16 < 32M
AddType(0x0600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-16
AddType(0x0700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 1); // NTFS (or HPFS)
AddType(0x0b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-32
AddType(0x0c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-32 LBA
AddType(0x0100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-12
AddType(0x0400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-16 < 32M
AddType(0x0600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-16
AddType(0x0700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 1); // NTFS (or HPFS)
AddType(0x0b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-32
AddType(0x0c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-32 LBA
AddType(0x0c01, "E3C9E316-0B5C-4DB8-817D-F92DF00215AE", "Microsoft reserved");
AddType(0x0e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-16 LBA
AddType(0x1100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-12
AddType(0x1400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-16 < 32M
AddType(0x1600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-16
AddType(0x1700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden NTFS (or HPFS)
AddType(0x1b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-32
AddType(0x1c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-32 LBA
AddType(0x1e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-16 LBA
AddType(0x0e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-16 LBA
AddType(0x1100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-12
AddType(0x1400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16 < 32M
AddType(0x1600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16
AddType(0x1700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden NTFS (or HPFS)
AddType(0x1b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-32
AddType(0x1c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-32 LBA
AddType(0x1e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16 LBA
AddType(0x2700, "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC", "Windows RE");
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
@@ -107,7 +107,8 @@ void PartType::AddAllTypes(void) {
// Linux-specific partition types....
AddType(0x8200, "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F", "Linux swap"); // Linux swap (or Solaris)
AddType(0x8300, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Linux native
AddType(0x8300, "0FC63DAF-8483-4772-8E79-3D69D8477DE4", "Linux filesystem"); // Linux native
// AddType(0x8300, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Linux native
AddType(0x8301, "8DA63339-0007-60C0-C436-083AC8230908", "Linux reserved");
AddType(0x8e00, "E6D6D379-F507-44C2-A23C-238F2A3DF928", "Linux LVM");
@@ -241,18 +242,18 @@ PartType & PartType::operator=(uint16_t ID) {
} // while
if (!found) {
// Assign a default value....
GUIDData::operator=("EBD0A0A2-B9E5-4433-87C0-68B6B72699C7"); // 0700, Linux/Windows data
operator=(DEFAULT_TYPE);
cout.setf(ios::uppercase);
cout.fill('0');
cout << "Exact type match not found for type code ";
cout.width(4);
cout << hex << ID << "; assigning type code for\n'Linux/Windows data'\n" << dec;
cout << hex << ID << "; assigning type code for\n'" << TypeName() << "'\n" << dec;
cout.fill(' ');
} // if (!found)
return *this;
} // PartType::operator=(uint16_t ID)
// Return the English description of the partition type (e.g., "Linux/Windows data")
// Return the English description of the partition type (e.g., "Linux filesystem")
string PartType::TypeName(void) const {
AType* theItem = allTypes;
int found = 0;
@@ -272,7 +273,7 @@ string PartType::TypeName(void) const {
return typeName;
} // PartType::TypeName()
// Return the Unicode description of the partition type (e.g., "Linux/Windows data")
// Return the Unicode description of the partition type (e.g., "Linux filesystem")
UnicodeString PartType::UTypeName(void) const {
AType* theItem = allTypes;
int found = 0;

View File

@@ -3,7 +3,7 @@
#include <stdint.h>
#include <stdlib.h>
#ifndef _WIN32
#ifdef USE_UTF16
#include <unicode/ustream.h>
#else
#define UnicodeString string

View File

@@ -1,6 +1,6 @@
.\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License
.TH "SGDISK" "8" "0.7.1" "Roderick W. Smith" "GPT fdisk Manual"
.TH "SGDISK" "8" "0.7.2" "Roderick W. Smith" "GPT fdisk Manual"
.SH "NAME"
sgdisk \- Command\-line GUID partition table (GPT) manipulator for Linux and Unix
.SH "SYNOPSIS"
@@ -286,20 +286,20 @@ but the original disk is not recommended.
.TP
.B \-L, \-\-list\-types
Display a summary of partition types. GPT uses a GUID to identify
partition types for particular OSes and purposes. For ease of data entry,
Display a summary of partition types. GPT uses a GUID to identify partition
types for particular OSes and purposes. For ease of data entry,
\fBsgdisk\fR compresses these into two\-byte (four\-digit hexadecimal)
values that are related to their equivalent MBR codes. Specifically, the
MBR code is multiplied by hexadecimal 0x0100. For instance, the code for
Linux swap space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR.
A one\-to\-one correspondence is impossible, though. Most notably, many DOS,
Windows, and Linux data partition codes correspond to a single GPT code
Linux swap space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR. A
one\-to\-one correspondence is impossible, though. Most notably, the codes
for all varieties of FAT and NTFS partition correspond to a single GPT code
(entered as 0x0700 in \fBsgdisk\fR). Some OSes use a single MBR code but
employ many more codes in GPT. For these, \fBsgdisk\fR
adds code numbers sequentially, such as 0xa500 for a FreeBSD disklabel,
0xa501 for FreeBSD boot, 0xa502 for FreeBSD swap, and so on. Note that
these two\-byte codes are unique to \fBgdisk\fR and \fBsgdisk\fR. This
option does not require you to specify a valid disk device filename.
employ many more codes in GPT. For these, \fBsgdisk\fR adds code numbers
sequentially, such as 0xa500 for a FreeBSD disklabel, 0xa501 for FreeBSD
boot, 0xa502 for FreeBSD swap, and so on. Note that these two\-byte codes
are unique to \fBgdisk\fR and \fBsgdisk\fR. This option does not require
you to specify a valid disk device filename.
.TP
.B \-m, \-\-gpttombr
@@ -470,7 +470,7 @@ Non\-GPT disk detected and no \fI\-g\fR option
.B 4
An error prevented saving changes
.SH "BUGS"
As of March 2011 (version 0.7.1), \fBsgdisk\fR
As of June 2011 (version 0.7.2), \fBsgdisk\fR
should be considered beta software. Known bugs and limitations include:
.TP

View File

@@ -8,20 +8,24 @@
#ifndef __GPTSUPPORT
#define __GPTSUPPORT
#define GPTFDISK_VERSION "0.7.1.1"
#define GPTFDISK_VERSION "0.7.2"
#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
// Darwin (Mac OS) only: disk IOCTLs are different, and there is no lseek64
// This used to use __DARWIN_UNIX03 rather than __APPLE__, but __APPLE__
// is more general. If the code fails to work on older versions of OS X/
// Darwin, this may need to be changed back (and in various .cc files).
// Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64
#include <sys/disk.h>
#define lseek64 lseek
#endif
// Linux only....
#ifdef __linux__
#include <linux/fs.h>
#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__)
#define DEFAULT_TYPE 0xA503
#endif
#ifdef __APPLE__
#define DEFAULT_TYPE 0xAF00
#endif
#ifdef _WIN32
#define DEFAULT_TYPE 0x0700
#endif
// Microsoft Visual C++ only
@@ -31,6 +35,16 @@
#define sprintf sprintf_s
#endif
// Linux only....
#ifdef __linux__
#include <linux/fs.h>
#define DEFAULT_TYPE 0x8300
#endif
#ifndef DEFAULT_TYPE
#define DEFAULT_TYPE 0x8300
#endif
// Set this as a default
#define SECTOR_SIZE UINT32_C(512)
@@ -38,9 +52,6 @@
#define APM_SIGNATURE1 UINT64_C(0x00004D5000000000)
#define APM_SIGNATURE2 UINT64_C(0x0000535400000000)
// Maximum line length on some input functions
#define MAX_LINE_LENGTH 255
/**************************
* Some GPT constants.... *
**************************/