Nieprawidłowe łącze między urządzeniami podczas łączenia twardego w tym samym systemie plików

14

Mam plik /home/myuser/Desktop/rc/.netrc , który chcę hardlink do / root , tj. Katalog domowy użytkownika root . Kiedy robię:

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

daje następujący błąd:

ln: tworzenie twardego łącza /root/.netrc' =>.netrc ': Nieprawidłowe łącze między urządzeniami

ale działa, gdy twarde łącze pliku do domu użytkownika, czyli do / domu / użytkownika .

Więc w czym tkwi problem, dlaczego mówi o niepoprawnych urządzeniach na wiele urządzeń, skoro jest tu tylko jeden system plików?

PS. Używam RHEL6

Elvin Aslanov
źródło
btw moje uprawnienia .netrc to 600, tak jak powinno być
Elvin Aslanov
1
Czy na pewno dwa katalogi są w tym samym systemie plików? Uruchom mount | column -ti spójrz. Lub uruchom mountpoint -d /, mountpoint -d /home, mountpoint -d user, i mountpoint -d /root. Powinieneś dostać ... is not a mountpointza ostatnie trzy.
2
Nie przesyłaj postów na wielu stronach StackExchange.
@EvanTeitelman Prawdziwy wygląd nie jest mount | column -tale column -t < /proc/mounts.
Hauke ​​Laging
1
@HaukeLaging: Masz rację. /proc/mountsjest bardziej prawdopodobne, że pokaże wszystkie wierzchowce w systemie niż /etc/mtab, z którego mountpobiera informacje. Choć warto zauważyć, że w wielu nowoczesnych systemów, /etc/mtaba /proc/mountsoba powiązany /proc/self/mounts.

Odpowiedzi:

8

najprawdopodobniej twój /homekatalog nie znajduje się na tej samej partycji co /rootkatalog.

Możesz to łatwo sprawdzić za pomocą cat /etc/fstab twardych dowiązań, których nie można tworzyć między różnymi partycjami, mogą tylko dowiązania symboliczne.

fduff
źródło
4

Wydaje mi się, że NAJLEPSZY sposób to NIE używać łącza HARD, ale zamiast tego używać łącza symbolicznego. Przekonasz się, że jest to o wiele mniej kłopotów, a wszystko działa dobrze. Twardy link ma kilka interesujących problemów, jeśli nie jesteś ich świadomy.

Zobacz man lni sprawdź -sopcję!

Zasadniczo proszę używać linków symbolicznych zamiast linków HARD.

mdpc
źródło
9
Chociaż może rozwiązać problem, tak naprawdę nie wyjaśnia, dlaczego tak się dzieje.
Bex,