Contained WithinFind More DocumentationFeatured Support Resources | Download this book in PDF (8966 KB)
disks(1M)Name | Synopsis | Description | Options | Errors | Examples | Files | Attributes | See Also | Bugs Name
Synopsis/usr/sbin/disks [-C] [-r rootdir] Description
devfsadm(1M) is now the preferred command for /dev and should be used instead of disks. disks creates symbolic links in the /dev/dsk and /dev/rdsk directories pointing to the actual disk device special files under the /devices directory tree. It performs the following steps: disks is run automatically each time a reconfiguration-boot is performed or when add_drv(1M) is executed. When invoking disks(1M) manually, first run drvconfig(1M) to ensure /devices is consistent with the current device configuration. Notice to Driver Writersdisks considers all devices with a node type of DDI_NT_BLOCK, DDI_NT_BLOCK_CHAN, DDI_NT_CD, DDI_NT_BLOCK_WWN or DDI_NT_CD_CHAN to be disk devices. disks(1M) requires the minor name of disk devices obey the following format conventions. The minor name for block interfaces consists of a single lowercase ASCII character, a through u. The minor name for character (raw) interfaces consists of a single lowercase ASCII character, a through u, followed by ,raw. disks translates a through p to s0 through s15, while it translates q through u to p0 through p4. SPARC drivers should only use the first 8 slices: a through h, while x86 drivers can use a through u, with q through u corresponding to fdisk(1M) partitions. q represents the entire disk, while r, s, t, and u represent up to 4 additional partitions. To prevent disks from attempting to automatically generate links for a device, drivers must specify a private node type and refrain from using a node type: DDI_NT_BLOCK, DDI_NT_BLOCK_CHAN, DDI_NT_CD, or DDI_NT_CD_CHAN when calling ddi_create_minor_node(9F). Options
The following options are supported: ErrorsIf disks finds entries of a particular logical controller linked to different physical controllers, it prints an error message and exits without making any changes to the /dev directory, since it cannot determine which of the two alternative logical-to-physical mappings is correct. The links should be manually corrected or removed before another reconfiguration-boot is performed. ExamplesExample 1 Creating Block and Character Minor DevicesThe following example demonstrates creating the block and character minor devices from within the xkdisk driver's attach(9E) function. #include <sys/dkio.h>
/*
* Create the minor number by combining the instance number
* with the slice number.
*/
#define MINOR_NUM(i, s) ((i) << 4 | (s))
int
xkdiskattach(dev_info_t *dip, ddi_attach_cmd_t cmd)
{
int instance, slice;
char name[8];
/* other stuff in attach... */
instance = ddi_get_instance(dip);
for (slice = 0; slice < V_NUMPAR; slice++) {
/*
* create block device interface
*/
sprintf(name, "%c", slice + 'a');
ddi_create_minor_node(dip, name, S_IFBLK,
MINOR_NUM(instance, slice), DDI_NT_BLOCK_CHAN, 0);
/*
* create the raw (character) device interface
*/
sprintf(name,"%c,raw", slice + 'a');
ddi_create_minor_node(dip, name, S_IFCHR,
MINOR_NUM(instance, slice), DDI_NT_BLOCK_CHAN, 0);
}
}
Installing the xkdisk disk driver on a Sun Fire 4800, with the driver controlling a SCSI disk (target 3 attached to an isp(7D) SCSI HBA) and performing a reconfiguration-boot (causing disks to be run) creates the following special files in /devices. # ls -l /devices/ssm@0,0/pci@18,700000/pci@1/SUNW,isptwo@4/ brw-r----- 1 root sys 32, 16 Aug 29 00:02 xkdisk@3,0:a crw-r----- 1 root sys 32, 16 Aug 29 00:02 xkdisk@3,0:a,raw brw-r----- 1 root sys 32, 17 Aug 29 00:02 xkdisk@3,0:b crw-r----- 1 root sys 32, 17 Aug 29 00:02 xkdisk@3,0:b,raw brw-r----- 1 root sys 32, 18 Aug 29 00:02 xkdisk@3,0:c crw-r----- 1 root sys 32, 18 Aug 29 00:02 xkdisk@3,0:c,raw brw-r----- 1 root sys 32, 19 Aug 29 00:02 xkdisk@3,0:d crw-r----- 1 root sys 32, 19 Aug 29 00:02 xkdisk@3,0:d,raw brw-r----- 1 root sys 32, 20 Aug 29 00:02 xkdisk@3,0:e crw-r----- 1 root sys 32, 20 Aug 29 00:02 xkdisk@3,0:e,raw brw-r----- 1 root sys 32, 21 Aug 29 00:02 xkdisk@3,0:f crw-r----- 1 root sys 32, 21 Aug 29 00:02 xkdisk@3,0:f,raw brw-r----- 1 root sys 32, 22 Aug 29 00:02 xkdisk@3,0:g crw-r----- 1 root sys 32, 22 Aug 29 00:02 xkdisk@3,0:g,raw brw-r----- 1 root sys 32, 23 Aug 29 00:02 xkdisk@3,0:h crw-r----- 1 root sys 32, 23 Aug 29 00:02 xkdisk@3,0:h,raw /dev/dsk will contain the disk entries to the block device nodes in /devices # ls -l /dev/dsk /dev/dsk/c0t3d0s0 -> ../../devices/[...]/xkdisk@3,0:a /dev/dsk/c0t3d0s1 -> ../../devices/[...]/xkdisk@3,0:b /dev/dsk/c0t3d0s2 -> ../../devices/[...]/xkdisk@3,0:c /dev/dsk/c0t3d0s3 -> ../../devices/[...]/xkdisk@3,0:d /dev/dsk/c0t3d0s4 -> ../../devices/[...]/xkdisk@3,0:e /dev/dsk/c0t3d0s5 -> ../../devices/[...]/xkdisk@3,0:f /dev/dsk/c0t3d0s6 -> ../../devices/[...]/xkdisk@3,0:g /dev/dsk/c0t3d0s7 -> ../../devices/[...]/xkdisk@3,0:h and /dev/rdsk will contain the disk entries for the character device nodes in /devices # ls -l /dev/rdsk /dev/rdsk/c0t3d0s0 -> ../../devices/[...]/xkdisk@3,0:a,raw /dev/rdsk/c0t3d0s1 -> ../../devices/[...]/xkdisk@3,0:b,raw /dev/rdsk/c0t3d0s2 -> ../../devices/[...]/xkdisk@3,0:c,raw /dev/rdsk/c0t3d0s3 -> ../../devices/[...]/xkdisk@3,0:d,raw /dev/rdsk/c0t3d0s4 -> ../../devices/[...]/xkdisk@3,0:e,raw /dev/rdsk/c0t3d0s5 -> ../../devices/[...]/xkdisk@3,0:f,raw /dev/rdsk/c0t3d0s6 -> ../../devices/[...]/xkdisk@3,0:g,raw /dev/rdsk/c0t3d0s7 -> ../../devices/[...]/xkdisk@3,0:h,raw Files
AttributesSee attributes(5) for descriptions of the following attributes:
See Alsoadd_drv(1M), devfsadm(1M), fdisk(1M), attributes(5), isp(7D), devfs(7FS), dkio(7I), attach(9E), ddi_create_minor_node(9F) Bugsdisks silently ignores malformed minor device names. Name | Synopsis | Description | Options | Errors | Examples | Files | Attributes | See Also | Bugs |
||||