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ć?
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ć?
Odpowiedzi:
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_data
Linia 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).
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 dmsetup
programu do pobrania informacji o wolumenie. Zastąp gggggggg
identyfikatorem UUID grupy woluminów ( vgdisplay VG_NAME
) i lllllll
identyfikatorem UUID woluminu logicznego ( lvdisplay VG_NAME/LV_NAME
) lub uruchom dmsetup
polecenie 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"