Copying symbolic links from NTFS to XFS SMB share fails

What is the problem you are having with rclone?

I'm copying from a NTFS drive on a Windows machine to a SMB share whose filesystem is XFS and is hosted on a Debian machine. I've used --link so symlinks are copied as symlinks (or in the rclone case as .rclonelink files) but for some reason it doesn't work, some errors are thrown and no symlink is copied, I know symlinks can't be copied from NTFS to any Linux shares because they treat symlink differently but I was counting on rclone storing the symlinks as .rclonelink files but no file is present. The symbolic link reference existing files (even if they referenced non-existing files that shouldn't matter, isn't it?

I:\ is a local drive, B:\ is a mounted network share. I've run the same command pointing to a local drive instead of the mounted network share and it copied the symlinks without problems though it copied them as actual symlinks and not .rclonelink files and as far as I've read symlinks should be stored as .rclonelink files, then when syncing from there the rclonelink files are converted to symlinks.

Run the command 'rclone version' and share the full output of the command.

rclone v1.66.0
- os/version: Microsoft Windows 10 IoT Enterprise LTSC 2021 21H2 (64 bit)
- os/kernel: 10.0.19044.4412 (x86_64)
- os/type: windows
- os/arch: amd64
- go/version: go1.22.1
- go/linking: static
- go/tags: cmount

Which cloud storage system are you using? (eg Google Drive)

None, copy is local drive to samba share.

The command you were trying to run (eg rclone copy /tmp remote:tmp)

rclone sync "C:\Symlinks" "B:\testing" --no-update-modtime --transfers 1 --checkers 40 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --links --create-empty-src-dirs --stats-file-name-length 0 --fast-list --multi-thread-streams=0 --metadata --delete-before -vv --log-file C:\tmp\rclone-symlinks.log

A log from the command that you were trying to run with the -vv flag

2024/05/20 12:43:48 DEBUG : rclone: Version "v1.66.0" starting with parameters ["rclone" "sync" "C:\\Symlinks" "B:\\testing" "--no-update-modtime" "--transfers" "1" "--checkers" "40" "--contimeout" "60s" "--timeout" "300s" "--retries" "3" "--low-level-retries" "10" "--links" "--create-empty-src-dirs" "--stats-file-name-length" "0" "--fast-list" "--multi-thread-streams=0" "--metadata" "--delete-before" "-vv" "--log-file" "C:\\tmp\\rclone-symlinks.log"]
2024/05/20 12:43:48 DEBUG : Creating backend with remote "C:\\Symlinks"
2024/05/20 12:43:48 DEBUG : Using config file from "C:\\Programas (2)\\rclone\\rclone.conf"
2024/05/20 12:43:48 DEBUG : local: detected overridden config - adding "{b6816}" suffix to name
2024/05/20 12:43:48 DEBUG : fs cache: renaming cache item "C:\\Symlinks" to be canonical "local{b6816}://?/C:/Symlinks"
2024/05/20 12:43:48 DEBUG : Creating backend with remote "B:\\testing"
2024/05/20 12:43:48 DEBUG : local: detected overridden config - adding "{b6816}" suffix to name
2024/05/20 12:43:48 DEBUG : fs cache: renaming cache item "B:\\testing" to be canonical "local{b6816}://?/B:/testing"
2024/05/20 12:43:48 DEBUG : Waiting for deletions to finish
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for checks to finish
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for transfers to finish
2024/05/20 12:43:48 DEBUG : file.7z.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.cmd.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.reg.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.txt.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for checks to finish
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for transfers to finish
2024/05/20 12:43:48 ERROR : file.7z.rclonelink: Failed to copy: symlink C:\OrigFiles\file.7z \\?\B:\testing\file.7z: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.cmd.rclonelink: Failed to copy: symlink C:\OrigFiles\file.cmd \\?\B:\testing\file.cmd: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.rclonelink: Failed to copy: symlink C:\OrigFiles\file \\?\B:\testing\file: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.reg.rclonelink: Failed to copy: symlink C:\OrigFiles\file.reg \\?\B:\testing\file.reg: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.txt.rclonelink: Failed to copy: symlink C:\OrigFiles\file.txt \\?\B:\testing\file.txt: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : Attempt 1/3 failed with 5 errors and: symlink C:\OrigFiles\file.txt \\?\B:\testing\file.txt: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 DEBUG : Waiting for deletions to finish
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for checks to finish
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for transfers to finish
2024/05/20 12:43:48 DEBUG : file.7z.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.cmd.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.reg.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.txt.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for checks to finish
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for transfers to finish
2024/05/20 12:43:48 ERROR : file.7z.rclonelink: Failed to copy: symlink C:\OrigFiles\file.7z \\?\B:\testing\file.7z: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.cmd.rclonelink: Failed to copy: symlink C:\OrigFiles\file.cmd \\?\B:\testing\file.cmd: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.rclonelink: Failed to copy: symlink C:\OrigFiles\file \\?\B:\testing\file: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.reg.rclonelink: Failed to copy: symlink C:\OrigFiles\file.reg \\?\B:\testing\file.reg: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.txt.rclonelink: Failed to copy: symlink C:\OrigFiles\file.txt \\?\B:\testing\file.txt: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : Attempt 2/3 failed with 5 errors and: symlink C:\OrigFiles\file.txt \\?\B:\testing\file.txt: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 DEBUG : Waiting for deletions to finish
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for checks to finish
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for transfers to finish
2024/05/20 12:43:48 DEBUG : file.7z.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.cmd.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.reg.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : file.txt.rclonelink: Need to transfer - File not found at Destination
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for checks to finish
2024/05/20 12:43:48 DEBUG : Local file system at //?/B:/testing: Waiting for transfers to finish
2024/05/20 12:43:48 ERROR : file.7z.rclonelink: Failed to copy: symlink C:\OrigFiles\file.7z \\?\B:\testing\file.7z: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.cmd.rclonelink: Failed to copy: symlink C:\OrigFiles\file.cmd \\?\B:\testing\file.cmd: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.rclonelink: Failed to copy: symlink C:\OrigFiles\file \\?\B:\testing\file: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.reg.rclonelink: Failed to copy: symlink C:\OrigFiles\file.reg \\?\B:\testing\file.reg: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : file.txt.rclonelink: Failed to copy: symlink C:\OrigFiles\file.txt \\?\B:\testing\file.txt: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 ERROR : Attempt 3/3 failed with 5 errors and: symlink C:\OrigFiles\file.txt \\?\B:\testing\file.txt: El archivo o directorio no es un punto de análisis repetido.
2024/05/20 12:43:48 INFO  : 
Transferred:   	        300 B / 300 B, 100%, 0 B/s, ETA -
Errors:                 5 (retrying may help)
Elapsed time:         0.1s

2024/05/20 12:43:48 DEBUG : 3 go routines active
2024/05/20 12:43:48 Failed to sync with 5 errors: last error was: symlink C:\OrigFiles\file.txt \\?\B:\testing\file.txt: El archivo o directorio no es un punto de análisis repetido.

IMO all works as expected.

Then it is treated as local (rclone does not have knowledge of your mounts) and rclone tries the same as local to local:

--links flag only applies when you transfer from local to remote.

What you can try is to instead of your B:/ drive use rclone smb remote.

Thanks. I just read that local to local (which for rclone the mounted drive is, as you pointed out) the symlinks are copied as symlinks. I thought the symlinks were always copied as .rclonelink files when using sync and then they are translated to symlinks when copying back. I think the docs should be clarified with that.

I've tried using this rclone sync :local,links:"C:\Symlinks" "B:\testing" ...the rest of the arguments minus --links and this time it worked as I was expecting, symlinks are copied as .rclonelink files, but why? I couldn't find any documentation regarding the use of :local,sync:source syntax

Taken from: Syncing links with --links between locally mounted drives fails due to: readlink, no such file or directory - #5 by ncw

You are right - docs should explain it in more details.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.