disks(8) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

disks(8)

disks(8)                System Administration Commands                disks(8)

NAME
       disks - creates /dev entries for hard disks attached to the system

SYNOPSIS
       /usr/sbin/disks [-C] [-r rootdir]

DESCRIPTION
       devfsadm(8)  is  now  the  preferred  command  for maintaining /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 di‐
       rectory tree. It performs the following steps:

           1.     disks searches the kernel device tree to see what hard disks
                  are  attached to the system. It notes the /devices pathnames
                  for the slices on the drive and determines the physical com‐
                  ponent of the corresponding /dev/dsk or /dev/rdsk name.


           2.     The /dev/dsk and /dev/rdsk directories are checked for  disk
                  entries  −  that  is,  symbolic links with names of the form
                  cN[tN]dNsN, or cN[tN]dNpN, where N represents a decimal num‐
                  ber. cN is the logical controller number, an arbitrary  num‐
                  ber  assigned by this program to designate a particular disk
                  controller. The first controller found on the first occasion
                  this program is run on a system, is assigned number 0. tN is
                  the bus-address number of a subsidiary  controller  attached
                  to  a  peripheral  bus  such  as SCSI (the target number for
                  SCSI). dN is the number of the disk  attached  to  the  con‐
                  troller. sN is the slice number on the disk. On x86 systems,
                  pN is the FDISK partition number used by fdisk(8).


           3.     If only some of the disk entries are found in /dev/dsk for a
                  disk  that has been found under the /devices directory tree,
                  disks creates the missing symbolic links. If none of the en‐
                  tries for a particular disk are  found  in  /dev/dsk,  disks
                  checks  to see if any entries exist for other disks attached
                  to the same controller, and if so, creates new entries using
                  the same controller number as used for other  disks  on  the
                  same  controller. If no other /dev/dsk entries are found for
                  slices of disks belonging to the same physical controller as
                  the current disk, disks assigns the lowest-unused controller
                  number and creates entries for the disk  slices  using  this
                  newly-assigned controller number.




       disks  is  run  automatically  each time a reconfiguration-boot is per‐
       formed or when add_drv(8) is executed. When  invoking  disks  manually,
       first  run  drvconfig(8) to ensure /devices is consistent with the cur‐
       rent device configuration.

   Notice to Driver Writers
       disks  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  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, representing the slices and the primary
       partitions. The minor name for logical drive block interfaces  consists
       of  the  strings p5 through p36. The minor name for character (raw) in‐
       terfaces consists of a single lowercase ASCII character, a  through  a,
       followed  by  the  string ,raw, representing the slices and the primary
       partitions. The minor name for logical drive character (raw) interfaces
       consists of the string p5 through p36 followed by ,raw.


       disks performs the following translations:

           o      a through p to s0 through s15


           o      q through u to p0 through p4


           o      p5 through p36 to p5 through p36



       SPARC drivers should only use the first  eight  slices:  a  through  h,
       while  x86  drivers can use a through u, with q through u corresponding
       to fdisk(8) primary partitions. q represents the entire disk, while  r,
       s,  t,  and  u  represent up to four additional primary partitions. For
       logical drives, p5 to p36 correspond to the 32 logical drives that  are
       supported.  The  device  nodes for logical drives change dynamically as
       and when they are created or deleted.


       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:

       -C            Causes disks to remove any invalid links after adding any
                     new entries to /dev/dsk and /dev/rdsk. Invalid links  are
                     links  which  refer  to non-existent disk nodes that have
                     been removed, powered off, or are otherwise inaccessible.


       -r rootdir    Causes disks to presume that the /dev/dsk, /dev/rdsk, and
                     /devices directory trees are found under rootdir, not di‐
                     rectly under /.


ERRORS
       If 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  de‐
       termine  which  of  the two alternative logical-to-physical mappings is
       correct. The links should be manually corrected or removed  before  an‐
       other reconfiguration-boot is performed.

EXAMPLES
       Example 1 Creating Block and Character Minor Devices



       The following example demonstrates creating the block and character mi‐
       nor 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
                  */
                 snprintf(name, sizeof(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
                  */
                 snprintf(name, sizeof(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(4D)  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
       /dev/dsk/*     Disk entries (block device interface)


       /dev/rdsk/*    Disk entries (character device interface)


       /devices/*     Device special files (minor device nodes)


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ Availabilitysystem/device-administration


SEE ALSO
       devfs(4FS), dkio(4I), attributes(7), add_drv(8), devfsadm(8), fdisk(8),
       attach(9E), ddi_create_minor_node(9F)

BUGS
       disks silently ignores malformed minor device names.

Oracle Solaris 11.4               23 Jun 2025                         disks(8)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3