Fix cross-device hardlink failure: fall back to symlink
When source block_log is on a different filesystem (e.g., /blockchain/) than the target cache dir (e.g., /cache/), hardlinks fail with 'Cross-device link' error. Fall back to symlink in this case.