Linux udev

From Lolly's Wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Persistent network interface names

If you have no /etc/udev/rules.d/70-persistent-net.rules just create one:

# 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

or add a specific interface to /etc/udev/rules.d/70-persistent-net.rules:

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


Change order with:

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

Then let udev reread the file:

# udevadm trigger --action=add --subsystem-match=net  --verbose


udev for MySQL on LVM with InnoDB on raw devices

Make your rule

root@mysql:~# cat /etc/udev/rules.d/99-lvm-mysql-permissions.rules
# udevadm info --query=all --name /dev/vg-data/lv-rawdisk-innodb01
# DM_VG_NAME=vg-data
# DM_LV_NAME=lv-rawdisk-innodb01
ENV{DM_VG_NAME}=="vg-data" ENV{DM_LV_NAME}=="lv-rawdisk-innodb*" OWNER="mysql" GROUP="mysql"

Test your rule

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
...

OK user mysql unknown... maybe I should install MySQL ;-).

After that:

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
...

Trigger your rule

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