Linux udev

From Lolly's Wiki
Revision as of 22:22, 25 November 2021 by Lollypop (talk | contribs) (Text replacement - "<source" to "<syntaxhighlight")
Jump to navigationJump to search

udev

Persistent network interface names

If you have no /etc/udev/rules.d/70-persistent-net.rules just create one: <syntaxhighlight lang=bash>

  1. lshw -C network | awk '/logical name:/{iface=$NF;}/serial:/{mac=$NF;printf "SUBSYSTEM==\"net\", ACTION==\"add\", DRIVERS==\"?*\", ATTR{address}==\"%s\", ATTR{dev_id}==\"0x0\", ATTR{type}==\"1\", KERNEL==\"eth*\", NAME=\"%s\"\n",mac,iface;}' >> /etc/udev/rules.d/70-persistent-net.rules

</source> or add a specific interface to /etc/udev/rules.d/70-persistent-net.rules: <syntaxhighlight lang=bash>

  1. MATCHADDR="00:50:56:a1:20:22" INTERFACE=eth2 /lib/udev/write_net_rules

</source>


Change order with: <syntaxhighlight lang=bash>

  1. vi /etc/udev/rules.d/70-persistent-net.rules

</source> Then let udev reread the file: <syntaxhighlight lang=bash>

  1. udevadm trigger --action=add --subsystem-match=net --verbose

</source>


udev for MySQL on LVM with InnoDB on raw devices

Make your rule

<syntaxhighlight lang=bash> root@mysql:~# cat /etc/udev/rules.d/99-lvm-mysql-permissions.rules

  1. udevadm info --query=all --name /dev/vg-data/lv-rawdisk-innodb01
  2. DM_VG_NAME=vg-data
  3. DM_LV_NAME=lv-rawdisk-innodb01

ENV{DM_VG_NAME}=="vg-data" ENV{DM_LV_NAME}=="lv-rawdisk-innodb*" OWNER="mysql" GROUP="mysql" </source>

Test your rule

<syntaxhighlight lang=bash> root@mysql:~# ls -al /dev/vg-data/lv-rawdisk-innodb01 lrwxrwxrwx 1 root root 7 Aug 12 14:45 /dev/vg-data/lv-rawdisk-innodb01 -> ../dm-0

root@mysql:~# udevadm test /class/block/dm-0 ... read rules file: /etc/udev/rules.d/99-lvm-mysql-permissions.rules specified user 'mysql' unknown ... </source> OK user mysql unknown... maybe I should install MySQL ;-).

After that: <syntaxhighlight lang=bash> root@mysql:~# id -a mysql uid=108(mysql) gid=114(mysql) groups=114(mysql)

root@mysql:~# udevadm test /class/block/dm-0 ... OWNER 108 /etc/udev/rules.d/99-lvm-mysql-permissions.rules:4 GROUP 114 /etc/udev/rules.d/99-lvm-mysql-permissions.rules:4 handling device node '/dev/dm-0', devnum=b252:0, mode=0660, uid=108, gid=114 set permissions /dev/dm-0, 060660, uid=108, gid=114 ... </source>

Trigger your rule

<syntaxhighlight lang=bash> root@mysql:~# udevadm trigger root@mysql:~# ls -alL /dev/vg-data/lv-rawdisk-innodb01 brw-rw---- 1 mysql mysql 252, 0 Aug 12 15:07 /dev/vg-data/lv-rawdisk-innodb01 </source>