首页/系统/服务器硬件与 RAID 速查/udev 持久化命名与盘符稳定
阵列卡管理68 条

udev 持久化命名与盘符稳定

重启后 /dev/sdX 可能变化,脚本与 fstab 应使用 UUID、WWN 或 udev 规则建立稳定命名;RAID 逻辑盘与单盘的稳定标识方式不同。

为什么要持久化命名

/dev/sdX 的编号由内核探测顺序决定,重启、换卡、插拔盘之后都可能变化,直接写进 fstab 或脚本会导致挂载失败,甚至把数据挂到错误的盘上。稳定标识有三条路:用文件系统 UUID、用盘的 WWN、或者用 udev 规则按属性建立自己的符号链接。/dev/disk/by-uuid、by-id、by-path 就是系统按这些思路生成的目录。

基本信息

稳定标识来源文件系统 UUID、盘 WWN、物理路径
系统目录/dev/disk/by-uuid、by-id、by-path
查看工具blkid、lsblk、ls -l /dev/disk/by-id
自定义方式udev 规则生成 SYMLINK
权限要求root(写规则或改分区标识)

典型使用场景

  • 把挂载项写进 fstab 之前确认稳定标识
  • 为数据盘建立固定名称供运维脚本使用
  • 迁移磁盘到新机器后重新确认标识
  • 排查重启后挂载失败的问题
  • 多盘机器上区分系统盘与数据盘
  • 为备份任务指定明确的源盘
  • 为监控项绑定不会漂移的设备标识

查看稳定标识

查看稳定标识
lsblk -o NAME,SIZE,SERIAL,WWN           # 设备名与序列号、WWN 一次看到
blkid /dev/sda1                        # 取文件系统 UUID 与类型
ls -l /dev/disk/by-id/ | grep -i wwn    # 查看按 WWN 生成的符号链接
ls -l /dev/disk/by-uuid/                # 查看按 UUID 生成的符号链接
udevadm info --query=all --name=/dev/sdb | head -20   # 查看可用于规则的属性

三种稳定标识

方式依据适用场景
by-uuid文件系统 UUID挂载项与文件系统层
by-id 或 WWN盘的硬件标识盘级管理与直通场景
by-path控制器与端口路径定位同一物理位置的设备
自定义 udev 规则任意可用属性业务需要固定命名时

udev 规则示例

udev 规则示例
ACTION=="add", SUBSYSTEM=="block", ENV{ID_WWN_WITH_EXTENSION}=="0x5000c500aabbccdd", SYMLINK+="disk/data01"
RAID 逻辑盘用 WWN 或阵列 UUID 做稳定标识;单盘的命名规则只适用于直通或 JBOD 场景。
符号链接是按属性生成的,属性缺失时链接不会出现:规则写完触发一次 udev 再用 ls 确认,并留意规则文件的命名排序,避免被前面的规则抢先命中。
更换磁盘后要同步更新标识:新盘的 WWN 与序列号都变了,旧的规则与 fstab 条目不会自动跟着变,这是换盘流程里最容易被漏掉的一步。

易错点

  • 在硬件 RAID 上按物理盘建 udev 符号链接:系统只能看到逻辑盘,规则永远不会命中
  • fstab 里写 /dev/sdX:换卡或改盘序后启动挂载失败,严重时还会挂到错误的盘上
  • 只用序列号做唯一键而不加厂家前缀:不同厂商可能给出相同或高度相似的串,规则会误命中
  • 改规则前不做验证:写错会让设备被忽略或反复重命名,修改前先在测试机验证并保留带外恢复通道

数据来源与参考

  • man 7 udev
  • man 8 blkid
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