많은 사람들이 리눅스가 바인드 마운트에 대한 정보를 보관하지 않는다고 말하면서, 그 소스와 소스 목록을 얻을 방법이 없습니다. 여기 몇 가지 예가 있어요.
에서 여기에 코멘트 중 하나 :
IIRC는이 정보를 어디에도 보관하지 않습니다. 이후
mount --bind
두 사본이 동등하며 다른 것보다 "원본"인 것은 없습니다. 이미 마운트 해제했다면 원본이 없을 수 있습니다/mnt
.에서 이 사이트에 대한 답변 :
따라서 마운트 마운트가 바인드 마운트 인 것을 기억하는 유일한 방법은에 마운트 명령 로그가 남아있는 것
/etc/mtab
입니다. 바인드 마운트 조작은 바인드 마운트 옵션으로 표시됩니다 (파일 시스템 유형이 무시되도록 함). 그러나 mount에는 특정 옵션 세트로 마운트 된 파일 시스템 만 나열하는 옵션이 없습니다.에서 데비안 버그 리포트 :
이것은 의도적 인 것입니다. 두 마운트 지점은 모든면에서 완전히 동일하므로 커널은이를 구별하기위한 플래그를 유지하지 않습니다.
위의 내용은 말도 안됩니다. 이 도구 findmnt
는 바인드 마운트의 소스 경로를 나열 할 수 있습니다 (의 형식으로 device[source-path]
; 또한 장치가 아닌 소스 경로 만 나열하려고합니다 ). Linux 커널이 바인드 마운트를 유지 관리하는 경우 해당 정보를 어딘가에 저장해야합니다 . 그렇지 않으면 이 정보 /home
가 바인딩되어 있음을 알 수 없습니다 /users
. 이 데이터는 어디에 있습니까? RAM의 모호한 영역에 저장되어 있습니까? 합니까 findmnt
에서 보면 /proc
어딘가?
/proc/self/mountinfo
비교적 최근에 재구성 된 것 같아 . 나는 경로 정보가 없었지만 RHEL7 컴퓨터가 있고 링크에서 언급했듯이 Wheezy 가하는 것처럼 RHEL6 컴퓨터에있었습니다.
/dev/A
에 장착 /B
하고 당신이 mount --bind /B /C
오래된 커널은 기억 /B → /dev/A
하고 /C → /dev/A
그들 사이의 관계를 기억하지 않는다, /B
와 /C
. 따라서 마운트 해제는 /B
자연스럽게 아무런 영향을 미치지 않습니다 /C
. 최신 커널 /C
은의 바인드 마운트 /B
였지만 마운트가 해제 /C
되어도 계속 작동 하지 못하게하는 방법을 /B
정확히 알고 있습니다.
findmnt
실행하고 있으며 어떤 옵션을 제공하고 있습니까? Mine은 그것을 인쇄하지 않고 소스 코드를 보고이 정보를 가지고 있지 않은 것으로_PATH_PROC_MOUNTINFO
보입니다/proc/self/mountinfo
.