Gentoo Archives: gentoo-user

From: Mike Gilbert <floppym@g.o>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Rename /dev/nvme0n1 to /dev/sda
Date: Mon, 04 Sep 2017 01:26:47
Message-Id: CAJ0EP40Yh2KXx2Jinimf5NYAxEVGF6AUU1Osx-fw_65YkHvSfg@mail.gmail.com
In Reply to: Re: [gentoo-user] Rename /dev/nvme0n1 to /dev/sda by Grant
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.

Replies

Subject Author
Re: [gentoo-user] Rename /dev/nvme0n1 to /dev/sda Rich Freeman <rich0@g.o>
Re: [gentoo-user] Rename /dev/nvme0n1 to /dev/sda Grant <emailgrant@×××××.com>