답변:
데비안에서는 (그리고 배포판도 마찬가지로) 모든 LVM 메타 데이터가 이미 /dev/udev/rules.d의 일부 규칙에 의해 udev에로드되었습니다. 따라서 다음과 같은 규칙 파일을 사용할 수 있습니다.
$ cat /etc/udev/rules.d/92-local-oracle-permissions.rules
ENV{DM_VG_NAME}=="vgRandom" ENV{DM_LV_NAME}=="ora_users_*" OWNER="oracle"
ENV{DM_VG_NAME}=="vgRandom" ENV{DM_LV_NAME}=="ora_undo_*" OWNER="oracle"
ENV{DM_VG_NAME}=="vgSeq" ENV{DM_LV_NAME}=="ora_redo_*" OWNER="oracle"
udevadm을 사용하여 udev 규칙의 기반이 될 수있는 종류를 찾을 수 있습니다. 모든 E:라인은 udev의 ENV에서 찾을 수 있습니다 E: DM_LV_NAME=ora_data.
# udevadm info --query=all --name /dev/dm-2
P: /devices/virtual/block/dm-2
N: dm-2
L: -100
S: block/253:2
S: mapper/vgRandom-ora_data
S: disk/by-id/dm-name-vgRandom-ora_data
S: disk/by-id/dm-uuid-LVM-d6wXWIzc7xWJkx3Tx3o4Q9huEG1ajakYr0SLSl5as3C6RoydA66sgNHxBZdpem89
S: disk/by-uuid/787651c2-e4c7-40e2-b0fc-1a3978098dce
S: vgRandom/ora_data
E: UDEV_LOG=3
E: DEVPATH=/devices/virtual/block/dm-2
E: MAJOR=253
E: MINOR=2
E: DEVNAME=/dev/dm-2
E: DEVTYPE=disk
E: SUBSYSTEM=block
E: DM_UDEV_PRIMARY_SOURCE_FLAG=1
E: DM_NAME=vgRandom-ora_data
E: DM_UUID=LVM-d6wXWIzc7xWJkx3Tx3o4Q9huEG1ajakYr0SLSl5as3C6RoydA66sgNHxBZdpem89
E: DM_SUSPENDED=0
E: DM_UDEV_RULES=1
E: DM_VG_NAME=vgRandom
E: DM_LV_NAME=ora_data
E: DEVLINKS=/dev/block/253:2 /dev/mapper/vgRandom-ora_data /dev/disk/by-id/dm-name-vgRandom-ora_data /dev/disk/by-id/dm-uuid-LVM-d6wXWIzc7xWJkx3Tx3o4Q9huEG1ajakYr0SLSl5as3C6RoydA66sgNHxBZdpem89 /dev/disk/by-uuid/787651c2-e4c7-40e2-b0fc-1a3978098dce /dev/vgRandom/ora_data
E: ID_FS_UUID=787651c2-e4c7-40e2-b0fc-1a3978098dce
E: ID_FS_UUID_ENC=787651c2-e4c7-40e2-b0fc-1a3978098dce
E: ID_FS_VERSION=1.0
E: ID_FS_TYPE=ext4
E: ID_FS_USAGE=filesystem
E: FSTAB_NAME=/dev/mapper/vgRandom-ora_data
E: FSTAB_DIR=/opt/oracle/oracle/oradata
E: FSTAB_TYPE=ext4
E: FSTAB_OPTS=noatime
E: FSTAB_FREQ=0
E: FSTAB_PASSNO=3
또한 ATTR (장치 전용) 또는 ATTRS (부모도)에서 sysfs 속성을 일치시킬 수 있습니다. 다음과 같은 모든 속성을 볼 수 있습니다.
# udevadm info --attribute-walk --name /dev/dm-2
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/devices/virtual/block/dm-2':
KERNEL=="dm-2"
SUBSYSTEM=="block"
DRIVER==""
ATTR{range}=="1"
ATTR{ext_range}=="1"
ATTR{removable}=="0"
ATTR{ro}=="0"
ATTR{size}=="41943040"
ATTR{alignment_offset}=="0"
ATTR{discard_alignment}=="0"
ATTR{capability}=="10"
ATTR{stat}=="36383695 0 4435621936 124776016 29447978 0 3984603551 342671312 0 191751864 467456484"
ATTR{inflight}==" 0 0"
이 일치는 비가 상 장치에 더 유용하지만 (예를 들어, / dev / sda1에서 시도하면 많은 결과를 얻을 수 있습니다).
udev 문서와 내 시스템의 기존 규칙을 간단히 살펴보면 아래 규칙 (추정되지 않은)은 dmsetup프로그램을 사용 하여 볼륨 정보를 검색 하는 특정 논리 볼륨을 식별해야 합니다. 대체 gggggggg볼륨 그룹 (의 UUID에 의해 vgdisplay VG_NAME) 및 lllllll논리 볼륨의 UUID (가 lvdisplay VG_NAME/LV_NAME) 또는 실행 dmsetupUUID를 찾아 수동으로 명령을.
SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", \
PROGRAM=="dmsetup info -c --noheadings -o uuid", \
RESULT=="LVM-ggggggggllllllll", \
OWNER=="letmebe", GROUP="vmusers", MODE="0660"