Lien multi-périphérique non valide lors de la liaison fixe dans le même système de fichiers

14

J'ai le fichier /home/myuser/Desktop/rc/.netrc que je veux un lien dur vers / root , c'est-à-dire le répertoire personnel de l' utilisateur root . Quand je fais:

ln /home/user/Destkop/rc/.netrc /root

il donne l'erreur suivante:

ln: création d'un lien matériel /root/.netrc' =>.netrc ': lien multi-périphérique non valide

mais cela fonctionne quand je lie le fichier à la maison de myuser , c'est-à-dire à / home / myuser .

Alors, quel est le problème, pourquoi il dit cross-devices invalides alors qu'il n'y a qu'un seul système de fichiers ici?

PS. J'utilise RHEL6

Elvin Aslanov
la source
btw mes autorisations .netrc est de 600, comme il se doit
Elvin Aslanov
1
Êtes-vous sûr que les deux répertoires sont sur le même système de fichiers? Courez mount | column -tet jetez un œil. Ou, courir mountpoint -d /, mountpoint -d /home, mountpoint -d useret mountpoint -d /root. Vous devriez obtenir ... is not a mountpointpour les trois derniers.
2
Veuillez ne pas croiser les publications sur plusieurs sites StackExchange.
@EvanTeitelman Le vrai look n'est pas mount | column -tmais column -t < /proc/mounts.
Hauke ​​Laging
1
@HaukeLaging: Vous avez raison. /proc/mountsest plus susceptible d'afficher toutes les montures d'un système que /etc/mtab, d'où il mounttire ses informations. Cependant, il convient de noter que sur de nombreux systèmes modernes, /etc/mtabet /proc/mountssont tous deux liés à /proc/self/mounts.

Réponses:

8

il est fort probable que votre /homerépertoire ne se trouve pas sur la même partition que le /rootrépertoire.

Vous pouvez facilement vérifier cela avec des cat /etc/fstab liens physiques ne peuvent pas être créés entre différentes partitions, seuls les liens symboliques le peuvent.

fduff
la source
4

Il me semble que la MEILLEURE façon n'est PAS d'utiliser un lien HARD mais d'utiliser un lien symbolique à la place. Vous constaterez que c'est beaucoup moins compliqué et les choses fonctionnent très bien. Les liens durs ont des problèmes intéressants si vous ne les connaissez pas.

Voir man lnet commander l' -soption!

Veuillez en général utiliser des liens symboliques au lieu de liens HARD.

mdpc
la source
9
Bien que cela puisse résoudre le problème, cela n'explique pas vraiment pourquoi cela se produit.
Bex