Welcome to Incremental Social! Learn more about this project here!
Check out lemmyverse to find more communities to join from here!

dan , (edited )
@dan@upvote.au avatar

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 (and by-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 old eth0, eth1, etc. could swap positions between Linux upgrades (or even between reboots) since they were also just the order the drivers were initialized in.

toynbee ,

I'm sure you know this, but to to supplement your comment for future readers, UUIDs are also a good solution for partitions.

lemmyvore ,

I think OP's point was that UUIDs can still change, but the stuff that makes up the /by-id/ names cannot. Granted, those aren't applicable to partitions.

dan ,
@dan@upvote.au avatar

Right :) the original meme was just talking about drive names (/dev/sdX)

toynbee ,

Right. I don't think they and I are in disagreement - just trying to help expand their statement. Thanks!

confusedbytheBasics ,

How are the uuids going to change unexpectedly?

lemmyvore ,

Depends on your definition of "unexpected". OP was talking about reinstalls for example, where the root partition is deleted and recreated and its UUID will change as a result. If you copy an fstab from an older system backup you will fail the mount the root partition.

UUIDs can also cause some reverse trouble if you clone them with dd in which case they won't change but they should, and you end up with duplicate UUIDs.

sxan ,
@sxan@midwest.social avatar

Labels are better. IMO; they're semantic.

Scrollone ,

I agree. Also, I can swap a disk with a new one with the same label, no need to change fstab

PsychedSy ,

Are UUIDs built into the hardware, or something your computer decides on based on the drive's serial number and shit?

lea ,

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.

PsychedSy ,

I could have RTFM but you guys are more fun.

0x4E4F OP ,
@0x4E4F@lemmy.dbzer0.com avatar

Yeah, you get the best Linux info when reading meme comments 😁.

PsychedSy ,

I tried a gentoo stage 2 or 3 like 20 years ago. I'm still good.

Hexarei ,
@Hexarei@programming.dev avatar

It's fun to have people around who read the friendly manual

taaz ,

Uuids are part of the gpt (table) on the disk.

PsychedSy ,

Ah. Makes sense.

Supermariofan67 ,

You're thinking of partuuid, regular uuids are part of the filesystem and made at mkfs time

MeanEYE ,
@MeanEYE@lemmy.world avatar

No. Since each partition gets its own UUID, it means it's generated by the OS on creation, no matter the number of partitions. On boot kernel will scan all UUIDs and then mount and map according to them, which is sightly less efficient method than naming block device directly, but far easier for humans and allows you to throw your drives to whichever port you like.

PsychedSy ,

So if we swap drives about, the OS will see them as the same drive and/or partition?

null ,
@null@slrpnk.net avatar

hardware-configuration.nix has entered the chat

jadedwench ,

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?

Laser ,

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.

jadedwench ,

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.

Laser ,

The arch wiki lists some methods to permanently name network interfaces at https://wiki.archlinux.org/title/Network_configuration#Change_interface_name

hperrin ,

Use a systems rule to give it a consistent name based on its MAC address, driver, etc. I just had this exact same problem setting up my servers.

root@prox1:~# cat /etc/systemd/network/10-persistent-10g.link 
[Match]
Driver=atlantic

[Link]
Name=nic10g

root@prox1:~# cat /etc/systemd/network/10-persistent-1g.link 
[Match]
Driver=igb

[Link]
Name=nic1g

mumblerfish ,

Having used gentoo for quite some time, there have been several occations where my network broke because the changing names and naming conventions of the network interfaces.

JasonDJ , (edited )

Back in my day, /dev/hda was the primary master, hdb was the primary slave, hdc was the secondary master and hdd was the secondary slave.

Nothing ever changed between reboots. Primary/secondary depended on which port the ribbon cable connected to on the motherboard, and primary/secondary master/slave was configured by a jumper on the drive itself.

Phrodo_00 ,

Yeah, and ide only supported 4 drives at a time in most systems

pascal ,
@pascal@lemm.ee avatar

If you had a Sound Blaster 16, you had an extra IDE port on the board, which DOS couldn't see and you had to load special drivers to use them. Usually it was used for the CD-ROM.

