Kodi smb not following NTFS junctions (to other drives)

  • Libreelec/Kodi 9.02 connecting to a smb share on Windows 10 Prof.

    Kodi is fine using the share and it's subdirs there.

    On this share there are two NTFS Junctions (kind of softlinks) named"!A" and "!B". these junction redirect to additional drives on the WIn10 box (A: and B:).

    All tests done with same SMB user account, so it's not an ACL issue.

    Using a Windows client to access the client: everything is fine. !A/!B are visible and the windows client can follow that link and see alls files/subdirs on A: and B:

    Now with LibreElec/Kodi:

    The junctions are not visible in Kodi if the drives A: and B: are present on the SMB server.

    When I dismount and remove the drives A: and/or B: from the Windows-Server, THEN the junctions !A and !B are becoming visible in Kodi.

    But of course that's of no use as the junctions are a dead end then.

    Any idea what's going on here and how to fix this?

  • Kodi uses Samba smbclient to mount SMB shares and this will not follow Windows aliases and maybe NTFS junction things (never heard of them). The only other thing you can try is mounting shares via systemd (see /storage/.config/system.d/) and then having Kodi access the now-local drive. I have no idea if the kernel SMB capabilities support following junction links or not .. you have to experiment.

  • Thanks everybody for your comments.

    I'll do some tests with smbclient and see how that behaves.

    I remember that this DID work in the past with the default software (WeTek Play box). But that crashed a year ago and the filesystem was broken. So I re-installed the lastest supported LibreElec (9.0.2) and here these softlinks (=NTFS Junctions) do not work any more.

    BTW: on Windows I create such a Junction to another drive or directory with this command:

    mklink /d /j c:\anydir t:

    This creates a junction "C:\anydir" which is showing drive T: in that subdir.

    --

    I did a test with smbclient and everything is working there!

    Code
    LibreELEC:~ # smbclient -U xx  //xxx/yyy
    Enter WORKGROUP\xx's password:
    Try "help" to get a list of possible commands.
    smb: \> dir 
      .                                   D        0  Sun Feb 16 20:17:17 2020
      ..                                  D        0  Sun Feb 16 20:17:17 2020
      !A                                  D        0  Sat Oct 26 15:22:34 2019
      !B                                  D        0  Sat Aug 17 19:50:41 2019

    So both junctions are visible (one drive is connected; the other is not);

    In Kodi only !B is visible (the drive NOT connected); !A is missing.

    so I checked whether smbclient can see files/directories of the next level (which are on the linked drive A):

    Code
    smb: \> dir !A/
      $RECYCLE.BIN                      DHS        0  Sun Jan 14 11:56:24 2018  
      movies                              D        0  Sat Jan 25 20:34:35 2020  
      System Volume Information         DHS        0  Fri Nov 17 18:05:33 2017  
      music                               D        0  Fri Sep  6 17:14:26 2019  
      misc                                D        0  Mon Oct 28 21:24:13 2019
                    244189887 blocks of size 4096. 90550586 blocks available

    Yes; smbclient is workiing with that share in the way it should do. It sees all directories and files down the tree.

    But Kodi is not.

    any idea how to investigate further?

    Edited 2 times, last by motions: did some more tests (February 16, 2020 at 10:17 PM).

  • I remembered that Kodi supports configuration of smbclient through /storage/.kodi/.smb/user.conf .. if the file exists and containts Samba (client) config settings at startup they will be included in the configuration used. Do some reading of Samba documentation to see if there are any client options that can be set to follow symlinks/aliases? And again .. you might want to explore mounting from systemd instead of Kodi.