Why does udev concatenate two symlinks? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Community Moderator Election Results Why I closed the “Why is Kali so hard” questionHow to troubleshoot udev not creating /dev/hda3 on gentoo boot?udev re-numbering when creating symlinksSymlinks on /dev/ttyUSB* via udevudev does not apply rulesWhat are these symlinks in /run/udev/watch?confused about udevadm usageudev in two stepsPersistent names for physical USB portsDevice Node not createdCreating Persistant Symbolic Link -Linux

Withdrew £2800, but only £2000 shows as withdrawn on online banking; what are my obligations?

Using et al. for a last / senior author rather than for a first author

How can I use the Python library networkx from Mathematica?

If my PI received research grants from a company to be able to pay my postdoc salary, did I have a potential conflict interest too?

Is "Reachable Object" really an NP-complete problem?

How to Make a Beautiful Stacked 3D Plot

Would "destroying" Wurmcoil Engine prevent its tokens from being created?

For a new assistant professor in CS, how to build/manage a publication pipeline

Is CEO the profession with the most psychopaths?

How do I make this wiring inside cabinet safer? (Pic)

Is there such thing as an Availability Group failover trigger?

How do I find out the mythology and history of my Fortress?

Maximum summed powersets with non-adjacent items

Is the Standard Deduction better than Itemized when both are the same amount?

What is the meaning of the new sigil in Game of Thrones Season 8 intro?

Can a new player join a group only when a new campaign starts?

What would be the ideal power source for a cybernetic eye?

How to find all the available tools in mac terminal?

Do I really need recursive chmod to restrict access to a folder?

Most bit efficient text communication method?

Should I use a zero-interest credit card for a large one-time purchase?

What causes the direction of lightning flashes?

Fundamental Solution of the Pell Equation

Chinese Seal on silk painting - what does it mean?



Why does udev concatenate two symlinks?



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
2019 Community Moderator Election Results
Why I closed the “Why is Kali so hard” questionHow to troubleshoot udev not creating /dev/hda3 on gentoo boot?udev re-numbering when creating symlinksSymlinks on /dev/ttyUSB* via udevudev does not apply rulesWhat are these symlinks in /run/udev/watch?confused about udevadm usageudev in two stepsPersistent names for physical USB portsDevice Node not createdCreating Persistant Symbolic Link -Linux



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















My distribution is SLES 12 SP 2.



I work with DRBD (distributed replicated block device) right now. Here is an example of a configuration for a drbd resource.



resource HA1dat 
device /dev/drbd1;
disk /dev/mqdat/HA1;
meta-disk internal;
on srv0
address 192.168.174.10:7000;
node-id 0;

on srv1
address 192.168.174.11:7000;
node-id 1;

on srv9
address 192.168.174.19:7000;
node-id 2;

connection-mesh
hosts srv0 srv1 srv9;




After activating this resource as a drbd device, normally the following objects are created.



brw-rw---- 1 root disk 147, 1 Feb 13 19:41 /dev/drbd1
lrwxrwxrwx 1 root root 14 Feb 13 19:41 /dev/drbd/by-res/HA1dat/0 -> ../../../drbd1
lrwxrwxrwx 1 root root 14 Feb 13 19:41 /dev/drbd/by-disk/mqdat/HA1 -> ../../../drbd1


These are the block device itself and two symbolic links to it.



This is the correct behaviour!



On some other servers (same distribution) the behaviour is different. The configuration of the drbd resource is very similiar.



resource LN0N001Edat 
device /dev/drbd1;
disk /dev/data1vg/LN0N001E_lv;
meta-disk internal;
on sedcmmwd0030
address xxx.yyy.zzz.83:7000;
node-id 0;

on sedcmmwd0040
address xxx.yyy.zzz.99:7000;
node-id 1;

on sedcmmwd0050
address xxx.yyy.zzz.100:7000;
node-id 2;

connection-mesh
hosts sedcmmwd0030 sedcmmwd0040 sedcmmwd0050;




After activating this resource, only the block device and one link are created.



brw-rw---- 1 root disk 147, 1 Mar 2 09:49 /dev/drbd1
lrwxrwxrwx 1 root root 23 Mar 2 09:49 /dev/drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv -> ../../../../../../drbd1


This is the problem! This link is a concatenation of the two expected links. I have no idea, why they are concatenated.



The link is created by udev. The following output show differences, what udev does on these nodes.



Server with correct behaviour



