udev规则文件绑定盘符

314 阅读1分钟

使用多块盘时,linux重启可能会导致盘符漂移。使用udev规则文件可以添加SCSI id链接、mknode创建新块设备等方式解决盘符漂移问题。(好像centos6可以直接改sd盘符名,后面版本不允许更改了)

添加链接文件示例:

#!/bin/bash
disk="a b c d e f g h"
cat /dev/null > /etc/udev/rules.d/80-mydisk.rules
for i in ${disk}; do
    id=`/usr/lib/udev/scsi_id -g -u -d /dev/sd${i}`;
    if [ -n "$id" ]; then
        echo KERNEL=="\"sd*[!0-9]"\", ENV{DEVTYPE}=="\"disk"\", SUBSYSTEM=="\"block"\", PROGRAM=="\"/usr/lib/udev/scsi_id -g -u -d \$devnode"\", RESULT=="\"$id"\", SYMLINK+="\"ssd${i}"\", MODE="\"0660"\" >> /etc/udev/rules.d/80-mydisk.rules;
    fi
done

创建新的块设备示例:

#!/bin/bash
disk="a b c d e f g h"
cat /dev/null > /etc/udev/rules.d/80-mydisk.rules
for i in ${disk}; do
    id=`/usr/lib/udev/scsi_id -g -u -d /dev/sd${i}`;
    if [ -n "$id" ]; then
        echo KERNEL=="\"sd*[!0-9]"\", ENV{DEVTYPE}=="\"disk"\", SUBSYSTEM=="\"block"\", PROGRAM=="\"/usr/lib/udev/scsi_id -g -u -d \$devnode"\", RESULT=="\"$id"\", RUN="\"/bin/sh -c 'mknod /dev/disk00 b  $major $minor; chown root:root /dev/disk00; chmod 0660 /dev/disk00'"\" >> /etc/udev/rules.d/80-mydisk.rules;
    fi
done

dryrun测试查看日志是否可用:

udevadm test /dev/sdb

or

udevadm trigger --dry-run

重新加载规则文件生效:

udevadm trigger --type=devices --action=change
udevadm control --reload