Well it’s sdx because they both use the SATA interface. The sdx convention actually comes from scsi though, and the fact that SATA and USB drives use it might point to some code reuse, or maybe a temporary solution that never got fixed due to breaking backwards compatibility.
Fun fact: IDE drives use the hdx naming convention.
Yea, I get that the s in sdX stands for sata, but why cant we have an ndX with n for nvme?
and you shouldn’t be using any of those, since the order can and will change. The numbers are based on the order the devices and device drivers are initialized in, not based on physical location in the system. The modern approach (assuming you’re using udev) is to use the symlinks in
/dev/disk/by-id/
or/dev/disk/by-uuid/
instead, since both are consistent across reboots (andby-id
should be consistent across reinstalls, assuming the same partitioning scheme on the same physical drives)This is also why Ethernet devices now have names like
enp0s3
- the numbers are based on physical location on the bus. The oldeth0
,eth1
, etc. could swap positions between Linux upgrades (or even between reboots) since they were also just the order the drivers were initialized in.I have a hatred for the enp id thing as it isn’t any better for me. It changes on me every time I add/remove a hard drive or enable/disable the WiFi card in the BIOS. For someone who is building up a server and making changes to it, this becomes a real pain. What happens if a drive dies? Do I have to change the network config yet again over this?
How is that happening? The number on the bus shouldn’t change from adding or removing drives. I could imagine this with disabling a card in UEFI / BIOS if that basically stops reporting the bus entry completely. But drives?
Anyhow, if I’m not mistaken, you can assign a fixed name based on the reported MAC.
It is only the nvme drives that do it. That damn PCI busses and iommu groups get renumbered every damn time I remove or add one. The SATA is safe though.
The arch wiki lists some methods to permanently name network interfaces at https://wiki.archlinux.org/title/Network_configuration#Change_interface_name
Are UUIDs built into the hardware, or something your computer decides on based on the drive’s serial number and shit?
According to Arch Wiki they get generated and stored in the partition when it is formatted. So kinda like labels but automated and with (virtually) no collision risk.
I’m sure you know this, but to to supplement your comment for future readers, UUIDs are also a good solution for partitions.
Labels are better. IMO; they’re semantic.