Mic*_*ies 9 udev fdisk uuid disk
在我的系统 (Debian) 上,我可以看到UUID
所有磁盘分区的标识符(即/dev/sda1
, dev/sda2
, ..)
ls /dev/disk/by-uuid/
Run Code Online (Sandbox Code Playgroud)
但是,我没有看到自己的UUID
标识符/dev/sda
。是否可以引用整个磁盘UUID
?
我需要这个是因为我想引用一个特定的磁盘,我不能相信它会被调用/dev/sda
。
@don_crissti 建议的解决方案很棒。但是,我希望相同型号/制造商的所有硬盘的 UUID 相同,而不是序列号唯一。
使用udevadm
,我可以看到磁盘属性:
udevadm info -n /dev/sda -a
ATTRS{model}=="Samsung SSD 840 "
ATTRS{vendor}=="0x8086"
ATTRS{class}=="0x010700"
ATTRS{device}=="0x1d6b"
....
Run Code Online (Sandbox Code Playgroud)
如何UUID
从这些属性生成 a ,以便相同的 Model/Manufacturer 磁盘将具有相同的UUID
?
don*_*sti 12
下面的符号链接/dev/disk/by-uuid/
是由udev
基于文件系统UUID 的规则创建的。如果您查看,/usr/lib/udev/rules.d/60-persistent-storage.rules
您会发现以下条目:
...... ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
Run Code Online (Sandbox Code Playgroud)
要引用磁盘,您可以使用磁盘序列号和ENV{ID_SERIAL_SHORT}
密钥。
以下udev
规则与序列号匹配的驱动器。0000000013100925DB96
并在 下创建一个同名的符号链接/dev/disk/by-uuid/
:
KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL_SHORT}=="0000000013100925DB96", SYMLINK+="disk/by-uuid/$env{ID_SERIAL_SHORT}"
Run Code Online (Sandbox Code Playgroud)
至于你的另一个问题......当然,你总是可以使用ENV{ID_MODEL}
而不是ENV{ID_SERIAL_SHORT}
为你的符号链接名称使用自定义字符串。
以下规则匹配任何带有ID_MODEL
= 的驱动器,M4-CT128M4SSD2
并M4-SSD-1234567890
在 下创建一个符号链接/dev/disk/by-uuid/
:
KERNEL=="sd*", SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_MODEL}=="M4-CT128M4SSD2", SYMLINK+="disk/by-uuid/M4-SSD-1234567890"
Run Code Online (Sandbox Code Playgroud)
请注意,只要只有一个驱动器与ID_MODEL
. 如果有多个相同型号的驱动器,则对每个驱动器再次应用规则,符号链接将指向最后检测到/添加的驱动器。
归档时间: |
|
查看次数: |
8969 次 |
最近记录: |