ln -s와 mount --rbind의 차이점은 무엇입니까?


8

차이점은 무엇입니까?

ln -s /mnt/extra/home /

mkdir /home
mount --rbind /mnt/extra/home /home

1
ln링크를 만든다; 특히 ln -s심볼릭 링크를 만듭니다. mount파일 시스템을 디렉토리에 마운트합니다. 공통점이 없습니다.
AlexP

그러나 mount --rbind /mnt/extra/home이미 마운트 된 디렉토리입니다
NerdOfLinux

:) 해결로 대답으로 그것을두고 나는이 질문을 표시합니다
NerdOfLinux

답변:


13

mount --rbind재귀 적 바인딩 마운트를 만듭니다. 즉, 마운트 된 파일 시스템 계층도을 /mnt/extra/home통해 액세스 할 수 있습니다 /home.

실제로 ln -s솔루션과 솔루션의 주요 차이점은 디렉토리 가있는 심볼릭 링크 mount --rbind가 있다는 점입니다 . 이 같은 도구에 영향을 미치는 , , / 등ln -s /homemount --rbindfinddftest[

또한 존재하는 ln -s경우 실패하고 /home존재 mount --rbind하지 않는 경우 또는 빈 디렉토리가 아닌 경우 실패합니다.

아래의 Mark 주석도 중요합니다. ln -ssymlink를 만들려면 쓰기 가능한 파일 시스템이 필요합니다.


7
가장 큰 차이점은 ln -s파일 시스템 을 수정하지만 mount --rbind그렇지는 않다는 것입니다. 즉, 홈 디렉토리를 읽기 전용 루트 (예 : 부팅 CD)에 마운트 할 수 있지만 심볼릭 링크를 만들 수는 없습니다.
Mark

3
--bind그리고 --rbind내 목표 디렉토리가 비어있는 경우, 그들은 단지 inaccessable을 떠나, 파일이입니다 무엇이든의 "위에"마운트 신경이 표시되지 않습니다
Xen2050

7

이 경우 바인드 마운트와 심볼릭 링크는 대부분의 경우 비슷하게 작동하지만 중요한 차이점이 있습니다.

심볼릭 링크는 조금 더 가볍습니다. 많은 관리 문제없이 수백 또는 수천 개의 기호 링크를 가질 수 있습니다. 그들은 특별한 시스템 레벨 설정을 요구하지 않고 파일 시스템에 앉아 있습니다.

cp 및 rsync와 같은 도구로 심볼릭 링크를 올바르게 백업하고 복사 할 수 있습니다. 즉, 도구는 심볼릭 링크를 인식하고 복사하여 다른 곳에서 복원 할 때 링크가 복원되고 올바른 대상을 가리 키도록합니다. 기본적으로 모두 "올바로"작동합니다. 반대로, 바인드 마운트를 백업하거나 복사 할 때 마운트가 투명하게 처리되어 파일 자체가 복사되어 다른 위치에 동일한 파일이 있으면 중복이 발생하여 원하는 경우 추가 작업이 필요할 수 있습니다 대상에서 바인드 마운트를 복제합니다.

링크에 액세스 할 수있는 모든 사용자가 심볼릭 링크를 수정하거나 삭제할 수 있으므로 수퍼 유저 전용으로 만들거나 특정 사용자에게 쉽게 열 수 있습니다. 바인드 마운트는 수퍼 유저 만 설정하거나 수정할 수 있습니다.

이것이 상징적 인 링크의 빛나는 보증처럼 들리면, 그렇습니다. 파일과 디렉토리를보다 간단하게 연결하는 방법입니다. 심볼릭 링크가 작동하지 않는 상황에만 바인드 마운트를 사용하면 생각보다 적은 상황이 발생할 수 있습니다. 백업 및 동기화 도구를 포함한 대부분의 도구는 심볼릭 링크에 대해 적절한 기본 동작을 가지며 심볼릭 링크 처리를 구성 할 수 있습니다. 바인드 마운트는 이러한 도구에 투명하므로 유연성이 떨어지고 합리적인 동작을 잃을 수 있습니다 (예 : 위에서 언급 한 것처럼 백업에서 디렉토리 복제).


0

또 다른 차이점은 심볼릭 링크가 symbolic이라는 것입니다 . 즉, 경로 ( 문자열) 만 참조하며 대상 경로에서 하위 디렉토리 / 파일을 열 때마다 역 참조됩니다. 대조적으로, mount --rbind각각의 역 참조에서 경로가 재평가되지 않는 하드 링크처럼 작동합니다.

이는와 같은 일부 시나리오에서 차이를 만듭니다 chroot. 예를 들어 vsftpd chroot 는 로그인 한 FTP 사용자 계정의 홈 디렉토리에 있습니다. 따라서 해당 디렉토리에 심볼릭 링크를 넣으면 해당 디렉토리 vsftpd를 역 참조 할 수 없으므로 FTP를 통해 대상에 액세스 할 수 없습니다. 대신 할 경우 mount --rbind, 다음 vsftpd단지 액세스 것 그 하위 트리 정말 거기에있는 것처럼, 당신은 하드 링크 된 파일을 거라고 때 유사 거기.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.