| .\" cfdisk.8 -- man page for cfdisk |
| .\" Copyright 1994 Kevin E. Martin (martin@cs.unc.edu) |
| .\" |
| .\" Permission is granted to make and distribute verbatim copies of this |
| .\" manual provided the copyright notice and this permission notice are |
| .\" preserved on all copies. |
| .\" |
| .\" Permission is granted to copy and distribute modified versions of this |
| .\" manual under the conditions for verbatim copying, provided that the |
| .\" entire resulting derived work is distributed under the terms of a |
| .\" permission notice identical to this one. |
| .\" |
| .\" " for hilit mode |
| .TH CFDISK 8 "3 June 1995" "The BOGUS Linux Release" "Linux Programmer's Manual" |
| .SH NAME |
| cfdisk \- Curses based disk partition table manipulator for Linux |
| .SH SYNOPSIS |
| .B cfdisk |
| .RB [ \-agvz ] |
| .RB [ \-c |
| .IR cylinders ] |
| .RB [ \-h |
| .IR heads ] |
| .RB [ \-s |
| .IR sectors-per-track ] |
| .RB [ \-P |
| .IR opt ] |
| .RI [ device ] |
| .SH DESCRIPTION |
| .B cfdisk |
| is a curses based program for partitioning any hard disk drive. |
| Typical values of the |
| .I device |
| argument are: |
| .sp |
| .nf |
| .RS |
| /dev/hda [default] |
| /dev/hdb |
| /dev/sda |
| /dev/sdb |
| /dev/sdc |
| /dev/sdd |
| .RE |
| .fi |
| |
| In order to write the partition table |
| .B cfdisk |
| needs something called the `geometry' of the disk: the number |
| of `heads' and the number of `sectors per track'. Linux does not |
| use any geometry, so if the disk will not be accessed by other |
| operating systems, you can safely accept the defaults that |
| .B cfdisk |
| chooses for you. The geometry used by |
| .B cfdisk |
| is found as follows. First the partition table is examined, |
| to see what geometry was used by the previous program that |
| changed it. If the partition table is empty, or contains garbage, |
| or does not point at a consistent geometry, the kernel is |
| asked for advice. If nothing works 255 heads and 63 sectors/track |
| is assumed. The geometry can be overridden on the command line |
| or by use of the `g' command. When partitioning an empty large modern |
| disk, picking 255 heads and 63 sectors/track is always a good idea. |
| There is no need to set the number of cylinders, since |
| .B cfdisk |
| knows the disk size. |
| |
| Next, |
| .B cfdisk |
| tries to read the current partition table from the disk drive. If it |
| is unable to figure out the partition table, an error is displayed and |
| the program will exit. This might also be caused by incorrect |
| geometry information, and can be overridden on the command line. |
| Another way around this problem is with the |
| .B \-z |
| option. This will ignore the partition table on the disk. |
| |
| The main display is composed of four sections, from top to bottom: the |
| header, the partitions, the command line and a warning line. The |
| header contains the program name and version number followed by the |
| disk drive and its geometry. The partitions section always displays |
| the current partition table. The command line is the place where |
| commands and text are entered. The available commands are usually |
| displayed in brackets. The warning line is usually empty except when |
| there is important information to be displayed. The current partition |
| is highlighted with reverse video (or an arrow if the |
| .B \-a |
| option is given). All partition specific commands apply to the |
| current partition. |
| |
| The format of the partition table in the partitions section is, from |
| left to right: Name, Flags, Partition Type, Filesystem Type and Size. |
| The name is the partition device name. The flags can be |
| .IR Boot , |
| which designates a bootable partition or |
| .IR NC , |
| which stands for "Not Compatible with DOS or OS/2". DOS, OS/2 and |
| possibly other operating systems require the first sector of the first |
| partition on the disk and all logical partitions to begin on the |
| second head. This wastes the second through the last sector of the |
| first track of the first head (the first sector is taken by the |
| partition table itself). |
| .B cfdisk |
| allows you to recover these "lost" sectors with the maximize command |
| .RB ( m ). |
| .I Note: |
| .BR fdisk (8) |
| and some early versions of DOS create all partitions with the number |
| of sectors already maximized. For more information, see the maximize |
| command below. The partition type can be one of |
| .IR Primary " or " Logical . |
| For unallocated space on the drive, the partition type can also be |
| .IR Pri/Log , |
| or empty (if the space is unusable). The filesystem type section |
| displays the name of the filesystem used on the partition, if known. |
| If it is unknown, then |
| .I Unknown |
| and the hex value of the filesystem type are displayed. A special |
| case occurs when there are sections of the disk drive that cannot be |
| used (because all of the primary partitions are used). When this is |
| detected, the filesystem type is displayed as |
| .IR Unusable . |
| The size field displays the size of the partition in megabytes (by |
| default). It can also display the size in sectors and cylinders (see |
| the change units command below). If an asterisk |
| .RB ( * ) |
| appears after the size, this means that the partition is not aligned |
| on cylinder boundaries. |
| .SH "DOS 6.x WARNING" |
| |
| The DOS 6.x FORMAT command looks for some information in the first |
| sector of the data area of the partition, and treats this information |
| as more reliable than the information in the partition table. DOS |
| FORMAT expects DOS FDISK to clear the first 512 bytes of the data area |
| of a partition whenever a size change occurs. DOS FORMAT will look at |
| this extra information even if the /U flag is given -- we consider |
| this a bug in DOS FORMAT and DOS FDISK. |
| |
| The bottom line is that if you use cfdisk or fdisk to change the size of a |
| DOS partition table entry, then you must also use |
| .B dd |
| to zero the first 512 bytes of that partition before using DOS FORMAT to |
| format the partition. For example, if you were using cfdisk to make a DOS |
| partition table entry for /dev/hda1, then (after exiting fdisk or cfdisk |
| and rebooting Linux so that the partition table information is valid) you |
| would use the command "dd if=/dev/zero of=/dev/hda1 bs=512 count=1" to zero |
| the first 512 bytes of the partition. Note: |
| |
| .B BE EXTREMELY CAREFUL |
| if you use the |
| .B dd |
| command, since a small typo can make all of the data on your disk useless. |
| |
| For best results, you should always use an OS-specific partition table |
| program. For example, you should make DOS partitions with the DOS FDISK |
| program and Linux partitions with the Linux fdisk or Linux cfdisk program. |
| |
| .SH COMMANDS |
| .B cfdisk |
| commands can be entered by pressing the desired key (pressing |
| .I Enter |
| after the command is not necessary). Here is a list of the available |
| commands: |
| .TP |
| .B b |
| Toggle bootable flag of the current partition. This allows you to |
| select which primary partition is bootable on the drive. |
| .TP |
| .B d |
| Delete the current partition. This will convert the current partition |
| into free space and merge it with any free space immediately |
| surrounding the current partition. A partition already marked as free |
| space or marked as unusable cannot be deleted. |
| .TP |
| .B g |
| Change the disk geometry (cylinders, heads, or sectors-per-track). |
| .B WARNING: |
| This option should only be used by people who know what they are |
| doing. A command line option is also available to change the disk |
| geometry. While at the change disk geometry command line, you can |
| choose to change cylinders |
| .RB ( c ), |
| heads |
| .RB ( h ), |
| and sectors per track |
| .RB ( s ). |
| The default value will be printed at the prompt which you can accept |
| by simply pressing the |
| .I Enter |
| key, or you can exit without changes by pressing the |
| .I ESC |
| key. If you want to change the default value, simply enter the |
| desired value and press |
| .IR Enter . |
| The altered disk parameter values do not take effect until you return |
| to the main menu (by pressing |
| .IR Enter " or " ESC |
| at the change disk geometry command line). If you change the geometry |
| such that the disk appears larger, the extra sectors are added at the |
| end of the disk as free space. If the disk appears smaller, the |
| partitions that are beyond the new last sector are deleted and the |
| last partition on the drive (or the free space at the end of the |
| drive) is made to end at the new last sector. |
| .TP |
| .B h |
| Print the help screen. |
| .TP |
| .B m |
| Maximize disk usage of the current partition. This command will |
| recover the unused space between the partition table and the |
| beginning of the partition, but at the cost of making the partition |
| incompatible with DOS, OS/2 and possibly other operating systems. |
| This option will toggle between maximal disk usage and DOS, OS/2, |
| etc. compatible disk usage. The default when creating a partition is |
| to create DOS, OS/2, etc. compatible partitions. |
| .TP |
| .B n |
| Create new partition from free space. If the partition type is |
| .IR Primary " or " Logical , |
| a partition of that type will be created, but if the partition type is |
| .IR Pri/Log , |
| you will be prompted for the type you want to create. Be aware that |
| (1) there are only four slots available for primary partitions and (2) |
| since there can be only one extended partition, which contains all of |
| the logical drives, all of the logical drives must be contiguous (with |
| no intervening primary partition). |
| .B cfdisk |
| next prompts you for the size of the partition you want to create. |
| The default size, equal to the entire free space of the current |
| partition, is displayed in megabytes. You can either press the |
| .I Enter |
| key to accept the default size or enter a different size at the |
| prompt. |
| .B cfdisk |
| accepts size entries in megabytes |
| .RB ( M ) |
| [default], kilobytes |
| .RB ( K ), |
| cylinders |
| .RB ( C ) |
| and sectors |
| .RB ( S ) |
| by entering the number immediately followed by one of |
| .RB ( M ", " K ", " C " or " S ). |
| If the partition fills the free space available, the partition is |
| created and you are returned to the main command line. Otherwise, the |
| partition can be created at the beginning or the end of the free |
| space, and |
| .B cfdisk |
| will ask you to choose where to place the partition. After the |
| partition is created, |
| .B cfdisk |
| automatically adjusts the other partitions' partition types if all of |
| the primary partitions are used. |
| .TP |
| .B p |
| Print the partition table to the screen or to a file. There are |
| several different formats for the partition that you can choose from: |
| .sp |
| .RS |
| .TP |
| .B r |
| Raw data format (exactly what would be written to disk) |
| .TP |
| .B s |
| Partition table in sector order format |
| .TP |
| .B t |
| Partition table in raw format |
| .RE |
| |
| .RS |
| The |
| .I raw data format |
| will print the sectors that would be written to disk if a |
| .BR w rite |
| command is selected. First, the primary partition table is printed, |
| followed by the partition tables associated with each logical |
| partition. The data is printed in hex byte by byte with 16 bytes per |
| line. |
| |
| The |
| .I partition table in sector order format |
| will print the partition table ordered by sector number. The fields, |
| from left to right, are the number of the partition, the partition |
| type, the first sector, the last sector, the offset from the first |
| sector of the partition to the start of the data, the length of the |
| partition, the filesystem type (with the hex value in parenthesis), |
| and the flags (with the hex value in parenthesis). In addition to the |
| primary and logical partitions, free and unusable space is printed and |
| the extended partition is printed before the first logical partition. |
| |
| If a partition does not start or end on a cylinder boundary or if the |
| partition length is not divisible by the cylinder size, an asterisk |
| .RB ( * ) |
| is printed after the non-aligned sector number/count. This usually |
| indicates that a partition was created by an operating system that |
| either does not align partitions to cylinder boundaries or that used |
| different disk geometry information. If you know the disk geometry of |
| the other operating system, you could enter the geometry information |
| with the change geometry command |
| .RB ( g ). |
| |
| For the first partition on the disk and for all logical partitions, if |
| the offset from the beginning of the partition is not equal to the |
| number of sectors per track (i.e., the data does not start on the |
| first head), a number sign |
| .RB ( # ) |
| is printed after the offset. For the remaining partitions, if the |
| offset is not zero, a number sign will be printed after the offset. |
| This corresponds to the |
| .I NC |
| flag in the partitions section of the main display. |
| |
| The |
| .I partition table in raw format |
| will print the partition table ordered by partition number. It will |
| leave out all free and unusable space. The fields, from left to |
| right, are the number of the partition, the flags (in hex), the |
| starting head, sector and cylinder, the filesystem ID (in hex), the |
| ending head, sector and cylinder, the starting sector in the partition |
| and the number of sectors in the partition. The information in this |
| table can be directly translated to the |
| .IR "raw data format" . |
| |
| The partition table entries only have 10 bits available to represent |
| the starting and ending cylinders. Thus, when the absolute starting |
| (ending) sector number is on a cylinder greater than 1023, the maximal |
| values for starting (ending) head, sector and cylinder are printed. |
| This is the method used by OS/2, and thus fixes the problems |
| associated with OS/2's fdisk rewriting the partition table when it is |
| not in this format. Since Linux and OS/2 use absolute sector counts, |
| the values in the starting and ending head, sector and cylinder are |
| not used. |
| .RE |
| .TP |
| .B q |
| Quit program. This will exit the program without writing any data to |
| disk. |
| .TP |
| .B t |
| Change the filesystem type. By default, new partitions are created as |
| .I Linux |
| partitions, but since |
| .B cfdisk |
| can create partitions for other operating systems, change partition |
| type allows you to enter the hex value of the filesystem you desire. |
| A list of the know filesystem types is displayed. You can type in the |
| filesystem type at the prompt or accept the default filesystem type |
| .RI [ Linux ]. |
| .TP |
| .B u |
| Change units of the partition size display. It will rotate through |
| megabytes, sectors and cylinders. |
| .TP |
| .B W |
| Write partition table to disk (must enter an upper case W). Since |
| this might destroy data on the disk, you must either confirm or deny |
| the write by entering `yes' or `no'. If you enter `yes', |
| .B cfdisk |
| will write the partition table to disk and the tell the kernel to re-read the |
| partition table from the disk. The re-reading of the partition table does not |
| work in some cases, for example for device-mapper devices. In |
| particular case you need to inform kernel about new |
| partitions by |
| .B partprobe(8), |
| .B kpartx(8) |
| or reboot the system. |
| .TP |
| .I Up Arrow |
| .TP |
| .I Down Arrow |
| Move cursor to the previous or next partition. If there are more |
| partitions than can be displayed on a screen, you can display the next |
| (previous) set of partitions by moving down (up) at the last (first) |
| partition displayed on the screen. |
| .TP |
| .I CTRL-L |
| Redraws the screen. In case something goes wrong and you cannot read |
| anything, you can refresh the screen from the main command line. |
| .TP |
| .B ? |
| Print the help screen. |
| |
| .RE |
| All of the commands can be entered with either upper or lower case |
| letters (except for |
| .BR W rites). |
| When in a sub-menu or at a prompt to enter a filename, you can hit the |
| .I ESC |
| key to return to the main command line. |
| .SH OPTIONS |
| .TP |
| .B \-a |
| Use an arrow cursor instead of reverse video for highlighting the |
| current partition. |
| .TP |
| .B \-g |
| Do not use the geometry given by the disk driver, but try to |
| guess a geometry from the partition table. |
| .TP |
| .B \-v |
| Print the version number and copyright. |
| .TP |
| .B \-z |
| Start with zeroed partition table. This option is useful when you |
| want to repartition your entire disk. |
| .I Note: |
| this option does not zero the partition table on the disk; rather, it |
| simply starts the program without reading the existing partition |
| table. |
| .TP |
| .BI \-c " cylinders" |
| .TP |
| .BI \-h " heads" |
| .TP |
| .BI \-s " sectors-per-track" |
| Override the number of cylinders, heads and sectors per track read |
| from the BIOS. If your BIOS or adapter does not supply this |
| information or if it supplies incorrect information, use these options |
| to set the disk geometry values. |
| .TP |
| .BI \-P " opt" |
| Prints the partition table in specified formats. |
| .I opt |
| can be one or more of "r", "s" or "t". See the |
| .BR p rint |
| command (above) for more information on the print formats. |
| .SH "EXIT STATUS" |
| 0: No errors; 1: Invocation error; 2: I/O error; |
| 3: cannot get geometry; 4: bad partition table on disk. |
| .SH "SEE ALSO" |
| .BR fdisk (8), |
| .BR sfdisk (8), |
| .BR mkfs (8), |
| .BR parted (8), |
| .BR partprobe (8), |
| .BR kpartx(8) |
| .SH BUGS |
| The current version does not support multiple disks. |
| .SH AUTHOR |
| Kevin E. Martin (martin@cs.unc.edu) |
| |
| .SH AVAILABILITY |
| The cfdisk command is part of the util-linux-ng package and is available from |
| ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/. |