# Locating and Fixing Device Files

In order for user-space programs to access EVMS volumes, device files are created in the `/dev/evms` directory for each volume that is exported by EVMS. Device files are created every time the Engine is opened and saves changes, so you can always see the current state of the volume configuration in the `/dev/evms` directory.

A variety of namespaces exist within the `/dev/evms` directory. Each plug-in defines and maintains its own namespace. The most common names will be those of DOS segments. On a non-EVMS Linux system, disk drives and drive partitions appear as files in `/dev`. The same names are maintained in EVMS by the local device manager and the DOS segment manager. Corresponding device files are created in `/dev/evms`. An example of the naming convention follows:

    /dev/hda  -> /dev/evms/hda
    /dev/hda1 -> /dev/evms/hda1
    /dev/sdb  -> /dev/evms/sdb
    /dev/sdb5 -> /dev/evms/sdb5

EVMS features create logical volumes with persistent names. The names of these volumes are used to create the appropriate device file in `/dev/evms`. For example, if an EVMS snapshot was created and made into a volume named "Thursday_Snapshot," the file would appear as `/dev/evms/Thursday_Snapshot`.

The Linux LVM plug-in is an example of a plug-in specific namespace that uses its own namespace (`/dev/evms/lvm`). In this directory, additional directories are created for each active volume group. Device files representing the LVM logical volumes are created in the appropriate group directory, as demonstrated in the following example:

    /dev/Group1/Volume1 -> /dev/evms/lvm/Group1/Volume1

Namespaces exist for other plug-ins. Currently the OS/2 LVM is in `/dev/evms/os2`, the AIX LVM is in `/dev/evms/aix`, and the MD is in `/dev/evms/md`.

## CAUTION

When using EVMS you should perform all filesystem mounts using the EVMS device nodes. Failure to do so could result in loss of data when running EVMS configuration tools.

## devfs

EVMS supports the kernel device file system (devfs). If you have devfs enabled in the kernel and mounted in your file system tree, you will see the device files for your volumes immediately upon boot. devfs is the preferred method for running EVMS because it ensures that the minor numbers EVMS dynamically assigns to compatibility volumes will never be out of sync with the minor numbers of the device files for those volumes.

## Fixing EVMS Device Nodes

On systems that are not running devfs, the device nodes in the `/dev/evms` directory might become out of sync with the volumes that are exported by the EVMS kernel. The following list details potential problems that could occur if you do not use devfs:

- Nodes might not exist for volumes that are exported.

- Nodes might have the wrong minor number associated with them.

- Nodes might exist for volumes that are no longer exported by the EVMS kernel.

Starting one of the user interfaces alleviates the problems listed above. The EVMS Engine will update the device nodes in the `/dev/evms` so that the nodes agree with the volumes that are exported by the EVMS kernel.

The `evms_devnode_fixup` program provides an alternative means of fixing the device nodes in the `/dev/evms` directory by updating the device nodes without the overhead of starting the Engine.

`evms_devnode_fixup` can be run as a daemon by specifying the `-d` option. In daemon mode, `evms_devnode_fixup` will first fix the device nodes in the `/dev/evms` directory. It then loops, waiting for notifications of volume changes from the EVMS Runtime. On each notification, `evms_devnode_fixup` fixes the device nodes in the `/dev/evms` directory.