[systemd-devel] 60-persistent-storage.rules: add NVMe disks and partitions (again)

Keith Busch keith.busch at intel.com
Thu May 14 07:52:12 PDT 2015

On Thu, 14 May 2015, Dimitri John Ledkov wrote:
> On 14 May 2015 at 08:10, Per Bergqvist <per at bst.lu> wrote:
>> +# NVMe
>> +KERNEL=="nvme*", ENV{ID_SCSI_SERIAL}!="?*", IMPORT{program}="scsi_id
>> --export --whitelisted -d $devnode"
>> +KERNEL=="nvme*", ENV{DEVTYPE}=="disk", ENV{ID_SCSI_SERIAL}=="?*",
>> SYMLINK+="disk/by-id/nvme-$env{ID_SCSI_SERIAL}"
>> +KERNEL=="nvme*", ENV{DEVTYPE}=="partition", ENV{ID_SCSI_SERIAL}=="?*",
>> SYMLINK+="disk/by-id/nvme-$env{ID_SCSI_SERIAL}-part%n"
>> +
> This looks odd to me, from NVMe perspective. I would have thought the
> stable names would be generated based on the NVMe Namespace UIDs
> rather than anything else.
> Keith - could you comment on above ^ ?


It depends on the nvme controller revision. 1.1 compatible and higher
namespaces export a unique id in EUI64 format. 1.0 devices don't have
this; the serial is as unique as it gets but will create collisions
if the device exports multiple namespaces so we have to append the
namespace identifier.

In either case, the driver provides a scsi translation to obtain
persistent and consistent unique identifiers using inquiry vpd 83h
so I think you want to use ID_SERIAL instead, but it appears scsi_id
doesn't use our vpd 83 with the SCSI string designator type used for
1.0 devices. Do I need to change this?

More information about the systemd-devel mailing list