GPT fdisk Tutorial (original) (raw)
by Rod Smith, rodsmith@rodsbooks.com
Last Web page update: 4/18/2022, referencing GPT fdisk version 1.0.9
This Web page, and the associated software, is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find GPT fdisk or this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!
Donate 1.00∣Donate1.00 | Donate 1.00∣Donate2.50 | Donate 5.00∣Donate5.00 | Donate 5.00∣Donate10.00 | Donate $20.00 | Donate another value |
---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
GPT fdisk (consisting of the gdisk, cgdisk,sgdisk, and fixparts programs) is a set of text-mode partitioning tools for Linux, FreeBSD, macOS, and Windows. Thegdisk, cgdisk, and sgdisk programs work on Globally Unique Identifier (GUID) Partition Table (GPT) disks, rather than on the older (and once more common) Master Boot Record (MBR) partition tables. The fixparts program repairs certain types of damage to MBR disks and enables changing partition types from primary to logical and vice-versa. You can learn more about fixparts on its dedicated Web page. Ifgdisk, cgdisk, and sgdisk sound interesting to you, then read on (or skip straight to the "Obtaining GPT fdisk" link if you don't need the GPT pep talk). If you don't know what a GPT is, be sure to read the first section!
FreeBSD users: The FreeBSD version of GPT fdisk can't normally save changes to your partition table if any partition from the disk is mounted. If you want to modify your FreeBSD boot disk, the safest way to do so is from an emergency system or from a dual boot to another OS. Alternatively, you can type sysctl kern.geom.debugflags=16at a shell prompt to enable FreeBSD to write to active disks. This limitation is shared by at least some other FreeBSD partitioning tools, such as gpt and FreeBSD's fdisk. This limitation does_not_ exist in the Linux, macOS, or Windows versions of the software.
MacOS 10.11 ("El Capitan") and later users: MacOS 10.11 added a feature called System Integrity Protection (SIP), or less formally, "rootless." This system blocks access to certain critical aspects of the OS and hardware by third-party programs, including GPT fdisk. Thus, GPT fdisk's capabilities are limited under macOS 10.11 or later unless SIP is disabled. Specifically, low-level access to the system disk is forbidden, so you cannot repartition it. Access to USB flash drives remains possible, though. Disabling SIP is covered on several Web sites, including hereand here.My rEFInd boot manager can disable SIP, as described here. Alternatively, you can run GPT fdisk from a Linux emergency disk.
Windows users: BIOS-mode versions of Windows cannot boot from a GPT disk; Windows can boot from such disks only if the computer uses Unified Extensible Firmware Interface (UEFI) firmware. Versions prior to Vista may not be able to read GPT disks at all. Since GPT fdisk automatically turns MBR disks into GPT disks, you should use GPT fdisk only if you're positive your system can handle them. The vast majority of computers sold with Windows 8 and later have UEFI firmware and so also use GPT. Consult Microsoft's GPT FAQ for more information on GPT support in older versions of Windows. (A newer version of this FAQ describes GPT with Windows 10 and later.) If you have a BIOS-based computer and desperately need to boot from a GPT disk, consult my BIOS to UEFI Transformation Web page; however, I have not tested these procedures in years myself, and the Clover boot loader may work better today. Also, be aware that the vast majority of computers sold since 2011 do not need to use such software, since they support EFI-mode booting directly.
Sections
- What's a GPT?—A summary of basics about GPT
- Working Around MBR's Limitations—A couple of ways to eek a bit more life out of MBR
- Legacy BIOS Issues with GPT—Information on obscure issues related to BIOS/GPT coexistence
- Why Use GPT fdisk?—Advice on when to use GPT fdisk vs. its alternatives
- A gdisk Walkthrough—A demonstration of how to use GPT fdisk's interactive gdisk tool, which is a powerful tool for experts.
- A cgdisk Walkthrough—A demonstration of how to use GPT fdisk's command-line cgdisk tool, which is easier to use for partitioning novices.
- An sgdisk Walkthrough—A demonstration of how to use GPT fdisk's command-line gdisk tool, which is intended for use in scripts or by experts to do quick tasks.
- Partitioning Advice—General suggestions on how to lay out your GPT partitions
- Converting to or from GPT—If you want to convert an existing MBR or BSD disklabel disk to use GPT, or convert GPT to MBR, read this!
- Wiping Out GPT Data—If you need to re-partition a GPT disk using MBR, read this first!
- Booting from GPT—Advice on booting Linux, FreeBSD, Windows, and macOS from GPT disks
- Hybrid MBRs—Information on this non-standard, ugly, flaky, dangerous, but occasionally useful GPT variant.
- Repairing GPT Disks—When a GPT disk's data structures are damaged, GPT fdisk can help you recover your data.
- Obtaining GPT fdisk—How to get the program.
- Revisions—GPT fdisk's revision history.
Man Pages
The Linux man pages for all of the GPT fdisk programs are available here:
Using GPT fdisk on Any Computer
At least three Linux emergency systems ship with GPT fdisk. You can create a bootable CD-R, boot it, and use GPT fdisk (and many other useful Linux utilities) even on systems on which GPT fdisk doesn't compile. These tools are also very useful for Linux, FreeBSD, macOS, Windows, and other systems when things go wrong or when performing certain types of offline maintenance.
The emergency disks I know of that include GPT fdisk are:
Some Linux installation media can also be used as emergency disks. The Ubuntu Desktop installer, for instance, provides a "try Ubuntu" mode that is effectively a "live CD" similar to these recovery tools.
Note that GPT fdisk is a Linux text-mode tool, so you'll need to know at least a minimal amount about using a Linux text-mode shell. Many basic introductions are available on the Web. You'll need to learn only enough to do very basic tasks; the GPT fdisk walkthrough describes GPT fdisk itself. Depending on your rescue CD and how you launched it, you may find yourself at a text-mode shell when you first boot, or you may need to locate an item called "Terminal," "Shell," "xterm," or something similar to start your text-mode shell.
Additional Resources
- GPT fdisk's Sourceforge page—The preferred download method for source code and non-Linux binaries. (For Linux binaries, see the "Obtaining GPT fdisk" page.)
- Intel's Unified EFI page includes links to various EFI resources.
- The UEFI 2.x specifications and tools detail UEFI 2.x, as implemented on some modern PC motherboards. The GPT structure is described in Section 5 (and especially Section 5.3) of the UEFI 2.8 specification. Note that UEFI 2.x uses the same GPT format (1.0) as described in version 1.x of the EFI specification, although the description has been clarified or expanded in a few areas. The GPT version number is unrelated to the EFI/UEFI version number.
- "Make the Most of Large Drives with GPT and Linux"—An informational piece on GPT I wrote for IBM developerWorks.
- The Wikipedia entry on GPT—This has lots of useful technical information, including the most complete set of GUID partition codes I've seen in one place. (I implemented them all in gdisk, but there may be more by the time you read this.)
- The Wikipedia entry on MBR—This has lots of useful technical information on MBR, should you want to compare it to the GPT information.
- Apple's Technical Note TN2166—A document that provides technical details on GPT.
- Microsoft's GPT FAQ—Go here to learn Windows-specific GPT information.
- Microsoft's Recommended UEFI-Based Disk-Partition Configurations page provides details on how to partition a UEFI-based computer on which you want to install Windows.
- Microsoft's MBR2GPT tool will convert a disk from MBR to GPT form, just asgdisk does. It also converts the Windows installation on the disk to boot in EFI/UEFI mode rather than the BIOS/CSM/legacy mode it had presumably been using.
- A piece on Anandtech concerns the transition to 4096-byte sectors in hard disks.
- Another of my IBM developerWorks articles, this time on using disks with 4096-byte sectors in Linux.
- A page on repairing damage to GPT done by MacDrive under Windows. This page includes a simple Python utility to repair the damage, but of you can do the same thing with GPT fdisk.
- A Web page I've written on recovering MBR disks that GNU Parted, GParted, and other libparted-based tools can't handle because of an improper extended partition definition.
- Google's Chromium project Web page includes a page on disk formats, including information on how ChromeOS uses GPT disks.
- My Web page on rEFInd, a boot loader project derived from the earlier rEFIt, covers this boot loader for EFI systems.
- My Linux on UEFI: A Quick Installation Guide page provides helpful tips on how to install Linux on EFI-based systems.
copyright © 2009–2022 by Roderick W. Smith
If you have problems with or comments about this web page, please e-mail me at rodsmith@rodsbooks.com. Thanks.
Return to my main web page.