summaryrefslogtreecommitdiff
path: root/README-efi.txt
diff options
context:
space:
mode:
authorRoderick W. Smith <rodsmith@rodsbooks.com>2015-03-17 19:45:46 -0400
committerRoderick W. Smith <rodsmith@rodsbooks.com>2015-03-17 19:45:46 -0400
commit50d3f8fcb214125c1d31c2955960615e9eab3d81 (patch)
tree82a31fefdce8508c816c23838a64f1eb66509217 /README-efi.txt
parenta920398fa393f9d6301b32b191bc01e086ab8bc8 (diff)
downloadsgdisk-50d3f8fcb214125c1d31c2955960615e9eab3d81.tar.gz
Added README file for EFI binary.
Diffstat (limited to 'README-efi.txt')
-rw-r--r--README-efi.txt132
1 files changed, 132 insertions, 0 deletions
diff --git a/README-efi.txt b/README-efi.txt
new file mode 100644
index 0000000..fc5ef27
--- /dev/null
+++ b/README-efi.txt
@@ -0,0 +1,132 @@
+README for EFI version of GPT fdisk
+===================================
+
+GPT fdisk for EFI is a binary build of gdisk to run as a pre-boot EFI
+application. It's OS-independent and may be used to check or recover
+partition tables before installing or booting an OS. It may be used to
+overcome boot problems caused by partition table damage or to prepare a
+partition table prior to installing an OS.
+
+Installing GPT fdisk for EFI
+----------------------------
+
+The contents of this archive are:
+
+- COPYING -- The GNU GPL
+- gdisk.html -- The gdisk man page, in HTML form
+- gdisk_x64.efi -- The gdisk binary, built for EFI (x86-64 CPU)
+- NEWS -- The GPT fdisk changelog
+- README-efi.txt -- This file
+- refind.cer -- The rEFInd public key, .cer (DER) form
+- refind.crt -- The rEFInd public key, .crt form
+
+The gdisk_x64.efi binary included here is built using the UEFI GPT fdisk
+library (https://sourceforge.net/p/uefigptfdisk/), which is a beta-level
+partial C++ library for UEFI. To use it, you must copy it to your EFI
+System Partition (ESP) or some other EFI-accessible location. Under Linux,
+the ESP is usually one of the first two or three partitions on /dev/sda.
+Under OS X, it's usually the first partition on /dev/disk0 (that is,
+/dev/disk0s1). Under Windows, you can mount it to S: by typing "mountvol S:
+/S" in an Administrator command prompt. In any of these cases, the
+recommended location for gdisk_x64.efi is the EFI/tools directory on the
+ESP. In that location, my rEFInd boot manager will detect the gdisk binary
+and create a menu option to launch it. If you don't use rEFInd, you can
+launch the program using an EFI shell, register it as a boot program with
+your firmware, or configure your boot manager (GRUB, gummiboot, etc.) to
+launch it. Note that boot LOADERS, such as SYSLINUX and ELILO, can't launch
+gdisk.
+
+Alternatively, you can create a USB flash drive that will launch gdisk when
+you boot from it. To do so, create a FAT filesystem on a partition on a USB
+flash drive and copy gdisk_x64.efi to it as EFI/BOOT/bootx64.efi. (You'll
+need to create the EFI/BOOT directory.) Some systems may require the FAT
+filesystem to be flagged as an ESP (with a type code of EF00 in gdisk). You
+can use your firmware's built-in boot manager to boot from the USB flash
+drive. Some such boot managers present two options for booting USB flash
+drives. If yours does this, select the option that includes the string
+"UEFI" in the description.
+
+The gdisk_x64.efi binary is signed with the rEFInd Secure Boot key. Thus,
+if you're launching a rEFInd that I've compiled and distributed myself,
+gdisk should launch, too. If you're *NOT* running rEFInd but ARE using
+Shim, you'll need to add the refind.cer file to your MOK list by using the
+MokManager utility. If you're using Secure Boot and you've signed rEFInd
+yourself, you'll need to sign gdisk_x64.efi yourself, too. Note that the
+rEFInd PPA distributes unsigned binaries and signs them with a local key
+stored in /etc/refind/keys. To copy and sign the gdisk_x64.efi binary, you
+should type (as root or using sudo):
+
+sbsign --key /etc/refind.d/keys/refind_local.key \
+ --cert /etc/refind.d/keys/refind.crt \
+ --output /boot/efi/EFI/tooks/gdisk_x64.efi ./gdisk_x64.efi
+
+This command assumes you have local rEFInd keys stored in the locations
+created by the rEFInd installation script. Substitute your own keys if
+you've built them in some other way. Some distributions don't provide the
+sbsign binary, so you may need to build it yourself. See the following page
+for details:
+
+https://git.kernel.org/cgit/linux/kernel/git/jejb/sbsigntools.git/
+
+Note that you do *NOT* need to sign gdisk if your computer doesn't use
+Secure Boot or if you've disabled this feature.
+
+Using gdisk for EFI
+-------------------
+
+The EFI version of gdisk is basically the same as using the Linux, OS X, or
+other OS versions. One exception is that you do not specify a disk device
+on the command line; gdisk for EFI instead displays a list of devices when
+you launch and enables you to select one, as in:
+
+List of hard disks found:
+ 1: Disk EFI_HANDLE(3EB5DD98): 108423424 sectors, 51.7 GiB
+ Acpi(PNP0A03,0)/Pci(1|1)/Ata(Primary,Master)
+ 2: Disk EFI_HANDLE(3EB58289): 105456768 sectors, 50.3 GiB
+ Acpi(PNP0A03,0)/Pci(D|0)?
+
+Disk number (1-2): 2
+
+Once you've selected your disk, it should operate in much the same way as
+any other version of gdisk. (See the next section, though!) Some programs,
+including my rEFInd boot manager, complain about the changed partition
+table, even if you've made no changes. If you run into problems using other
+programs or launching an OS immediately after running gdisk, reboot; that
+should cause the firmware to re-load its partition table.
+
+Caveats
+-------
+
+I've tested gdisk_x64.efi on several systems. It's worked fine for me on 4
+of 6 computers (5 of 7, counting VirtualBox). Two systems gave me problems,
+though:
+
+* gdisk presented a never-ending list of options (as if receiving a
+ never-ending string of "?" or other unrecognized command characters) on a
+ 2014 MacBook Air.
+* A computer based on an Intel DG43NB motherboard rebooted as soon as I
+ launched gdisk.
+
+Both computers have relatively old EFIs. (Despite its newness, the Mac has
+a 1.10 EFI, as do all Macs, to the best of my knowledge.) Most of the
+computers that worked had 2.31 EFIs, although one had a 2.10 EFI.
+
+The bottom line is that I can't guarantee that this binary will work on all
+computers. It's conceivable that recompiling gdisk with the latest version
+of the UEFI GPT fdisk library will help. Also, I haven't compiled a 32-bit
+version, so if you have a 32-bit EFI, you'll have to compile it yourself or
+do without.
+
+References
+----------
+
+The following sites have useful additional information:
+
+UEFI GPT fdisk:
+https://sourceforge.net/projects/uefigptfdisk/
+
+sbsigntools git repository:
+https://git.kernel.org/cgit/linux/kernel/git/jejb/sbsigntools.git/
+
+rEFInd:
+http://www.rodsbooks.com/refind/