Updated: 2021/Apr/14

PDISK(8)                    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 partitioning scheme described in "Inside Macintosh: Devices".
     It does not support the Intel/DOS partitioning scheme supported by

     Supported options are:
     --abbr            Abbreviate the partition types shown in the partition
     --compute_size    Causes pdisk to always ignore the device size listed in
                       the partition table and compute the device size by
                       other means.
     --debug           Turns on debugging.  Doesn't add that much output, but
                       does add a new command `x' to the editing commands that
                       accesses an eclectic bunch of undocumented
     --fname           Show HFS volume names instead of partition name when
     --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 partition 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 number of the arguments separated by spaces and those
     prompts will be skipped.  The only exception 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 about it.

     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 necessary.

     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 partition.  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 partition 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 partition
     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 numbers are constrained to be a contiguous sequence.

     The t (change partition type) command allows the type of a partition to
     be changed.  Changing 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.

     fdisk(8), newfs(8)

     The pdisk utility was originally developed for MkLinux.

     Eryk Vershen

     Some people believe there should really be just one disk partitioning

     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.

NetBSD 9.99                     April 24, 2003                     NetBSD 9.99