DumbAceDragon ,
@DumbAceDragon@sh.itjust.works avatar

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.

stoy ,

I thought they standardized on sd* even for IDE drive a few years back...

0x4E4F OP , (edited )
@0x4E4F@lemmy.dbzer0.com avatar

Yeah, that's what I think as well...

Got a few old rigs with IDE drives in them running Void x86, the drives in /dev are named sdx.

DumbAceDragon ,
@DumbAceDragon@sh.itjust.works avatar

I didn't know that. Maybe nvme hasn't been added to the standard yet then.

jj4211 ,

No, they decided that nvme were too fancy to be modeled by mundane 'sdxn' scheme. They hypothetically have 'namespaces' and 'controller paths' and they wanted to have the naming scheme model that fully.

Bishma ,
@Bishma@discuss.tchncs.de avatar

I still muscle-memory type /dev/hd[TAB] once in a while when looking for storage devices.

0x4E4F OP ,
@0x4E4F@lemmy.dbzer0.com avatar

Yeah, but I think they switched to also use sdx for IDE devices as well.

toynbee ,

Virtual drives also have a fun and relevant prefix!

frathiemann ,

Yea, I get that the s in sdX stands for sata, but why cant we have an ndX with n for nvme?

redditReallySucks ,

A yes, my beloved nvme1p2 partition that changes name every reboot

ordellrb ,

thats a reason to use the uuid in the fstab

whoisearth , (edited )
@whoisearth@lemmy.ca avatar

Anyone else chuckle on the parallel in saying to use the UUID is no different than saying "just hardcore the IP bro"

I'm not hating on you, but it's an extremely flawed system where you are forced to use a direct ID mapping as a reference.

From what I'm understanding from people you can assign an alias to the UUID that sounds better?

damium ,

If filesystem UUIDs are IP equivalents.
Then device paths are MAC addresses.
FS labels are DNS.
Device mapper entries are service discovery.

whoisearth ,
@whoisearth@lemmy.ca avatar

In the scenario of having to constantly update an fstab yes it is. As an end user I shouldn't have to keep updating configuration files because something on a lower level keeps changing its alias.

No granted I'm not familiar with this type of mount. Maybe there is a better way to do it that absolves needing to use the UUID but if not that's shit architecture IMHO.

Phrodo_00 ,

What? Using uuids is the solution to having to change the file (that, or stable name rules). You can also use labels if you want to.

Strykker ,

The UUID never fucking changes. It is a hardware level identier use the UUID in your configs and they will work until the day you change drives.

droans ,

Anyone else chuckle on the parallel in saying to use the UUID is no different than saying "just hardcore the IP bro"

It's more like setting a static IP. The UUID is set when you create the partition and won't change unless you force it to change.

You can also use any of the GUI utilities which can add it to your fstab.

There's a lot of things that are made way too difficult on Linux for seemingly no reason. This isn't one of them.

aBundleOfFerrets ,

I mean you can also use partition labels but who does that

Scrollone ,

Oh really? That seems interesting and better than a random uuid

ulterno ,
@ulterno@lemmy.kde.social avatar

The alternative being running os-prober at boottime, on every boot.

