PDISK(8) BSD System Manager's Manual PDISK(8)
pdisk -- Apple partition table editor
pdisk [-acdfhilLrv] [--abbr] [--compute_size] [--debug] [--fname] [--help] [--interactive]
[--list device] [--logical] [--readonly] [--version] [device ...]
pdisk is a menu driven program which partitions disks using the standard Apple disk parti-
tioning scheme described in "Inside Macintosh: Devices". It does not support the Intel/DOS
partitioning scheme supported by fdisk(8).
Supported options are:
--abbr Abbreviate the partition types shown in the partition list.
--compute_size Causes pdisk to always ignore the device size listed in the partition ta-
ble and compute the device size by other means.
--debug Turns on debugging. Doesn't add that much output, but does add a new com-
mand 'x' to the editing commands that accesses an eclectic bunch of undoc-
--fname Show HFS volume names instead of partition name when available.
--help Prints a short help message.
--interactive Causes pdisk to go into an interactive mode similar to the MacOS version
of the program.
--list device List the partition tables for the specified devices.
--logical Show partition limits in logical blocks. Default is physical blocks.
--readonly Prevents pdisk from writing to the device.
--version Prints the version number of pdisk.
Editing Partition Tables
An argument which is simply the name of a device indicates that pdisk should edit the parti-
tion table of that device.
The current top level editing commands are:
C (create with type also specified)
c create new partition
d delete a partition
h command help
i initialize partition map
n (re)name a partition
P (print ordered by base address)
p print the partition table
q quit editing (don't save changes)
r reorder partition entry in map
s change size of partition map
t change the type of an existing partition
w write the partition table
Commands which take arguments prompt for each argument in turn. You can also type any num-
ber of the arguments separated by spaces and those prompts will be skipped. The only excep-
tion to typeahead are the confirmation prompts on the i and w commands, since if we expect
you to confirm the decision, we shouldn't undermine that by allowing you to be precipitate
Partitions are always specified by their number, which is the index of the partition entry
in the partition map. Most of the commands will change the index numbers of all partitions
after the affected partition. You are advised to print the table as frequently as neces-
The c (create new partition) command is the only one with complicated arguments. The first
argument is the base address (in blocks) of the partition. Besides a raw number, you can
also specify a partition number followed by the letter 'p' to indicate that the first block
of the new partition should be the same as the first block of that existing free space par-
tition. The second argument is the length of the partition in blocks. This can be a raw
number or can be a partition number followed by the letter 'p' to use the size of that par-
tition or can be a number followed by 'k', 'm', or 'g' to indicate the size in kilobytes,
megabytes, or gigabytes respectively. (These are powers of 1024, of course, not powers of
1000.) The third argument is the name of the partition. This can be a single word without
quotes, or a string surrounded by single or double quotes. The type of the created parti-
tion will be Apple_UNIX_SVR2, which is the correct type for use with NetBSD. This command
will prompt for the unix filesystem slice to set in the Block Zero Block bits.
The C command is similar to the c command, with the addition of a partition type argument
after the other arguments. Choosing a type of Apple_UNIX_SVR2 will prompt for the unix
filesystem slice to set in the Block Zero Block bits.
The i (initalize) command prompts for the size of the device.
The n (name) command allows the name of a partition to be changed. Note that the various
"Apple_Driver" partitions depend on the name field for proper functioning. We are not aware
of any other partition types with this limitation.
The r (reorder) command allows the index number of partitions to be changed. The index num-
bers are constrained to be a contiguous sequence.
The t (change partition type) command allows the type of a partition to be changed. Chang-
ing the type to Apple_UNIX_SVR2 will prompt for the unix filesystem slice to set in the
Block Zero Block bits.
The w (write) command writes the partition map out. In order to use the new partition map
you must reboot.
The pdisk utility was originally developed for MkLinux.
Some people believe there should really be just one disk partitioning utility.
Filesystem volume names are out of place in a partition utility. This utility supports HFS
volume names, but not volume names of any other filesystem types.
The --logical option has not been heavily tested.
pdisk will first try to use lseek(2) with SEEK_END to compute the size of the device. If
this fails, it will try a binary search using lseek(2) and read(2) to find the end of the
device. This has been observed to fail on some raw disk devices. As a workaround, try
using the block device instead. pdisk should probably read the disklabel using the
DIOCGDINFO ioctl(2) to get the device size instead.
BSD April 24, 2003 BSD