dkctl —
program to manipulate disks
  
    | dkctl | device command
      [arg [...]] | 
dkctl allows a user or system administrator to
  manipulate and configure disks in various ways. It is used by specifying a
  disk to manipulate, the command to perform, and any arguments the command may
  require. device is the disk (wdN, sdN, ...) containing
  the wedges unless noted otherwise. If dkctl is called
  without any command, it displays strategy, cache, and all of the wedges of the
  specified device.
The following commands are supported:
  - addwedgename startblk
    blkcnt ptype
- Define a “wedge” on the specified disk starting at block
      number startblk and spanning
      blkcnt blocks. You need to create the partition
      first with fdisk(8) or
      gpt(8),
      dkctlwill just name it. The wedge will have the
      volume name name and the partition type
      ptype. Valid choices for ptype would be
      unused, swap,
      ffs, lfs,
      ext2fs, cd9660,
      ados, hfs,
      msdos, filecore,
      raidframe, ccd,
      appleufs, ntfs, and
      cgd.The device name of the virtual block device assigned to the
        wedge will be displayed after the wedge has been successfully created.
        See dk(4) for more information
        about disk wedges. 
- badsectorflush | list |
    retry
- Used for managing the kernel's bad sector list for
      wd(4) devices. The software bad
      sector list is only maintained if the option
      “WD_SOFTBADSECT” was specified on kernel configuration.
    
    
      - flush
- Clears the in kernel list of bad sectors.
- list
- Prints out the list of bad sector ranges recorded by the kernel.
- retry
- Flushes the in kernel list and then retries all of the previously
          recorded bad sectors, causing the list to self update. This option
          can only be used with character devices.
 
 
- delwedgedk
- Delete the wedge specified by its device name dk
      from the specified disk.
- getcache
- Get and display the cache enables for the specified device.
- getwedgeinfo
- Display information about the specified disk wedge.
      device in this case is the wedge name.
- keeplabel[yes | no]
- Specify to keep or drop the in-core disklabel on the last close of the
      disk device. (Keep if yes is specified, drop if
      no is specified.)
- listwedges[- -e] [- -q]
- List all of the wedges configured on the specified disk. With
      -eexit with a non-zero exit status if there are
      no wedges configured on that disk. With-q(quiet
      mode) there is no output related to the wedges that do, or do not,
    exist.
- makewedges
- Delete all wedges configured on the specified disk, and autodiscover the
      wedges again. Wedges that are in use are not deleted and conflicting or
      overlapping wedges are not created. You need to list wedges to find out
      what has changed.
- setcachenone | r |
    w | rw
    [save]
- Set the cache enables for the specified device. The enables are as
      follows:
    
    
      - none
- Disable all caches on the disk.
- r
- Enable the read cache, and disable all other caches on the disk.
- w
- Enable the write cache, and disable all other caches on the disk.
- rw
- Enable both the read and write caches on the disk.
- save
- If specified, and the cache enables are savable, saves the cache
          enables in the disk's non-volatile parameter storage.
 
 
- strategy[name]
- Get and set the disk I/O scheduler (buffer queue strategy) on the drive.
      If you do not provide a name argument, the currently
      selected strategy will be shown. To set the bufq strategy, the
      name argument must be specified.
      name must be the name of one of the built-in kernel
      disk I/O schedulers. To get the list of supported schedulers, use the
      following command:
    
    
$ sysctl kern.bufq.strategies
    
 
- synccache[force]
- Causes the cache on the disk to be synchronized, flushing all dirty write
      cache blocks to the media. If force is specified,
      the cache synchronization command will be issued even if the kernel does
      not believe that there are any dirty cache blocks in the disk's
    cache.
Note: The addwedge and
    delwedge commands only modify the in-kernel
    representation of disks; for modifying information on the disks themselves,
    refer to fdisk(8) or
    gpt(8).
The dkctl command first appeared in
  NetBSD 1.6.
The dkctl command was written by Jason
  R. Thorpe of Wasabi Systems, Inc.