Currently, we set UUID using os-prober whenever we remake grub.cfg, analogous to that would be registering web-server static IPs with a DNS, which provides the domain name aliases (we don't need to see UUID in the GRUB menu right? We see the OS names).

An analogy to the alternative would be to ask all devices on the internet to send their usage methods everytime you try to look for another site.

stoly ,

Lol I seem to remember that I once had /home mapped to a partition that did that for all sorts of fun and games for a while.

A_Random_Idiot ,
@A_Random_Idiot@lemmy.world avatar

my nvme is always nvme1pX, with X being 1-4 depending on the partition, and its always the same.

Wonder why? Weird that some change and some dont.

redditReallySucks , (edited )

I got two drives with one being nvme1pX and the other nvme2pX and I don't know why but they just swap names sometime. I'm new to linux though so it may be some misconfiguration on my part and I rarely need to access them with their name.

A_Random_Idiot ,
@A_Random_Idiot@lemmy.world avatar

Ah, sorry. I only have 1 nvme drive, so thats probably why. Didnt realize until your post that it was a multi-drive issue.

vampire ,

https://wiki.archlinux.org/title/Solid_state_drive/NVMe

Namespaces are the construct in NVMe technology that hold user data. An NVMe controller can have multiple namespaces attached to it. Most NVMe SSDs today just use a single namespace, but multi-tenant applications, virtualization and security have use cases for multiple namespaces.

  device v
/dev/nvme0n1p1 < partition
namespace  ^

There are two types of people: Those who are able to identify gaps in their knowledge and actively seek to fill them... and whatever this meme is.

0x4E4F OP ,
@0x4E4F@lemmy.dbzer0.com avatar

Dude, chill, it's a funny take on naming conventions.

vampire ,

I can't chill ever

It's a curse

wkk ,

It's like you're sucking the fun out of us... Wait a minute

0x4E4F OP ,
@0x4E4F@lemmy.dbzer0.com avatar

Username checks out 🤷.

milicent_bystandr ,

Funny? In a meme? C'mon man, we're trying to be serious here and know which technologies we can shame to feel good about ourselves. Stop ruining my quest for self-egrandifying tech-snobbery with your so-called humour!!1!


P.S. thanks to @vampire even so; that was interesting to learn

anarchy79 ,
@anarchy79@lemmy.world avatar

"I am irrationally angry, but you are also right, now fuck off"

I can respect this

Heavybell ,
@Heavybell@lemmy.world avatar

We can enjoy the meme and also use it as a learning opportunity :)

I for one didn't know about NVMe namespaces.

anarchy79 ,
@anarchy79@lemmy.world avatar

Or an opportunity to be technically correct! Wouldn't want to waste one!

0x4E4F OP ,
@0x4E4F@lemmy.dbzer0.com avatar

Actually, what you're referring to as...

Aaw, fuck it, I'm not that kind of a guy 🤷 😁.

anarchy79 ,
@anarchy79@lemmy.world avatar

Great going.

342345 ,

Interesting. I learned something. Again.

Scrollone ,

Well, I hadn't actively searched for what the NVMe naming convention was for, but this meme made me learn something new. Thanks!

rob_t_firefly ,
@rob_t_firefly@lemmy.world avatar

All this and you missed the chance to also point out that the meme misspelled "conventions."

anarchy79 ,
@anarchy79@lemmy.world avatar

What a rookie.

loudWaterEnjoyer ,
@loudWaterEnjoyer@lemmy.dbzer0.com avatar

Of course the offended guy links arch wiki article

vampire ,

Who's offended?

anarchy79 ,
@anarchy79@lemmy.world avatar

Who fucking isn't these days, amirite?

loudWaterEnjoyer ,
@loudWaterEnjoyer@lemmy.dbzer0.com avatar

Its always the guy asking the stupid question.

mrbaby ,

Oh god damn it I came here to look at memes and now I friggin learned something that's going to make my life easier

anarchy79 ,
@anarchy79@lemmy.world avatar

Ackhsually

vampire ,

I know my role. Someone's gotta do it.

anarchy79 ,
@anarchy79@lemmy.world avatar

The unsung hero is often the least paid

Thcdenton ,

🤓

MonkderZweite , (edited )

https://superuser.com/questions/1449499/why-does-linux-list-nvme-drives-as-dev-nvme0-instead-of-dev-sda#1449520

In short; sd stands for SCSI Disk and SSD and USB all use the SCSI protocol. While SD-cards/emmc (flash-on-CPU) are named emmcblkpX for emmc block device, partition X. And NVME have additionally namespaces, which is the nX part.

Pantherina ,

So, EMMC is even worse

hperrin ,

It’s called that because it’s Never the Value you Might Expect.

Eyck_of_denesle ,

Can you elaborate? I like mine a lot. It's super fast.

hperrin ,

If you reboot, it might have a different name in /dev/, just like ethernet ports.

liara ,

This is a feature of SATA devices too. Use UUIDs in your fstab unless you enjoy playing musical chairs with your mount points

independantiste ,
@independantiste@sh.itjust.works avatar

nvme0n1p1

scallopedllama ,

The other dragons aren't specifying a partition

SuperIce ,

So the 3rd dragon should just be /dev/nvme%d

