Dancrumb
Dancrumb

Reputation: 27539

How do you make symbolic links work with a remote mount?

I have two servers, A and B

A has two filesystems, /alpha and /beta

I have a symbolic link:

ln -s /alpha/foo /beta/bar

Such that:

lrwxrwxrwx 1 root    root           70 Dec 22 13:32 /beta/bar -> /alpha/foo

Next, I mount /beta, remotely on B via an NFS mount

The link no longer works.

Is there a way to achieve this. I'd like to be able to access A:/alpha/foo on server B, but I want to be able to do it via the /beta/bar symbolic link.

Do I need to modify my mount, or my link? Or am I trying to achieve the impossible?

UPDATE

I should have added: 'without mounting /alpha to server B'. In short, I would like the symbolic link to be followed to the actual file in question whenever server B accesses /beta/bar

Upvotes: 22

Views: 67562

Answers (6)

mml_sw
mml_sw

Reputation: 105

You might be able to use the sshfs utility to do what you want to do. This will let you mount a filesystem on a remote computer, on your local one. Here's a reference to how to do this: https://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-ssh

Upvotes: 2

pixel
pixel

Reputation: 54

sounds like what you really want is a hard link. its another pointer to the same data in the filesystem, so to really delete that file and free up that disk space, you have to delete all hard links to it.

some scripts and tools can get confused by them.

Upvotes: -1

snakehiss
snakehiss

Reputation: 8774

Soft links only contain a path to another file on the local machine. You cannot reference a file that is not accessible on the local filesystem(s).

Options:

  • Don't use soft links, copy the file
  • Cross-linking (almost always a bad idea)
  • Reorganize/redo whatever imposes the file access requirement

Upvotes: 20

Huang F. Lei
Huang F. Lei

Reputation: 1865

soft symbol link's content is a path string, it doesn't know anything about how you mount filesystems. In your case, you can mount /alpha and /beta on B with sample path of A. But strongly suggest don't cross link between network system, that's hard to maintain.

Upvotes: 1

tengomucho
tengomucho

Reputation: 806

You will need to mount /alpha in your machine in order to have the link to work.

Upvotes: 0

robert
robert

Reputation: 34398

The link correctly points to /alpha/foo, but that doesn't exist on your machine. If you mount /alpha, the link will work.

Upvotes: 2

Related Questions