lfdisk(8) manipulate partition tables on a hard drive

Other Alias

GNU fdisk, gfdisk


fdisk [options] [device]


fdisk is a disk partition manipulation program, which allows you to create, destroy, resize, move and copy partitions on a hard drive using a menu-driven interface. It is useful for organising the disk space on a new drive, reorganising an old drive, creating space for new operating systems, and copying data to new hard disks. For a list of the supported partition types, see the --list-partition-types option below.

It comes in two variants, gfdisk and lfdisk. Lfdisk aims to resemble Linux fdisk 2.12, while gfdisk supports more advanced disk operations, like resizing the filesystem, moving and copying partitions. When starting fdisk, the default is to run gfdisk.


-h, --help
displays a help message.
-v, --version
displays the program's version.
-L, --linux-fdisk
turns on Linux fdisk compatibility mode. This is the same as running lfdisk.
-G, --gnu-fdisk
turns off Linux fdisk compatibility mode.
-i, --interactive
where necessary, prompts for user intervention.
-p, --script
never prompts for user intervention.
-l, --list
lists the partition table on the specified device and exits. If there is no device specified, lists the partition tables on all detected devices.
-r, --raw-list
displays a hex dump of the partition table of the disk, similar to the way Linux fdisk displays the raw data in the partition table.
-u, --sector-units
use sectors, instead of cylinders for a default unit.
-s, --size=DEVICE
prints the size of the partition on DEVICE is printed on the standard output.
-t, --list-partition-types
displays a list of supported partition types and features.

The following options are available only to lfdisk.

-b, --sector-size=SIZE
Specify the sector size of the disk. Valid values are 512, 1024 and 2048. Should be used only on older kernels, which don't guess the correct sector size.
-C, --cylinders=CYLINDERS
Specify the number of cylinders of the disk. Currently does nothing, it is left for Linux fdisk compatibility.
-H, --heads=HEADS
Specify the number of heads of the disk. Reasonable values are 255 or 16.
-S, --sectors=SECTORS
Specify the number of sectors per track. A reasonable value is 63.


Before editing a BSD disklabel, the partition with the disklabel should already exist on the disk and be detected by the OS. If you have created a BSD-type partition, you need to write the changes to the disk. If fdisk fails to notify the OS about the changes in partition table, you need to restart your computer. As fdisk tries to guess the device holding the BSD disklabel, it might fail to edit it at all, even if the OS has detected it. In this case you are adviced to simply open the device with fdisk directly. It is possible that it doesn't work on some operating systems.

Getting the size of a partition with -s might fail, if fdisk fails to guess the disk device, for the same reasons as with the previous bug.