Fdisk

Tango-mail-mark-junk.png

Tango-mail-mark-junk.png

This article or section needs language, wiki syntax or style improvements.

Reason: Split from Partitioning, needs adaptations as a standalone article. (Discuss in Talk:Fdisk#)

Tango-view-fullscreen.png

Tango-view-fullscreen.png

This article or section needs expansion.

Reason: It should cover {f,cf,g,cg,sg}disk programs, as it will be relied upon from the Beginners' guide. (Discuss in Talk:Beginners'_guide#Replace_parted_with_cfdisk.2Fcgdisk)

Related articles

Using GPT - modern method

Gdisk usage summary

Using GPT, the utility for editing the partition table is called gdisk. It can perform partition alignment automatically on a 2048 sector (or 1024KiB) block size base which should be compatible with the vast majority of SSDs if not all. GNU parted also supports GPT, but is less user-friendly for aligning partitions. The environment provided by the Arch install ISO includes the gdisk command. If you need it later on in the installed system, gdisk is available in the gptfdisk package.

A summary of the typical usage of gdisk:

  • Start gdisk against your drive as root (disk-device may be e.g. /dev/sda):
# gdisk disk-device
  • If the drive is brand new or if you are wanting to start over, create a new empty GUID partition table with the o command.
  • Create a new partition with the n command (primary type/1st partition).
  • Assuming the partition is new, gdisk will pick the highest possible alignment. Otherwise, it will pick the largest power of two that divides all partition offsets.
  • If choosing to start on a sector before the 2048th gdisk will automatically shift the partition start to the 2048th disk sector. This is to ensure a 2048-sectors alignment (as a sector is 512B, this is a 1024KiB alignment which should fit any SSD NAND erase block).
  • Use the +x{M,G} format to extend the partition x mebibytes or gibibytes, if choosing a size that is not a multiple of the alignment size (1024kiB), gdisk will shrink the partition to the nearest inferior multiple. For example, if you want to create a 15GiB partition, you would enter +15G. To take all of the remaining space, press enter right away, or enter +0 instead.
  • Select the partition's type id, the default, Linux filesystem (code 8300), should be fine for most use. Press L to show the codes list. If planning to use LVM select Linux LVM (8e00).
  • Assign other partitions in a like fashion.
  • Write the table to disk and exit via the w command.
  • Format the new partitions with a file system.

Using MBR - legacy method

Using MBR, the utility for editing the partition table is called fdisk. Recent versions of fdisk have abandoned the deprecated system of using cylinders as the default display unit, as well as MS-DOS compatibility by default. The latest fdisk automatically aligns all partitions to 2048 sectors, or 1024 KiB, which should work for all EBS sizes that are known to be used by SSD manufacturers. This means that the default settings will give you proper alignment.

Note that in the olden days, fdisk used cylinders as the default display unit, and retained an MS-DOS compatibility quirk that messed with SSD alignment. Therefore one will find many guides around the internet from around 2008-2009 making a big deal out of getting everything correct. With the latest fdisk, things are much simpler, as reflected in this guide.

Fdisk usage summary

  • Start fdisk against your drive as root (disk-device may be e.g. /dev/sda):
# fdisk disk-device
  • If the drive is brand new or if you are wanting to start over, create a new empty DOS partition table with the o command.
  • Create a new partition with the n command (primary type/1st partition).
  • Use the +xG format to extend the partition x gibibytes. For example, if you want to create a 15GiB partition, you would enter +15G
  • Change the partition's system id from the default type of Linux (type 83) to the desired type via the t command. This is an optional step should the user wish to create another type of partition for example, swap, NTFS, LVM, etc. Note that a complete listing of all valid partition types is available via the l command.
  • Assign other partitions in a like fashion.
  • Write the table to disk and exit via the w command.

Using cgdisk to create GPT partitions

Tango-mail-mark-junk.png

Tango-mail-mark-junk.png

This article or section needs language, wiki syntax or style improvements.

Reason: Moved here from Beginners' guide, needs adaptation/merging to the rest of this article. (Discuss in Talk:Fdisk#)

Launch cgdisk with:

# cgdisk /dev/sda
Tip: If cgdisk cannot change your disk to GPT, parted can.

Root:

  • Choose New (or press N) – Enter for the first sector (2048) – type in 15GEnter for the default hex code (8300) – Enter for a blank partition name.

Home:

  • Press the down arrow a couple of times to move to the larger free space area.
  • Choose New (or press N) – Enter for the first sector – Enter to use the rest of the drive (or you could type in the desired size; for example 30G) – Enter for the default hex code (8300) – Enter for a blank partition name.

Here is what it should look like:

Part. #     Size        Partition Type            Partition Name
----------------------------------------------------------------
            1007.0 KiB  free space
   1        15.0 GiB    Linux filesystem
   2        123.45 GiB  Linux filesystem

Double check and make sure that you are happy with the partition sizes as well as the partition table layout before continuing.

If you would like to start over, you can simply select Quit (or press Q) to exit without saving changes and then restart cgdisk.

If you are satisfied, choose Write (or press Shift+W) to finalize and to write the partition table to the drive. Type yes and choose Quit (or press Q) to exit without making any more changes.

Using fdisk to create MBR partitions

Tango-mail-mark-junk.png

Tango-mail-mark-junk.png

This article or section needs language, wiki syntax or style improvements.

Reason: Moved here from Beginners' guide, needs adaptation/merging to the rest of this article. (Discuss in Talk:Fdisk#)

Launch fdisk with:

# fdisk /dev/sda

Create the partition table:

  • Command (m for help): type o and press Enter

Then create the first partition:

  1. Command (m for help): type n and press Enter
  2. Partition type: Select (default p): press Enter
  3. Partition number (1-4, default 1): press Enter
  4. First sector (2048-209715199, default 2048): press Enter
  5. Last sector, +sectors or +size{K,M,G,T,P} (2048-209715199....., default 209715199): type +15G and press Enter

Then create a second partition:

  1. Command (m for help): type n and press Enter
  2. Partition type: Select (default p): press Enter
  3. Partition number (1-4, default 2): press Enter
  4. First sector (31459328-209715199, default 31459328): press Enter
  5. Last sector, +sectors or +size{K,M,G,T,P} (31459328-209715199....., default 209715199): press Enter

Now preview the new partition table:

  • Command (m for help): type p and press Enter
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5698d902

   Device Boot     Start         End     Blocks   Id  System
/dev/sda1           2048    31459327   15728640   83   Linux
/dev/sda2       31459328   209715199   89127936   83   Linux

Then write the changes to disk:

  • Command (m for help): type w and press Enter

If everything went well fdisk will now quit with the following message:

The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks. 

In case this does not work because fdisk encountered an error, you can use the q command to exit.