From 3a16bd2e08cfa8995ad8b15f79b6188a57e9c00a Mon Sep 17 00:00:00 2001 From: eleksir Date: Sat, 18 Apr 2026 12:22:18 +0300 Subject: [PATCH] GNU Tar does not tolerate with leading slashes, cut them off from hardlinks explicitly --- internal/backer/archive.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/backer/archive.go b/internal/backer/archive.go index 59b6a53..28d211d 100644 --- a/internal/backer/archive.go +++ b/internal/backer/archive.go @@ -136,7 +136,8 @@ func writeFilesToTar(ctx context.Context, filepaths []string, tw *tar.Writer, cl if inode != 0 { if existingPath, seen := seenInodes[inode]; seen { // This is a hard link to already-archived file. - linkTarget = existingPath + // To avoid "tar: Removing leading `/' from hard link targets" message, remove leading slash. + linkTarget = strings.TrimPrefix(filepath.ToSlash(filepath.Clean(existingPath)), "/") isHardLink = true log.Debugf("Hard link detected: %s -> %s", fpath, existingPath)