[systemd-devel] [PATCH v2] udev rules: add by-location symlinks to nvme devices
Charles.Rose at dell.com
Charles.Rose at dell.com
Tue Nov 28 22:00:28 UTC 2017
On systems with multiple 2.5-inch form factor PCIe SSD devices, locating the
physical drive can be made easier with symlinks that contain the drive bay
and slot information like this:
/dev/disk/by-path/PCIe_SSD_in_Slot_9_Bay_1-nvme0n1 -> ../../nvme0n1
/dev/disk/by-path/PCIe_SSD_in_Slot_9_Bay_1-nvme0n2 -> ../../nvme0n2
/dev/disk/by-path/PCIe_SSD_in_Slot_9_Bay_1-nvme1n1 -> ../../nvme1n1
The bay/slot information is read from the sysfs label attribute available for
each NVMe device.
v2: Incorporate Lennart's feedback
Do not shell out to "tr".
Create link in "by-path", not "by-location".
Remove "DRIVERS==nvme" check.
Do not make the rule vendor specific.
Signed-off-by: Charles Rose <charles_rose at dell.com>
---
rules/60-persistent-storage.rules | 2 ++
1 file changed, 2 insertions(+)
diff --git a/rules/60-persistent-storage.rules b/rules/60-persistent-storage.rules
index 0de8cf3a1..2d3f7dc72 100644
--- a/rules/60-persistent-storage.rules
+++ b/rules/60-persistent-storage.rules
@@ -19,6 +19,8 @@ ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*"
KERNEL=="nvme*[0-9]n*[0-9]", ATTR{wwid}=="?*", SYMLINK+="disk/by-id/nvme-$attr{wwid}"
KERNEL=="nvme*[0-9]n*[0-9]p*[0-9]", ENV{DEVTYPE}=="partition", ATTRS{wwid}=="?*", SYMLINK+="disk/by-id/nvme-$attr{wwid}-part%n"
+KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{label}=="?*", SYMLINK+="disk/by-path/$attr{label}-%k", OPTIONS="string_escape=replace"
+
KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{serial}=="?*", ENV{ID_SERIAL_SHORT}="$attr{serial}"
KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{wwid}=="?*", ENV{ID_WWN}="$attr{wwid}"
KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{model}=="?*", ENV{ID_MODEL}="$attr{model}"
--
2.14.3
More information about the systemd-devel
mailing list