[dm-devel] Re: udev user specified or human readable /dev names

Patrick Mansfield patmans at us.ibm.com
Wed Nov 2 02:01:56 UTC 2005


On Wed, Nov 02, 2005 at 02:06:15AM +0100, Kay Sievers wrote:
> On Tue, Nov 01, 2005 at 04:35:31PM -0800, Patrick Mansfield wrote:

> > But it still would not match, per the issue below, right?
> 
> Right, it wouldn't work.
> 
> You want this:
>   ENV{ID_FULL_PATH}=="disk/by-id/scsi-360a98000686f68656c6e7a416f4b6849" SYMLINK+="media-files"
> 
> but why don't you just do:
>   ENV{ID_BUS}=="scsi", ENV{ID_SERIAL}=="360a98000686f68656c6e7a416f4b6849", SYMLINK+="media-files"
> 
> The second already works, is independent from all other rules and I think
> is simpler.

Yes, I just disagree with it being simpler for all busses/devices.

I was thinking of the sys admin or a tool looking at the current
/dev/disk/by-* and adding rule(s) based on those values to a udev rule
file.

And is there a way to rename or add /dev entries without removing and
adding back a device?


Using ID_BUS and ID_SERIAL via the following lines like this works:

KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="scsi" ENV{ID_SERIAL}=="360a98000686f68656c6e7a416f4b6849", SYMLINK+="user/databaseA"
KERNEL=="sd*[0-9]|dasd*[0-9]", ENV{ID_SERIAL}=="360a98000686f68656c6e7a416f4b6849", SYMLINK+="user/databaseA-part%n"

KERNEL=="sd*[!0-9]", ENV{ID_BUS}=="scsi" ENV{ID_SERIAL}=="360a98000686f68656c6e7a416f4b2f55", SYMLINK+="user/databaseB"
KERNEL=="sd*[0-9]", ENV{ID_SERIAL}=="360a98000686f68656c6e7a416f4b2f55", SYMLINK+="user/databaseB-part%n"

Adding the devices then creates:

[root at elm3a49 rules.d]# ls -l /dev/user
total 0
lrwxrwxrwx  1 root root 6 Nov  1 17:46 databaseA -> ../sdm
lrwxrwxrwx  1 root root 7 Nov  1 17:47 databaseA-part1 -> ../sdm1
lrwxrwxrwx  1 root root 6 Nov  1 17:46 databaseB -> ../sdi
lrwxrwxrwx  1 root root 7 Nov  1 17:46 databaseB-part1 -> ../sdi1
lrwxrwxrwx  1 root root 7 Nov  1 17:46 databaseB-part2 -> ../sdi2

-- Patrick Mansfield




More information about the dm-devel mailing list