vol_id - probe filesystem and read label and uuid

This program is normally called from a udev rule, to provide udev with the
filesystem type of a volume and the label and uuid to name a device node.
vol_id opens the blockdevice node specified at the commandline. The following
commandline switches are supported to specify what vol_id should print:
  --export        export key/value pairs
  --type          filesystem type
  --label         filesystem label
  --label-raw     raw label
  --uuid          filesystem uuid
  --skip-raid     don't probe for raid
  --probe-all     find possibly conflicting signatures
  --help

vol_id will only return successful if the string asked for, is not
empty. All trailing whitespace will be removed, spaces replaced by underscore
and slashes ignored.

fstype                 probe  label  uuid  version
--------------------------------------------------
linux swap             *      *      *     *
ext                    *      *      *     *
reiserfs jr/3.5/3.6/4  *      *      *     *
fat (12, 16, 32)       *      *      *     *
ntfs                   *      *      *     *
jfs                    *      *      *     -
xfs                    *      *      *     -
hfs (plus, wrapped)    *      *      *     -
udf                    *      *      -     -
iso9660                *      *      -     -
ufs                    *      -      -     -
cramfs                 *      *      -     -
sysv                   *      *      -     *
luks                   *      -      *     -
hpfs                   *      -      -     -
romfs                  *      *      -     -
squashfs               *      -      -     -
minix                  *      -      -     *
ocfs (1, 2)            *      *      *     *
vxfs                   *      -      -     *
nss (netware)          *             *     *
gfs, gfs2              *      *      -     -
oracleasm              *      *      -     -

Raid members are detected to prevent the probing for a filesystem
-----------------------------------------------------------------
linux raid (md)        *      *      *     *
LVM 1                  *      -      -     -
LVM 2                  *      -      -     *
ddf                    *      -      *     *
highpoint              *      -      -     -
isw_raid               *      -      -     -
lsi_raid               *      -      -     -
nvidia_raid            *      -      -     -
promise_raid           *      -      -     -
silicon_raid           *      -      -     -
via_raid               *      -      -     -
jmicron                *      -      -     -
adaptec                *      -      -     -

To give it a try, you may call it on the commandline:
  $ extras/volume_id/vol_id --export /dev/sda6
  ID_FS_USAGE=filesystem
  ID_FS_TYPE=ext3
  ID_FS_VERSION=1.0
  ID_FS_UUID=3e999973-00c9-4917-9442-b7633bd95b9e
  ID_FS_LABEL=devel
  ID_FS_LABEL_SAFE=devel

  $ extras/volume_id/vol_id --label /dev/sda6
  devel

  $ extras/volume_id/vol_id --type /dev/sda6
  ext3


Any comment/questions/concerns to me:
  Kay Sievers <kay.sievers@vrfy.org>
