• dan@upvote.au
    link
    fedilink
    arrow-up
    162
    ·
    edit-2
    6 months ago

    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@lemmy.world
      link
      fedilink
      arrow-up
      40
      ·
      6 months ago

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

    • PsychedSy@sh.itjust.works
      link
      fedilink
      arrow-up
      16
      ·
      6 months ago

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

    • JasonDJ@lemmy.zip
      link
      fedilink
      arrow-up
      12
      ·
      edit-2
      6 months ago

      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.

    • 🐍🩶🐢@lemmy.world
      link
      fedilink
      English
      arrow-up
      11
      arrow-down
      1
      ·
      6 months ago

      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@feddit.de
        link
        fedilink
        arrow-up
        7
        ·
        edit-2
        6 months ago

        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.

      • hperrin@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        6 months ago

        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@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      6 months ago

      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.

      • whoisearth@lemmy.ca
        link
        fedilink
        arrow-up
        11
        arrow-down
        3
        ·
        edit-2
        6 months ago

        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?

        • droans@lemmy.world
          link
          fedilink
          arrow-up
          4
          ·
          6 months ago

          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.

        • damium@programming.dev
          link
          fedilink
          English
          arrow-up
          3
          ·
          6 months ago

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

          • whoisearth@lemmy.ca
            link
            fedilink
            arrow-up
            1
            arrow-down
            1
            ·
            edit-2
            6 months ago

            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@lemmy.world
              link
              fedilink
              arrow-up
              5
              ·
              6 months ago

              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@programming.dev
              link
              fedilink
              arrow-up
              1
              ·
              6 months ago

              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.

    • stoly@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      6 months ago

      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@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 months ago

      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@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        1
        ·
        6 months ago

        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.l and I rarely need to access them with their name.

        • A_Random_Idiot@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 months ago

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

  • DumbAceDragon@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    60
    ·
    edit-2
    6 months ago

    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.

        • liara@lemm.ee
          link
          fedilink
          English
          arrow-up
          17
          ·
          6 months ago

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

  • Luna@lemmy.catgirl.biz
    link
    fedilink
    arrow-up
    25
    ·
    6 months ago

    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 :(

  • Anarch157a@lemmy.world
    link
    fedilink
    arrow-up
    22
    ·
    6 months ago

    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@sopuli.xyz
    link
    fedilink
    arrow-up
    17
    ·
    6 months ago

    Different bus, different naming.

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

  • Kusimulkku@lemm.ee
    link
    fedilink
    arrow-up
    9
    ·
    6 months ago

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

  • waigl@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    6 months ago

    It’s a lot better than the system that just randomly throws in your USB drives with your SCSI/SAS/SATA/PATA drives. Or the systems that calls everything a SCSI drive when it usually isn’t a SCSI drive.

    • Captain Aggravated@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 months ago

      Yeah wasn’t it something like SATA and USB got lumped in with the SATA storage controller or whatever which is why it’s practically all /dev/sdx? Back in the days of yore when men were men and sheep were scared there’d be /dev/hdx and /dev/fdx for hard and floppy drives?