# /etc/udev/rules/64-device-mapper.rules: device naming rules for udev # $Header: /root/magellan-cvs/src/udev/udev-device-mapper.rules.magellan,v 1.1 2007-05-17 19:25:02 niro Exp $ # # There are a number of modifiers that are allowed to be used in some # of the different fields. They provide the following subsitutions: # %n - the "kernel number" of the device. # For example, 'sda3' has a "kernel number" of '3' # %k - the kernel name for the device. # %M - the kernel major number for the device # %m - the kernel minor number for the device # %b - the bus id for the device # %c - the string returned by the PROGRAM. (Note, this doesn't work within # the PROGRAM field for the obvious reason.) # %s{filename} - the content of a sysfs attribute. # %% - the '%' char itself. # # Try not to modify this file, if you wish to change things, create a new rule # file that can be run before this one. # # device mapper links hook into "change" events, when the dm table # becomes available; some table-types must be ignored KERNEL=="device-mapper", NAME="mapper/control" KERNEL!="dm-*", GOTO="device_mapper_end" ACTION!="add|change", GOTO="device_mapper_end" # lookup device name # use dmsetup, until devmap_name is provided by sys-fs/device-mapper PROGRAM=="/sbin/dmsetup -j %M -m %m --noopencount --noheadings -c -o name info", ENV{DM_NAME}="%c" # do not do anything if dmsetup does not provide a name ENV{DM_NAME}=="", NAME="", OPTIONS="ignore_device" # ignore luks crypt devices while not fully up ENV{DM_NAME}=="temporary-cryptsetup-*", NAME="", OPTIONS="ignore_device" # use queried name ENV{DM_NAME}=="?*", NAME="mapper/$env{DM_NAME}" SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}" PROGRAM!="/sbin/dmsetup status -j %M -m %m", GOTO="device_mapper_end" RESULT=="|*snapshot*|*error*", GOTO="device_mapper_end" IMPORT{program}="vol_id --export $tempnode" OPTIONS="link_priority=50" ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_SAFE}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_SAFE}" ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_SAFE}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_SAFE}" LABEL="device_mapper_end"