1 |
On Sun, Sep 3, 2017 at 6:41 PM, Grant <emailgrant@×××××.com> wrote: |
2 |
>>>>> My new laptop uses /dev/nvme0n1 instead of /dev/sda which conflicts |
3 |
>>>>> with the script I use to manage about 12 similar laptops running |
4 |
>>>>> Gentoo. Is there a udev method for renaming the disk that will work |
5 |
>>>>> well with any USB disks that happen to also be attached? |
6 |
>>>> |
7 |
>>>> I'm not certain what you mean by that, but I would guess that you want |
8 |
>>>> the nvme disk to show up as /dev/sda, and the USB disk(s) to show up |
9 |
>>>> as /dev/sd[b-z]. |
10 |
>>>> |
11 |
>>>> It is not possible to accomplish this using udev; the kernel owns the |
12 |
>>>> /dev/sdX device namespace, and will sequentially create devices nodes |
13 |
>>>> for SCSI-like block devices using that namespace. There is no way to |
14 |
>>>> change that using a udev rule. |
15 |
>>> |
16 |
>>> |
17 |
>>> Can I rename /dev/sda to /dev/sd[b-z] if it's attached via USB, and |
18 |
>>> then rename /dev/nvme0n1 to /dev/sda if /dev/nvme0n1 exists? |
19 |
>>> |
20 |
>>> Alternatively, can I rename /dev/sda to /dev/sd[b-z] if /dev/sda and |
21 |
>>> /dev/nvme0n1 exist, and then rename /dev/nvme0n1 to /dev/sda if |
22 |
>>> /dev/nvme0n1 exists? |
23 |
>> |
24 |
>> You might technically be able to do it, but I would guess it would |
25 |
>> cause some nasty race conditions between the kernel and udev. It's a |
26 |
>> bad idea. |
27 |
> |
28 |
> |
29 |
> Is it the conditionals that cause this to be a bad idea? Because I |
30 |
> believe udev has functionality designed to rename devices exactly like |
31 |
> this. |
32 |
|
33 |
udev doesn't provide any functionality to rename device nodes. You can |
34 |
adjust their permissions, and create symlinks, but there is no direct |
35 |
way to rename them. |
36 |
|
37 |
To rename a device node in a udev rule, you would have to call an |
38 |
external command, which udev knows nothing about. After having renamed |
39 |
it this way, the information in the udev device database would no |
40 |
longer be consistent, and any future device events would not work |
41 |
properly. |
42 |
|
43 |
I would suggest you utilize the existing symlinks in one of the |
44 |
/dev/disk/ sub-directories, or create some udev rules to create your |
45 |
own symlinks based on whatever metadata you wish. I would also suggest |
46 |
you read the udev(7) manual page. |
47 |
|
48 |
Trying to coerce your nvme device to look like an sd device is really |
49 |
the wrong approach to solving your problem. |