Re: [Novalug] Device naming.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Short answer ...

Hit any of the countless udev howtos on how to lock down devices
to specific device names, with specific permissions, etc...

Otherwise, just rely on the UUIDs of the filesystems, and ignore the
device assignments.

Long answer ...

First off, reassignment of devices happens in _all_ OSes.
This is hardly a Linux phenomenon.  I have no idea what
your intent is here (other than what I shall not say).

Secondly, because reassignment is such an issue, Fedora,
Ubuntu and countless other distros have switched to UUIDs
for filesystem identification.  UUIDs are unique.  This also
caused a lot of blame and demonizations when people
started seeing UUIDs in /etc/fstab as well, without stopping to
understand why this very necessary decision was finally made.

Third, the udev system allows one to tie down device names
to specific hardware using hardware IDs and other details.
Indeed, this is how I often deal with SAN and other devices.
It's also where multipathing ties into as well.  And at home,
I also use udev rules to assign devices for my removable
USB devices.  If you absolutely want to ensure specific naming,
permissions, etc... with a device, use udev.  If you don't need to,
then just rely on UUIDs.

Fourth, the decision was made long ago to unify most read/
write block device names as "sdX" devices and most read-only
block devices as "sr0" devices.  The "SCSI" name is largely
a left-over.  There are countless devices that use the SCSI
block system that do _not_ support SCSI protocols at all --
FireWire, USB, etc...  So don't assign any attachment to the term
"SCSI."  It also unified the labeling/ID as well, making things far,
far more consistent than prior.  Other OSes do this as well (NT
comes to mind too, along with several UNIX flavors).  SCSI is
just a read/write block interface, whether dumb block or one
with a more intelligent command-set like SCSI-2, FireWire, etc...

Lastly, the "old schemes" are fine when you have limited device
support.  But today, modern Linux has countless support of an
extremely broad range of devices.  The "old schemes" don't fit
well, let alone are grossly inconsistent.  The "new schemes" are
much better, avoid device issues and other details.  I wouldn't
say this if I have not run into assignment and other details under
all OSes.  Newer approaches in Linux 2.6-based distro do a
far better job now.

One either chooses to move forward or one only exposes that
they have not -- let alone has not taking the time why the changes
were made and should move forward.  ;)




----- Original Message ----
From: Alan Grimes <agrimes@xxxxxxxxxxxxx>
To: linux-hotplug@xxxxxxxxxxxxxxx; Northern Virginia Linux User's Group <novalug@xxxxxxxxxxxxxxx>
Cc: Scott D'Vileskis <sdvileskis@xxxxxxxxxxx>
Sent: Thu, March 11, 2010 10:37:13 AM
Subject: [Novalug] Device naming.

Due to the lack of documentation on the subject, I have been forced to
do my own investigation and make my own conclusions regarding recent
changes to the naming of devices on linux.

My verdict is that it's the latest example in a chain of spectacularly
bad design decisions made by linux developers (Penguins) in the past
year or two.

Here's why.

The purpose of the /dev path is to allow administrators to access
devices attached to their systems. Therefore it is sensible for each
device handle to expose to the administrator essential facts such as
what type of device it is, which controller it is attached to, the
position number on that controller and, finally, the identifier of any
virtual devices which might benefit from being treated separately.

Furthermore the administrator doesn't have the slightest interest in
what driver is behind the device, that is irrelevant information that
should be hidden.

Minix, IIRC did this correctly. Each name has a very easy to understand
encoding.

The old scheme on Linux did an adequate job of this too. The first two
letters indicated what technology it was, the third letter was a mix of
controller and position information, and the number indicated the
virtual device being referenced.

I did an experiment the other day which involved plugging a USB thumb
drive into the server. To my horror, the operating system assigned it
/dev/sda. The Penguins had gone and *intentionally* designed a namespace
collision between all possible storage solutions that might be attached
to the computer!!!

This is insane. How do I know what drives are which when I go to write
an /etc/fstab? If I make any changes to the controllers in the system,
designations of existing drives are sure to change. =\

I am aware of /dev/disk so don't flame me about THAT, I have examined it
closely and have not found any way to make use of it because it is not
possible to reliably predict how a new drive would appear there.

On my existing system that is still running an old linux kernel, the
device ID of my boot drive is:

ata-ST380013A_5JVA01L2

Which is correct...

But the device id of my data drive is:

scsi-SATA_WDC_WD3200AAKS-_WD-WCAT11129455

Which is wrong because I don't own any SCSI hardware. It should be:

SATA-WDC_WD3200AAKS-_WD-WCAT11129455

WTF??? My data drive has two entries in there, the other is:

ata-WDC_WD3200AAKS-00B3A0_WD-WCAT11129455

Which is not that inaccurate because SATA is a form of ATA, however it
is useful to be able to distinguish the two so you know where your new
drive will appear.
--
To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux