Link de dispositivo cruzado inválido durante a ligação direta no mesmo sistema de arquivos

14

Eu tenho /home/myuser/Desktop/rc/.netrc arquivo que eu quero hardlink para / root , ou seja, diretório inicial do usuário root . Quando eu faço:

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

fornece o seguinte erro:

ln: criando link /root/.netrc' =>físico .netrc ': link de dispositivo inválido

mas funciona quando eu vinculo o arquivo à casa do myuser , ou seja, a / home / myuser .

Então, qual é o problema, por que diz vários dispositivos inválidos quando há apenas um sistema de arquivos aqui?

PS. Eu estou usando RHEL6

Elvin Aslanov
fonte
btw meus permissões .netrc é de 600, como deveria ser
Elvin Aslanov
1
Você tem certeza de que os dois diretórios estão no mesmo sistema de arquivos? Corra mount | column -te dê uma olhada. Ou, executar mountpoint -d /, mountpoint -d /home, mountpoint -d user, e mountpoint -d /root. Você deve pegar ... is not a mountpointos três últimos.
2
Não faça postagens cruzadas em vários sites do StackExchange.
@EvanTeitelman A aparência real não é mount | column -tmas column -t < /proc/mounts.
Hauke ​​Laging
1
@HaukeLaging: Você está certo. /proc/mountsé mais provável que mostre todas as montagens em um sistema do /etc/mtabque é de onde mountextrai suas informações. No entanto, vale a pena notar que em muitos sistemas modernos, /etc/mtabe /proc/mountsambos estão ligados /proc/self/mounts.

Respostas:

7

é mais provável que seu /homediretório não esteja na mesma partição que o /rootdiretório.

Você pode verificar isso facilmente, cat /etc/fstab pois os hardlinks não podem ser criados entre diferentes partições, apenas os symlinks podem.

fduff
fonte
4

Parece-me que a MELHOR maneira NÃO é usar um link DURO, mas sim um link simbólico. Você encontrará muito menos problemas e as coisas funcionam muito bem. O link físico tem alguns problemas interessantes, se você não os conhece.

Veja man lne confira a -sopção!

Em geral, use links simbólicos em vez de links HARD.

mdpc
fonte
8
Embora possa resolver o problema, na verdade não explica por que isso está acontecendo.
Bex