Randomly Needs to Rescan All Data

Hard links should be restored, but I think only if the restore operation actually includes multiple links to the same inode. For example, if /a/b and /c/d refer to the same inode and you only restore /a/b then it will not be made a hard link to whatever inode /c/d on the restore target actually refers to; only if /a/b and /c/d are restored in the same restic restore invocation would I expect them to point at the same inode at the end of the restore process.