juser@srv0:~> udevadm info /dev/drbd1
P: /devices/virtual/block/drbd1
N: drbd1
S: drbd/by-disk/mqdat/HA1
S: drbd/by-res/HA1dat/0
E: DEVICE=drbd1
E: DEVLINKS=/dev/drbd/by-res/HA1dat/0 /dev/drbd/by-disk/mqdat/HA1
E: DEVNAME=/dev/drbd1
E: DEVPATH=/devices/virtual/block/drbd1
E: DEVTYPE=disk
E: MAJOR=147
E: MINOR=1
E: SUBSYSTEM=block
E: SYMLINK=drbd/by-res/HA1dat/0 drbd/by-disk/mqdat/HA1
E: TAGS=:systemd:
E: USEC_INITIALIZED=12263844870


Server with the problem



root@sedcmmwd0030:/root : udevadm info /dev/drbd1
P: /devices/virtual/block/drbd1
N: drbd1
S: drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv
E: DEVICE=drbd1
E: DEVLINKS=/dev/drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv
E: DEVNAME=/dev/drbd1
E: DEVPATH=/devices/virtual/block/drbd1
E: DEVTYPE=disk
E: MAJOR=147
E: MINOR=1
E: SUBSYSTEM=block
E: SYMLINK=drbd/by-res/LN0N001Edat/0 drbd/by-disk/data1vg/LN0N001E_lv
E: TAGS=:systemd:
E: USEC_INITIALIZED=1212108486973


The SYMLINK lines are still both correct. The differences start with the DEVLINKS lines.



The rules for drbd are the same in both cases
cat /usr/lib/udev/rules.d/65-drbd.rules
# This file contains the rules to create named DRBD devices.



SUBSYSTEM!="block", GOTO="drbd_end"
KERNEL!="drbd*", GOTO="drbd_end"

IMPORTprogram="/sbin/drbdadm sh-udev minor-%m"

# Use symlink from the environment if available
ENVSYMLINK!="", SYMLINK="$envSYMLINK", GOTO="have_symlink"

# Legacy rules for older DRBD 8.3 & 8.4 when drbdadm sh-udev did not yet export SYMLINK
ENVDISK!="", SYMLINK+="drbd/by-disk/$envDISK"
ENVRESOURCE!="", SYMLINK+="drbd/by-res/$envRESOURCE"

LABEL="have_symlink"

ENVDEVICE=="drbd_?*", SYMLINK+="$envDEVICE"

LABEL="drbd_end"


Does anybody have an explanation for the creation of the errorneous link?










