Re: Persistent disk naming - wild idea for a solution
Frans Pop wrote:
> Why exactly is it an issue? As long as all devices are on the same
> controller (and I'd expect them to be), AFAIK there is no issue: the device
> naming should be stable across reboots.
> I can imagine it becoming an issue when you expect these devices to be
> frequently booted with some external USB storage device connected.
SATA ports that support hotplug have similar problems as external USB.
Also, if a disk dies or is temporarily unplugged, other devices might
move around. At boot time with devices like port multipliers, I've
seen disks not get detected at first, then show up 60 seconds later
after libata finally hardresets the port a few times. I don't know if
other drives can be detected during that time and change the ordering,
because I've used by-path and raid autodetect for those systems.
> That does not mean of course that Debian does not need to solve the
> persistent device naming issue, but up to now no one has taken the lead in
This might be something that's worth discussing with other distros,
upstream udev, etc. It seems each distro has their own solution
(afaik Fedora uses label, Ubuntu uses UUID..) and having a common
answer would be nice.
> I'd suggest to create new, really persistent, short and humanly readable
> device names. I'd like to see these devices named by type with "real"
> (permanent) hard disks distinguised from removable devices like USB sticks
> (yes, I know the distinction is thin sometimes).
> Preferably we'd "reuse" the old /dev/hdX devices, but I expect that that's
> not possible. An alternative for hard disks would be /dev/diskX; removable
> USB devices could become /dev/usbX, etc.
I think the first question to ask is: what are we trying to identify
persistently? If it's the disk that matters and we want to follow the
physical connection or media, then something based on by-path and
by-id makes sense. But if it's the data that matters and we want to
find the root partition regardless of how it's hooked up, we want
something based on by-label, by-uuid.
At first naming things persistently based on their label/uuid seems to
make sense, but it quickly gets confusing if e.g. you clone an image
of a disk as a backup, or you move someone else's disk (with the same
label) into your own machine to make a backup, etc.
This can all fit in with your idea, as it's probably more a question
of how the heuristics works than anything else.
I guess we can always ask the user for help if the heuristics hit a
case where the answer is ambiguous:
"The drive /dev/disk1 used to be plugged into PCI 0:0:3 port 4, but
it's missing. I see two new drives with /dev/disk1's UUID at USB
port 2 and USB port 3. How should they be assigned?
usb.2 -> /dev/disk1
usb.3 -> /dev/disk2
Press ENTER or wait 15 seconds to accept, or ESC to customize"
That might be going a bit overboard though.