user224 ,
@user224@lemmy.sdf.org avatar

mmcblkxpy
(SD Card)

x = device number
y = partition number

Oisteink ,

NVMe device names follow this pattern: nvme <number> n <namespace> , where: <number> is an integer that is assigned by Linux during the boot process. The first NVMe device that is detected is assigned 0

Morphit ,
@Morphit@feddit.uk avatar

I still don't understand the point of namespaces. I guess it's less overhead to pass through a namespace to a VM rather than having a virtualised disk image or bind mount.

jj4211 ,

You also can have a 'c' in there, when it wants to model multipath nvme...

ad_on_is ,
@ad_on_is@lemmy.world avatar

ONIPI

eluminx ,
@eluminx@lemmy.world avatar

This made me chuckle, thank you!!

arran4 ,

Forgot /dev/hdx ?

Supermariofan67 ,

That one hasn't been around for a long time, since the Linux kernel started using a SCSI abstraction layer above many of the other storage protocols. Really cool stuff: https://upload.wikimedia.org/wikipedia/commons/thumb/f/fb/The_Linux_Storage_Stack_Diagram.svg/1161px-The_Linux_Storage_Stack_Diagram.svg.png

Scrollone ,

I always thought my drive names changed from hdx to sdx because I started using an SSD, and yet...

You always learn something new

ulterno ,
@ulterno@lemmy.kde.social avatar

I once had to do GRUB related stuff with CentOS 5 (or was it 3?).
Stuff started with 0 in it and I was kept wondering what I was selecting, because the naming convention in GRUB was different from that in the OS.

Anarch157a ,
@Anarch157a@lemmy.world avatar

No one mentioned the Solaris convention yet ?

/dev/cXtXdXsX

The letters mean controller, SCSI target, disk and slice (Solaris equivalent to a partition).

I always thought this was the most elegant naming scheme in the Unix world.

Malix ,
@Malix@sopuli.xyz avatar

Different bus, different naming.

Now, memory kinda hazy, but weren't ide devices /dev/hdX?

0x4E4F OP ,
@0x4E4F@lemmy.dbzer0.com avatar

Yeah, they used to be, but they switched a few years back to consistently call all block devices sdx.

Malix ,
@Malix@sopuli.xyz avatar

srsly? so it's just all "grab whatever dev" and not at all associated with the bus?

mark3748 ,

ATA was rolled into the SCSI subsystem, so both sata and pata are covered by SDX.

0x4E4F OP ,
@0x4E4F@lemmy.dbzer0.com avatar

Makes sense, I mean... they're all essentialy long term memory storage devices.

Kusimulkku ,

I'm guessing it's for some shit to make sure some ridiculous setup with two gazillion drives doesn't have conflicts

where_am_i ,

obligatory xkcd? Nah, you know exactly which one I mean.

Kusimulkku ,

I'm not sure if it is the standards one or the usecase one

mrbaby ,

Mine is easy - /dev/nvme[tab][tab][tab]

luna ,
@luna@lemmy.catgirl.biz avatar

Back in the olden times the Linux kernel had a dedicated parallel-ATA subsystem with /dev/hda devices. It was then rolled up in to the scsi subsystem to simplify maintaining drivers (everything using the same library for disk access). I'm old :(

Tja ,

Raises a glass in Debian 3.0

Deway ,

Having both IDE and SATA together was awesome.
"Sooo which one is which?".
Good times.

bobzrkr ,

And who could forget /dev/fd0 for floppies

scallopedllama ,

/dev/nvme0n1 actually, but sure. Change bad

sleepmode ,

Kinda miss the Wild West days where you'd recompile and suddenly there'd be a whole new device naming convention.

anarchy79 ,
@anarchy79@lemmy.world avatar

I just run arch. It self compiled.

sleepmode , (edited )

[Thread, post or comment was deleted by the author]

  • Loading...
  • anarchy79 ,
    @anarchy79@lemmy.world avatar

    Of course not. It hadn't compiled yet.

    bitwaba ,

    Depends on how far you wanna go back, but Arch was released in 2002 which definitely covers the time period of the drive naming changes in this meme.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • linuxmemes@lemmy.world
  • incremental_games
  • meta
  • All magazines