raw - bind a Linux raw character device


SYNOPSIS

       raw /dev/raw/raw<N> <major> <minor>

       raw /dev/raw/raw<N> /dev/<blockdev>

       raw -q /dev/raw/raw<N>

       raw -qa


DESCRIPTION

       raw  is  used  to  bind  a Linux raw character device to a
       block device.  Any block device may be used: at  the  time
       of  binding,  the  device  driver does not even have to be
       accessible (it may be loaded on demand as a kernel  module
       later).

       raw  is used in two modes: it either sets raw device bind­
       ings, or it queries existing bindings.  When setting a raw
       device,  /dev/raw/raw<N> is the device name of an existing
       raw device node in the filesystem.  The  block  device  to
       which  it  is to be bound can be specified either in terms
       of its major and minor device numbers, or as a  path  name
       /dev/<blockdev> to an existing block device file.

       The  bindings already in existence can be queried with the
       -q option, with is used either with a raw device  filename
       to  query  that one device, or with the -a option to query
       all bound raw devices.

       Once bound to a block device, a raw device can be  opened,
       read  and  written, just like the block device it is bound
       to.  However, the raw device does not behave exactly  like
       the block device.  In particular, access to the raw device
       bypasses the kernel's block buffer cache entirely: all I/O
       is done directly to and from the address space of the pro­
       cess performing the I/O.  If the underlying  block  device
       driver  can  support  DMA,  then no data copying at all is
       required to complete the I/O.

       Because raw I/O involves direct hardware access to a  pro­
       cess's  memory, a few extra restrictions must be observed.
       All I/Os must be correctly aligned in memory and on  disk:
       they  must  start at a sector offset on disk, they must be
       an exact number of sectors long, and the  data  buffer  in
       virtual  memory  must also be aligned to a multiple of the
       sector size.  The  sector  size  is  512  bytes  for  most
       devices.


OPTIONS

       -q     Set query mode.  raw will query an existing binding
              instead of setting a new one.

              should be queried.

       -h     provides a usage summary.


BUGS

       The  Linux  dd  (1)  command  does not currently align its
       buffers correctly, and so cannot be used on raw devices.

       Raw I/O devices do not maintain cache coherency  with  the
       Linux  block  device  buffer cache.  If you use raw I/O to
       overwrite data already in the  buffer  cache,  the  buffer
       cache  will  no  longer  correspond to the contents of the
       actual storage device underneath.  This is deliberate, but
       is regarded either a bug or a feature depending on who you
       ask!


AUTHOR

       Stephen Tweedie (sct@redhat.com)


Man(1) output converted with man2html