share|improve this question




























    1















    My distribution is SLES 12 SP 2.



    I work with DRBD (distributed replicated block device) right now. Here is an example of a configuration for a drbd resource.



    resource HA1dat 
    device /dev/drbd1;
    disk /dev/mqdat/HA1;
    meta-disk internal;
    on srv0
    address 192.168.174.10:7000;
    node-id 0;

    on srv1
    address 192.168.174.11:7000;
    node-id 1;

    on srv9
    address 192.168.174.19:7000;
    node-id 2;

    connection-mesh
    hosts srv0 srv1 srv9;




    After activating this resource as a drbd device, normally the following objects are created.



    brw-rw---- 1 root disk 147, 1 Feb 13 19:41 /dev/drbd1
    lrwxrwxrwx 1 root root 14 Feb 13 19:41 /dev/drbd/by-res/HA1dat/0 -> ../../../drbd1
    lrwxrwxrwx 1 root root 14 Feb 13 19:41 /dev/drbd/by-disk/mqdat/HA1 -> ../../../drbd1


    These are the block device itself and two symbolic links to it.



    This is the correct behaviour!



    On some other servers (same distribution) the behaviour is different. The configuration of the drbd resource is very similiar.



    resource LN0N001Edat 
    device /dev/drbd1;
    disk /dev/data1vg/LN0N001E_lv;
    meta-disk internal;
    on sedcmmwd0030
    address xxx.yyy.zzz.83:7000;
    node-id 0;

    on sedcmmwd0040
    address xxx.yyy.zzz.99:7000;
    node-id 1;

    on sedcmmwd0050
    address xxx.yyy.zzz.100:7000;
    node-id 2;

    connection-mesh
    hosts sedcmmwd0030 sedcmmwd0040 sedcmmwd0050;




    After activating this resource, only the block device and one link are created.



    brw-rw---- 1 root disk 147, 1 Mar 2 09:49 /dev/drbd1
    lrwxrwxrwx 1 root root 23 Mar 2 09:49 /dev/drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv -> ../../../../../../drbd1


    This is the problem! This link is a concatenation of the two expected links. I have no idea, why they are concatenated.



    The link is created by udev. The following output show differences, what udev does on these nodes.



    Server with correct behaviour



    juser@srv0:~> udevadm info /dev/drbd1
    P: /devices/virtual/block/drbd1
    N: drbd1
    S: drbd/by-disk/mqdat/HA1
    S: drbd/by-res/HA1dat/0
    E: DEVICE=drbd1
    E: DEVLINKS=/dev/drbd/by-res/HA1dat/0 /dev/drbd/by-disk/mqdat/HA1
    E: DEVNAME=/dev/drbd1
    E: DEVPATH=/devices/virtual/block/drbd1
    E: DEVTYPE=disk
    E: MAJOR=147
    E: MINOR=1
    E: SUBSYSTEM=block
    E: SYMLINK=drbd/by-res/HA1dat/0 drbd/by-disk/mqdat/HA1
    E: TAGS=:systemd:
    E: USEC_INITIALIZED=12263844870


    Server with the problem



    root@sedcmmwd0030:/root : udevadm info /dev/drbd1
    P: /devices/virtual/block/drbd1
    N: drbd1
    S: drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv
    E: DEVICE=drbd1
    E: DEVLINKS=/dev/drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv
    E: DEVNAME=/dev/drbd1
    E: DEVPATH=/devices/virtual/block/drbd1
    E: DEVTYPE=disk
    E: MAJOR=147
    E: MINOR=1
    E: SUBSYSTEM=block
    E: SYMLINK=drbd/by-res/LN0N001Edat/0 drbd/by-disk/data1vg/LN0N001E_lv
    E: TAGS=:systemd:
    E: USEC_INITIALIZED=1212108486973


    The SYMLINK lines are still both correct. The differences start with the DEVLINKS lines.



    The rules for drbd are the same in both cases
    cat /usr/lib/udev/rules.d/65-drbd.rules
    # This file contains the rules to create named DRBD devices.



    SUBSYSTEM!="block", GOTO="drbd_end"
    KERNEL!="drbd*", GOTO="drbd_end"

    IMPORTprogram="/sbin/drbdadm sh-udev minor-%m"

    # Use symlink from the environment if available
    ENVSYMLINK!="", SYMLINK="$envSYMLINK", GOTO="have_symlink"

    # Legacy rules for older DRBD 8.3 & 8.4 when drbdadm sh-udev did not yet export SYMLINK
    ENVDISK!="", SYMLINK+="drbd/by-disk/$envDISK"
    ENVRESOURCE!="", SYMLINK+="drbd/by-res/$envRESOURCE"

    LABEL="have_symlink"

    ENVDEVICE=="drbd_?*", SYMLINK+="$envDEVICE"

    LABEL="drbd_end"


    Does anybody have an explanation for the creation of the errorneous link?










    share|improve this question
























      1












      1








      1








      My distribution is SLES 12 SP 2.



      I work with DRBD (distributed replicated block device) right now. Here is an example of a configuration for a drbd resource.



      resource HA1dat 
      device /dev/drbd1;
      disk /dev/mqdat/HA1;
      meta-disk internal;
      on srv0
      address 192.168.174.10:7000;
      node-id 0;

      on srv1
      address 192.168.174.11:7000;
      node-id 1;

      on srv9
      address 192.168.174.19:7000;
      node-id 2;

      connection-mesh
      hosts srv0 srv1 srv9;




      After activating this resource as a drbd device, normally the following objects are created.



      brw-rw---- 1 root disk 147, 1 Feb 13 19:41 /dev/drbd1
      lrwxrwxrwx 1 root root 14 Feb 13 19:41 /dev/drbd/by-res/HA1dat/0 -> ../../../drbd1
      lrwxrwxrwx 1 root root 14 Feb 13 19:41 /dev/drbd/by-disk/mqdat/HA1 -> ../../../drbd1


      These are the block device itself and two symbolic links to it.



      This is the correct behaviour!



      On some other servers (same distribution) the behaviour is different. The configuration of the drbd resource is very similiar.



      resource LN0N001Edat 
      device /dev/drbd1;
      disk /dev/data1vg/LN0N001E_lv;
      meta-disk internal;
      on sedcmmwd0030
      address xxx.yyy.zzz.83:7000;
      node-id 0;

      on sedcmmwd0040
      address xxx.yyy.zzz.99:7000;
      node-id 1;

      on sedcmmwd0050
      address xxx.yyy.zzz.100:7000;
      node-id 2;

      connection-mesh
      hosts sedcmmwd0030 sedcmmwd0040 sedcmmwd0050;




      After activating this resource, only the block device and one link are created.



      brw-rw---- 1 root disk 147, 1 Mar 2 09:49 /dev/drbd1
      lrwxrwxrwx 1 root root 23 Mar 2 09:49 /dev/drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv -> ../../../../../../drbd1


      This is the problem! This link is a concatenation of the two expected links. I have no idea, why they are concatenated.



      The link is created by udev. The following output show differences, what udev does on these nodes.



      Server with correct behaviour



      juser@srv0:~> udevadm info /dev/drbd1
      P: /devices/virtual/block/drbd1
      N: drbd1
      S: drbd/by-disk/mqdat/HA1
      S: drbd/by-res/HA1dat/0
      E: DEVICE=drbd1
      E: DEVLINKS=/dev/drbd/by-res/HA1dat/0 /dev/drbd/by-disk/mqdat/HA1
      E: DEVNAME=/dev/drbd1
      E: DEVPATH=/devices/virtual/block/drbd1
      E: DEVTYPE=disk
      E: MAJOR=147
      E: MINOR=1
      E: SUBSYSTEM=block
      E: SYMLINK=drbd/by-res/HA1dat/0 drbd/by-disk/mqdat/HA1
      E: TAGS=:systemd:
      E: USEC_INITIALIZED=12263844870


      Server with the problem



      root@sedcmmwd0030:/root : udevadm info /dev/drbd1
      P: /devices/virtual/block/drbd1
      N: drbd1
      S: drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv
      E: DEVICE=drbd1
      E: DEVLINKS=/dev/drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv
      E: DEVNAME=/dev/drbd1
      E: DEVPATH=/devices/virtual/block/drbd1
      E: DEVTYPE=disk
      E: MAJOR=147
      E: MINOR=1
      E: SUBSYSTEM=block
      E: SYMLINK=drbd/by-res/LN0N001Edat/0 drbd/by-disk/data1vg/LN0N001E_lv
      E: TAGS=:systemd:
      E: USEC_INITIALIZED=1212108486973


      The SYMLINK lines are still both correct. The differences start with the DEVLINKS lines.



      The rules for drbd are the same in both cases
      cat /usr/lib/udev/rules.d/65-drbd.rules
      # This file contains the rules to create named DRBD devices.



      SUBSYSTEM!="block", GOTO="drbd_end"
      KERNEL!="drbd*", GOTO="drbd_end"

      IMPORTprogram="/sbin/drbdadm sh-udev minor-%m"

      # Use symlink from the environment if available
      ENVSYMLINK!="", SYMLINK="$envSYMLINK", GOTO="have_symlink"

      # Legacy rules for older DRBD 8.3 & 8.4 when drbdadm sh-udev did not yet export SYMLINK
      ENVDISK!="", SYMLINK+="drbd/by-disk/$envDISK"
      ENVRESOURCE!="", SYMLINK+="drbd/by-res/$envRESOURCE"

      LABEL="have_symlink"

      ENVDEVICE=="drbd_?*", SYMLINK+="$envDEVICE"

      LABEL="drbd_end"


      Does anybody have an explanation for the creation of the errorneous link?










      share|improve this question














      My distribution is SLES 12 SP 2.



      I work with DRBD (distributed replicated block device) right now. Here is an example of a configuration for a drbd resource.



      resource HA1dat 
      device /dev/drbd1;
      disk /dev/mqdat/HA1;
      meta-disk internal;
      on srv0
      address 192.168.174.10:7000;
      node-id 0;

      on srv1
      address 192.168.174.11:7000;
      node-id 1;

      on srv9
      address 192.168.174.19:7000;
      node-id 2;

      connection-mesh
      hosts srv0 srv1 srv9;




      After activating this resource as a drbd device, normally the following objects are created.



      brw-rw---- 1 root disk 147, 1 Feb 13 19:41 /dev/drbd1
      lrwxrwxrwx 1 root root 14 Feb 13 19:41 /dev/drbd/by-res/HA1dat/0 -> ../../../drbd1
      lrwxrwxrwx 1 root root 14 Feb 13 19:41 /dev/drbd/by-disk/mqdat/HA1 -> ../../../drbd1


      These are the block device itself and two symbolic links to it.



      This is the correct behaviour!



      On some other servers (same distribution) the behaviour is different. The configuration of the drbd resource is very similiar.



      resource LN0N001Edat 
      device /dev/drbd1;
      disk /dev/data1vg/LN0N001E_lv;
      meta-disk internal;
      on sedcmmwd0030
      address xxx.yyy.zzz.83:7000;
      node-id 0;

      on sedcmmwd0040
      address xxx.yyy.zzz.99:7000;
      node-id 1;

      on sedcmmwd0050
      address xxx.yyy.zzz.100:7000;
      node-id 2;

      connection-mesh
      hosts sedcmmwd0030 sedcmmwd0040 sedcmmwd0050;




      After activating this resource, only the block device and one link are created.



      brw-rw---- 1 root disk 147, 1 Mar 2 09:49 /dev/drbd1
      lrwxrwxrwx 1 root root 23 Mar 2 09:49 /dev/drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv -> ../../../../../../drbd1


      This is the problem! This link is a concatenation of the two expected links. I have no idea, why they are concatenated.



      The link is created by udev. The following output show differences, what udev does on these nodes.



      Server with correct behaviour



      juser@srv0:~> udevadm info /dev/drbd1
      P: /devices/virtual/block/drbd1
      N: drbd1
      S: drbd/by-disk/mqdat/HA1
      S: drbd/by-res/HA1dat/0
      E: DEVICE=drbd1
      E: DEVLINKS=/dev/drbd/by-res/HA1dat/0 /dev/drbd/by-disk/mqdat/HA1
      E: DEVNAME=/dev/drbd1
      E: DEVPATH=/devices/virtual/block/drbd1
      E: DEVTYPE=disk
      E: MAJOR=147
      E: MINOR=1
      E: SUBSYSTEM=block
      E: SYMLINK=drbd/by-res/HA1dat/0 drbd/by-disk/mqdat/HA1
      E: TAGS=:systemd:
      E: USEC_INITIALIZED=12263844870


      Server with the problem



      root@sedcmmwd0030:/root : udevadm info /dev/drbd1
      P: /devices/virtual/block/drbd1
      N: drbd1
      S: drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv
      E: DEVICE=drbd1
      E: DEVLINKS=/dev/drbd/by-res/LN0N001Edat/0_drbd/by-disk/data1vg/LN0N001E_lv
      E: DEVNAME=/dev/drbd1
      E: DEVPATH=/devices/virtual/block/drbd1
      E: DEVTYPE=disk
      E: MAJOR=147
      E: MINOR=1
      E: SUBSYSTEM=block
      E: SYMLINK=drbd/by-res/LN0N001Edat/0 drbd/by-disk/data1vg/LN0N001E_lv
      E: TAGS=:systemd:
      E: USEC_INITIALIZED=1212108486973


      The SYMLINK lines are still both correct. The differences start with the DEVLINKS lines.



      The rules for drbd are the same in both cases
      cat /usr/lib/udev/rules.d/65-drbd.rules
      # This file contains the rules to create named DRBD devices.



      SUBSYSTEM!="block", GOTO="drbd_end"
      KERNEL!="drbd*", GOTO="drbd_end"

      IMPORTprogram="/sbin/drbdadm sh-udev minor-%m"

      # Use symlink from the environment if available
      ENVSYMLINK!="", SYMLINK="$envSYMLINK", GOTO="have_symlink"

      # Legacy rules for older DRBD 8.3 & 8.4 when drbdadm sh-udev did not yet export SYMLINK
      ENVDISK!="", SYMLINK+="drbd/by-disk/$envDISK"
      ENVRESOURCE!="", SYMLINK+="drbd/by-res/$envRESOURCE"

      LABEL="have_symlink"

      ENVDEVICE=="drbd_?*", SYMLINK+="$envDEVICE"

      LABEL="drbd_end"


      Does anybody have an explanation for the creation of the errorneous link?







      symlink udev drbd






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 6 '18 at 23:19









      JochemJochem

      83




      83




















          1 Answer
          1






          active

          oldest

          votes


















          0














          The udev rules for DRBD come from the drbd-utils. What version of DRBD utils do you have installed?



          The newest version, 9.2.2, includes additional rules with a comment from the devs that looks like it might address your issue:



          # This file contains the rules to create named DRBD devices.

          SUBSYSTEM!="block", GOTO="drbd_end"
          KERNEL!="drbd*", GOTO="drbd_end"

          IMPORTprogram="@sbindir@/drbdadm sh-udev minor-%m"

          # Use symlink from the environment if available
          # some udev version thought it was a good idea to change a long established
          # default of string_escape=none to string_escape=replace :-/
          # therefore, recent enough drbdadm will no longer export space separated lists.
          ENVSYMLINK_BY_DISK!="", SYMLINK+="$envSYMLINK_BY_DISK"
          ENVSYMLINK_BY_RES!="", SYMLINK+="$envSYMLINK_BY_RES", GOTO="have_symlink"
          ENVSYMLINK!="", OPTIONS+="string_escape=none", SYMLINK="$envSYMLINK", GOTO="have_symlink"

          # Legacy rules for older DRBD 8.3 & 8.4 when drbdadm sh-udev did not yet export SYMLINK
          ENVDISK!="", SYMLINK+="drbd/by-disk/$envDISK"
          ENVRESOURCE!="", SYMLINK+="drbd/by-res/$envRESOURCE"

          LABEL="have_symlink"

          ENVDEVICE=="drbd_?*", SYMLINK+="$envDEVICE"

          LABEL="drbd_end"





          share|improve this answer

























          • Great! This solves exactly the problem. Thank you very much!

            – Jochem
            Mar 7 '18 at 20:39











          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f428640%2fwhy-does-udev-concatenate-two-symlinks%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0














          The udev rules for DRBD come from the drbd-utils. What version of DRBD utils do you have installed?



          The newest version, 9.2.2, includes additional rules with a comment from the devs that looks like it might address your issue:



          # This file contains the rules to create named DRBD devices.

          SUBSYSTEM!="block", GOTO="drbd_end"
          KERNEL!="drbd*", GOTO="drbd_end"

          IMPORTprogram="@sbindir@/drbdadm sh-udev minor-%m"

          # Use symlink from the environment if available
          # some udev version thought it was a good idea to change a long established
          # default of string_escape=none to string_escape=replace :-/
          # therefore, recent enough drbdadm will no longer export space separated lists.
          ENVSYMLINK_BY_DISK!="", SYMLINK+="$envSYMLINK_BY_DISK"
          ENVSYMLINK_BY_RES!="", SYMLINK+="$envSYMLINK_BY_RES", GOTO="have_symlink"
          ENVSYMLINK!="", OPTIONS+="string_escape=none", SYMLINK="$envSYMLINK", GOTO="have_symlink"

          # Legacy rules for older DRBD 8.3 & 8.4 when drbdadm sh-udev did not yet export SYMLINK
          ENVDISK!="", SYMLINK+="drbd/by-disk/$envDISK"
          ENVRESOURCE!="", SYMLINK+="drbd/by-res/$envRESOURCE"

          LABEL="have_symlink"

          ENVDEVICE=="drbd_?*", SYMLINK+="$envDEVICE"

          LABEL="drbd_end"





          share|improve this answer

























          • Great! This solves exactly the problem. Thank you very much!

            – Jochem
            Mar 7 '18 at 20:39















          0














          The udev rules for DRBD come from the drbd-utils. What version of DRBD utils do you have installed?



          The newest version, 9.2.2, includes additional rules with a comment from the devs that looks like it might address your issue:



          # This file contains the rules to create named DRBD devices.

          SUBSYSTEM!="block", GOTO="drbd_end"
          KERNEL!="drbd*", GOTO="drbd_end"

          IMPORTprogram="@sbindir@/drbdadm sh-udev minor-%m"

          # Use symlink from the environment if available
          # some udev version thought it was a good idea to change a long established
          # default of string_escape=none to string_escape=replace :-/
          # therefore, recent enough drbdadm will no longer export space separated lists.
          ENVSYMLINK_BY_DISK!="", SYMLINK+="$envSYMLINK_BY_DISK"
          ENVSYMLINK_BY_RES!="", SYMLINK+="$envSYMLINK_BY_RES", GOTO="have_symlink"
          ENVSYMLINK!="", OPTIONS+="string_escape=none", SYMLINK="$envSYMLINK", GOTO="have_symlink"

          # Legacy rules for older DRBD 8.3 & 8.4 when drbdadm sh-udev did not yet export SYMLINK
          ENVDISK!="", SYMLINK+="drbd/by-disk/$envDISK"
          ENVRESOURCE!="", SYMLINK+="drbd/by-res/$envRESOURCE"

          LABEL="have_symlink"

          ENVDEVICE=="drbd_?*", SYMLINK+="$envDEVICE"

          LABEL="drbd_end"





          share|improve this answer

























          • Great! This solves exactly the problem. Thank you very much!

            – Jochem
            Mar 7 '18 at 20:39













          0












          0








          0







          The udev rules for DRBD come from the drbd-utils. What version of DRBD utils do you have installed?



          The newest version, 9.2.2, includes additional rules with a comment from the devs that looks like it might address your issue:



          # This file contains the rules to create named DRBD devices.

          SUBSYSTEM!="block", GOTO="drbd_end"
          KERNEL!="drbd*", GOTO="drbd_end"

          IMPORTprogram="@sbindir@/drbdadm sh-udev minor-%m"

          # Use symlink from the environment if available
          # some udev version thought it was a good idea to change a long established
          # default of string_escape=none to string_escape=replace :-/
          # therefore, recent enough drbdadm will no longer export space separated lists.
          ENVSYMLINK_BY_DISK!="", SYMLINK+="$envSYMLINK_BY_DISK"
          ENVSYMLINK_BY_RES!="", SYMLINK+="$envSYMLINK_BY_RES", GOTO="have_symlink"
          ENVSYMLINK!="", OPTIONS+="string_escape=none", SYMLINK="$envSYMLINK", GOTO="have_symlink"

          # Legacy rules for older DRBD 8.3 & 8.4 when drbdadm sh-udev did not yet export SYMLINK
          ENVDISK!="", SYMLINK+="drbd/by-disk/$envDISK"
          ENVRESOURCE!="", SYMLINK+="drbd/by-res/$envRESOURCE"

          LABEL="have_symlink"

          ENVDEVICE=="drbd_?*", SYMLINK+="$envDEVICE"

          LABEL="drbd_end"





          share|improve this answer















          The udev rules for DRBD come from the drbd-utils. What version of DRBD utils do you have installed?



          The newest version, 9.2.2, includes additional rules with a comment from the devs that looks like it might address your issue:



          # This file contains the rules to create named DRBD devices.

          SUBSYSTEM!="block", GOTO="drbd_end"
          KERNEL!="drbd*", GOTO="drbd_end"

          IMPORTprogram="@sbindir@/drbdadm sh-udev minor-%m"

          # Use symlink from the environment if available
          # some udev version thought it was a good idea to change a long established
          # default of string_escape=none to string_escape=replace :-/
          # therefore, recent enough drbdadm will no longer export space separated lists.
          ENVSYMLINK_BY_DISK!="", SYMLINK+="$envSYMLINK_BY_DISK"
          ENVSYMLINK_BY_RES!="", SYMLINK+="$envSYMLINK_BY_RES", GOTO="have_symlink"
          ENVSYMLINK!="", OPTIONS+="string_escape=none", SYMLINK="$envSYMLINK", GOTO="have_symlink"

          # Legacy rules for older DRBD 8.3 & 8.4 when drbdadm sh-udev did not yet export SYMLINK
          ENVDISK!="", SYMLINK+="drbd/by-disk/$envDISK"
          ENVRESOURCE!="", SYMLINK+="drbd/by-res/$envRESOURCE"

          LABEL="have_symlink"

          ENVDEVICE=="drbd_?*", SYMLINK+="$envDEVICE"

          LABEL="drbd_end"






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 10 hours ago









          Rui F Ribeiro

          42.1k1484142




          42.1k1484142










          answered Mar 7 '18 at 16:24









          Matt KereczmanMatt Kereczman

          56227




          56227












          • Great! This solves exactly the problem. Thank you very much!

            – Jochem
            Mar 7 '18 at 20:39

















          • Great! This solves exactly the problem. Thank you very much!

            – Jochem
            Mar 7 '18 at 20:39
















          Great! This solves exactly the problem. Thank you very much!

          – Jochem
          Mar 7 '18 at 20:39





          Great! This solves exactly the problem. Thank you very much!

          – Jochem
          Mar 7 '18 at 20:39

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Unix & Linux Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f428640%2fwhy-does-udev-concatenate-two-symlinks%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          -drbd, symlink, udev

          Popular posts from this blog

          Word for a person who has no opinion about whether god existsWord for having a definite opinion while simultaneously withholding judgment?What's the opposite of “newcomer? Is ”veteran" OK?What do you call an “atheist” who might believe in an afterlife?What's a word for someone who wants to voice opinions but not have them challenged?Word for someone who dismisses contrary opinions as irrational?Somone who thinks they are overly special/out of the ordinaryIs there a word, phrase or idiom for “a person who is incapable of thinking about the future”?The belief that a god is human-likeA word for a non-famous person/thing you have heard a lot aboutAdjective for a person who enjoys taking care of their appearance

          What was this official D&D 3.5e Lovecraft-flavored rulebook?What was this set of RPG tools called?As a first-time DM should I let my players play complex character classes and roles?Nymph's Kiss and the RelationshipWhat was the name of this Cleric Prestige Class that shapes metal with its bare hands?Are the 3.5e Dragonlance books third party or official works?What's up with the domain Vile Darkness?What was this 80s book about RPGs?What was the name of this Werewolf band?What book had Rituals to “upgrade” animal companions to keep them viable at higher levels?What was this RPG that had rules for player-owned businesses?

          2017 IndyCar Series Contents Series news Teams and drivers Schedule Season summary Footnotes References External links Navigation menu"INDYCAR: Initial 2018 bodywork concepts unveiled"the original"IndyCar confirms switch to Performance Friction brakes in 2017""AJ Foyt Racing will switch to Chevy"the original"Carlos Munoz, Conor Daly will drive for AJ Foyt Racing""Zach Veach's Indy 500 Debut Confirmed with Foyt""No mass exodus from Honda after Ganassi switch""Ex-F1 driver Sato joins Andretti Autosport for 2017 IndyCar season""IndyCar's Ryan Hunter-Reay, sponsor DHL paired through 2020""hhgregg and Andretti Autosport announce partnership for key races in 2016""INDYCAR: Rossi re-signs with Andretti"the original"McLaren Formula 1 - Fernando Alonso to race at Indy 500 with McLaren, Honda and Andretti Autosport""Shank will finally take part in Indy 500 with Harvey, Andretti | MotorSportsTalk""Andretti adds Jack Harvey to Indy 500 field""Ganassi switches to Honda power for 2017""INDYCAR: Chilton returns to Ganassi"the original"IndyCar silly season: Who's going where in 2017?""INDYCAR: Kanaan, NTT Data return to Ganassi"the original"Kimball to remain at Ganassi for 2017""Coyne confirms Bourdais for 2017 IndyCar season""Davison to sub for Bourdais in Indy 500"the original"Gutierrez confirmed for Detroit IndyCar debut""Gutierrez returns with Coyne for rest of 2017 season""Vautier to drive for Coyne at Texas"the original"INDYCAR: Coyne confirms Jones for 2017"the original"Pippa Mann returns to Coyne for Indy 500""Karam, Dreyer & Reinbold teaming up again for Indianapolis 500""Pigot to return to Ed Carpenter Racing""Hildebrand confirmed as full-time Ed Carpenter driver""Veach to replace injured Hildebrand at Barber"the originalNew Team Harding Racing Enters Chaves for 101st Indianapolis 500"Juncos Racing Announces Entry in 101st Running of the Indianapolis 500 :: Juncos Racing""Juncos confirms Pigot for Indy 500""Saavedra confirmed in Juncos' second 500 entry"the original"Lazier confirms Indy 500 run after son's USF2000 debut"the original"Claman DeMelo to race for RLLR at Sonoma"the original"Rahal signs Servia and ace engineer for 2017""IndyCar: Aleshin returns with Schmidt"the original"Aleshin replaced by Saavedra for Toronto""Jack Harvey will pilot SPM No. 7 car at Watkins Glen, Sonoma""Jay Howard confirmed in Tony Stewart's supported SPM Indy entry""INDYCAR: Newgarden to wave the flag at Penske"the original"Pagenaud opts for No. 1 in 2017"the original"Penske confirms Newgarden for 2017""Montoya to stay with Team Penske in 2017""Target leaving IndyCar after 27 seasons with Chip Ganassi""Cavin: IndyCar could see complete driver/team shakeup in 2017""End of the road for KV Racing?""KV Racing confirms closure, equipment sold to Juncos""Juncos confirms IndyCar Series entry"the original"Juncos readies IndyCar program, aims for '17 500"the original"Harding Racing to add Texas, Pocono to schedule"the original"Sato signs with Andretti Autosport for 2017""INDYCAR: Aleshin in Doubt at SPM"the original"Long Beach notebook: JR Hildebrand breaks hand""Hildebrand cleared to return at Phoenix"the original"Bourdais to undergo surgery on multiple fractures""Aleshin loses Schmidt Peterson IndyCar ride""Saavedra in at SPM for Pocono, Gateway"the original"Bourdais to make return at Gateway"the original"The IndyCar Grand Prix no longer is sponsored by Angie's List""2017 IndyCar Series rulebook""2017 Verizon IndyCar Series Official Rulebook"Official websiteeeeee