Linux中有多种识别存储设备的方式,使用正确的方式识别设备顺序避免访问到错误的位置很重要,尤其是安装或格式化的时候。
文件系统标识符
文件系统标识符用来标识一个在块设备上创建的文件系统。标识符同时也是文件系统属性的一部分。如果你拷贝了一个文件系统到另一个设备,文件系统标识符仍然保持不变。但是如果重置设备,比如格式化就会丢失这些属性。
系统标识符包括 UUID 和 label
- 使用UUID属性可以查看目录 /dev/disk/by-uuid/
- 使用label属性可以查看目录 /dev/disk/by-label/
使用lsblk工具列出设备UUID和标签属性
$ lsblk -fs /dev/sda1
设备标识符
设备标识符与块设备绑定,如一个磁盘或分区,格式化不会丢失这个属性
设备标识符包括 WWID ,partition UUID 和path
- 使用 WWID 属性可以查看目录 /dev/disk/by-id/
- 使用 partition UUID属性可以查看目录 /dev/disk/by-partuuid/
- 使用 path 属性可以查看目录 /dev/disk/by-path/
WWID与DM multipath
World Wide Identifier(WWID)与 Device Mapper Multipath配置文件中的非持久设备名称对应。如果设备在系统中有多种设备路径,DM使用WWID检测。DM在目录/dev/mapper/中保存一个伪设备,当DM Multipath的user_friendly_names特性开启时,WWID被映射到一个比较友好的名字上。
udev设备命名约束
linux系统使用udev机制管理/dev/disk/目录中设备命名,udev机制对所有设备都有效,虽然udev命名属性是持久的,因为它们不会在系统重新启动时自动更改,但有些属性也是可以配置的。
需要注意一下几点
- udev执行udev event时设备可能不可用
- 内核可能会在任何时间执行udev event 导致/dev/disk/设备连接被删除
- 由于要执行udev event从内核发现设备到/dev/disk/可用之间可能有延迟
- 外部由udev规则出发的程序可能会打开设备,导致设备对其他用户不可用
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。