Create and manage partitions on a hard disk
fdisk [-fpz] [-B loader] drive [cmd [args]]
- -B loader
- Use the 512-byte file named by loader as the primary bootstrap loader for the device when instructed to write a boot loader to the disk. The default is to install a loader that's built into the fdisk utility.
- Force the boot loader to be written on command, even if it isn't possible to save an existing old loader to a mounted filesystem. In noninteractive use with the loader command, this forces the loader to be written in cases where the command would otherwise be aborted. In interactive mode, you're queried about the operation if you didn't specify -f; the operation simply proceeds without saving the old loader if you did specify -f.
- Pause before starting.
- Zero the partition table (interactive mode only).
- The disk drive to partition. This must name a block-special file (e.g. /dev/fd1, /dev/hd0).
- [cmd [args]]
- An installation command, as described below.
The fdisk utility lets you create and manage partitions on a hard disk (typically a rotating medium, but fdisk works on other devices, such as compact flash and USB flash, if they support PC-style Master Boot Records (MBRs) and partitions). The partition information, which is kept in the disk's first physical block, matches that used by DOS.
On some platforms, fdisk supports a full-screen interface; see Interactive mode, below.
Before creating a QNX 4 partition for the first time, you must first start the hard disk driver:
You should then execute the fdisk command to partition your disk:
fdisk /dev/hd0 add
The QNX 4 filesystem doesn't automatically relearn any changes that you make to the partition table with fdisk. You must either slay and restart the filesystem/driver (devb-* ), use mount -e /dev/hd0 to recognize the new partitions and update the contents of /dev, or reboot.
The fdisk utility recognizes the following partition types. If you add a partition, use the command shown to initialize it.
|Type||Filesystem||Shared object||Initialize with:||Check with:|
|1, 4, or 6||DOS||fs-dos.so|
|11, 12, or 14||FAT32||fs-dos.so|
|177, 178, or 179||Power-Safe||fs-qnx6.so||mkqnx6fs|
For more information, see the Filesystems chapter of the System Architecture guide.
The fdisk utility supports the following commands directly from the command line:
- add [ args ]
- Add a new partition entry of the size and type specified. If
fdisk can't locate sufficient unallocated disk space
to satisfy your request, it allocates the largest available portion
of the disk (if any). Here are the arguments for add:
- Make the added partition bootable. If another partition was already flagged as the primary boot partition, the flag is turned off for it.
- -c start,end
- The start and end for the partition to use.
- -p percent
- The percentage of the largest contiguous space the added
partition should use.
The default is 100%.
If you specify the -c option, the -p option is ignored.
- -s slot
- The slot in the partition table to use. The default is the first open slot.
- -t type
- The type of partition to add (0 - 255). The default is 77.
- boot [ args ]
- Turn on the boot flag for the indicated partition. If another partition
was already flagged as the primary boot partition, the flag is turned
off for it. Here are the arguments for boot:
- -s slot
- Boot the partition in the selected slot.
- -t type
- Boot the partition of the selected type.
- delete [ args ]
- Delete the specified partitions. Here are the arguments for delete:
- Delete all partitions.
- -s slot
- Delete the partition in the selected slot.
- -t type
- Delete this type of partition.
- Show the mount information for the raw drive.
The fdisk utility makes a devctl(DCMD_CAM_DEVINFO) call to obtain the cylinder, head, sectors per track, and total sectors counts. Multiplying the first three values together is the classic method of calculating the total number of sectors.
However, some hard drives employ zoned bit recording, so it's impossible to precisely map the number of sectors per track and other fields. As a result, the total number of sectors returned from devctl() and the total number of sectors that were calculated might not match. In this case, fdisk displays a warning.
- Write the QNX loader to the disk.
- query [ args ]
- Print the number of cylinders to standard output.
Here are the arguments for query:
- Print the total amount of free space.
- -s slot
- Query the partition in the selected slot.
- Print the total amount of space.
- -t type
- Query the partition of the selected type.
- Display the partition table.
On some platforms, fdisk is a fullscreen, interactive program that's fairly self-explanatory. When you invoke fdisk, you'll see a screen similar to this one (assuming your disk is already partitioned):
FDISK Ignore Next Prev 1 2 3 4 Change Delete Boot Unboot Restore Loader Save Quit _____OS_____ Start End ______Number_____ Size Boot name type Cylinder Cylinder Cylinders Blocks </comment> 1. QNX6 (177) 0 7648 7649 122881122 60000 MB 2. QNX6 (178) 7649 9963 2315 37190475 18159 MB * 3. ______ (___) _______ _______ _______ _________ _____ 4. ______ (___) _______ _______ _______ _________ _____ Choose a partition by typing the partition number OR moving the pointer with the UP/DOWN arrows. Then, choose one of the actions on the top line of the screen. Drive : /dev/hd0 Config: 255 Heads Size : 78159 Mbytes 63 Sectors/track Loader: Unknown 9964 Cylinders 512 Block Size Last cylinder is 9963
You'll see the available commands displayed at the top of the screen. To select a command, either type its first letter or move the cursor to the command (with the arrow keys) and press Enter.
The commands are:
|Next||Move the pointer to the next entry.|
|Prev||Move the pointer to the previous entry.|
|1, 2, 3, or 4||Move the pointer to the indicated entry.|
|Change||Change the selected partition (see below).|
|Delete||Delete the selected partition.|
|Boot||Turn on the boot flag for the selected partition. If another partition was already flagged as the primary boot partition, the flag is turned off for it.|
|Unboot||Turn off the boot flag for the selected partition.|
|Restore||Restore the previous non-QNX bootstrap loader.|
|Loader||Change the bootstrap loader to the QNX loader.|
|Save||Save all changes and quit. This writes to the device and is irrevocable.|
|Quit||Quit without saving changes.|
- Save the details about the partition (e.g. by writing them on a piece of paper), because fdisk blanks the fields as you edit them.
- You have to enter the partition's type number and the start and end cylinders; fdisk calculates the other information for you. Press Enter after typing each value.
- If the partition was bootable before you changed it, use the Boot command to make it bootable again.
Create a QNX 4 partition that occupies half the disk, or the largest available space if there isn't a space big enough for a new partition that occupies half the disk:
fdisk /dev/hd0 add -t 77 -p 50
Do the same, but make the partition bootable:
fdisk /dev/hd0 add -b -t 77 -p 50
Continuing from either of the above examples, reread the partition table, set up a QNX 4 filesystem on the new partition, and then mount it:
mount -e /dev/hd0 dinit -h /dev/hd0t77 mount -t qnx4 /dev/hd0t77 /mnt/q4fs
Create a bootable partition for a Power-Safe filesystem, reread the partition table, format the new partition, and then mount it:
fdisk /dev/hd0 add -b -t 179 -p 50 mount -e /dev/hd0 mkqnx6fs /dev/hd0t179 mount -t qnx6 /dev/hd0t179 /mnt/psfs
- An error occurred; fdisk writes error messages to standard error.