Trwała zmiana własności (lub grupy) wolumenu LVM

9

Jak mogę na stałe zmienić własność (lub przynajmniej grupę) wolumenu LVM?

Uznałem, że muszę użyć udev, ale nie wiem, jak powinna wyglądać reguła?

Powiedzmy, że chcę zmienić własność LVM / dysku na użytkownika / grupę virtualbox, jak to zrobić?

Šimon Tóth
źródło
O jakim systemie operacyjnym mówisz? Które LVM (OS czy Veritas?)
Nils

Odpowiedzi:

14

W Debianie (i mam nadzieję, że także w twojej dystrybucji) wszystkie metadane LVM są już załadowane do udev (zgodnie z niektórymi regułami w /lib/udev/rules.d). Możesz więc użyć pliku reguł takiego jak ten:

$ 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"

Możesz użyć udevadm, aby dowiedzieć się, na jakich rzeczach możesz oprzeć swoje reguły udev. Wszystkie E:linie można znaleźć w ENV w udev, np. E: DM_LV_NAME=ora_dataLinia pasująca do jednej z powyższych reguł:

# 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

Ponadto możesz dopasowywać atrybuty sysfs w ATTR (tylko urządzenie) lub ATTRS (także rodzice). Możesz zobaczyć wszystkie takie atrybuty:

# 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"

Chociaż to dopasowanie jest bardziej przydatne w przypadku urządzeń innych niż wirtualne (np. Otrzymasz dużo danych wyjściowych, jeśli wypróbujesz je na / dev / sda1).

derobert
źródło
0

Po szybkim spojrzeniu na dokumentację udev i istniejące reguły w moim systemie, reguła poniżej (niesprawdzona) powinna identyfikować konkretny wolumin logiczny, używając dmsetupprogramu do pobrania informacji o wolumenie. Zastąp ggggggggidentyfikatorem UUID grupy woluminów ( vgdisplay VG_NAME) i lllllllidentyfikatorem UUID woluminu logicznego ( lvdisplay VG_NAME/LV_NAME) lub uruchom dmsetuppolecenie ręcznie, aby znaleźć identyfikator UUID.

SUBSYSTEM=="block", KERNEL=="dm-[0-9]*", \
PROGRAM=="dmsetup info -c --noheadings -o uuid", \
RESULT=="LVM-ggggggggllllllll", \
OWNER=="letmebe", GROUP="vmusers", MODE="0660"
Gilles „SO- przestań być zły”
źródło