마운트 지점이 공유되는지 쉽게 확인할 수 있는 방법이 있습니까?

마운트 지점이 공유되는지 쉽게 확인할 수 있는 방법이 있습니까?

mount--make-shared위에서 언급한 옵션이 있습니다 .여기. 하지만 특정 마운트 지점이 공유되는지 어떻게 알 수 있습니까?

답변1

Linux /proc/mountsin.here공유 옵션/proc/self/mountinfo이 파일에 표시하기에는 너무 새로운 내용이지만 1 에는 표시됩니다 . 이 파일에 대한 설명서는 다음 위치에 있습니다.filesystems/proc.txt커널 문서에서. 이 파일은 다음에 의해 생성되었습니다.show_mountinfo존재하다fs/namespace.c. 예시 라인은 다음과 같습니다:

42 18 98:0 / /mount_point rw shared:1 - ext3 /dev/sda1 rw,errors=continue
                             ^^^^^^^^

처음 6개 필드의 형식은 고정되어 있습니다. 그 뒤에는 피어 그룹에 탑재된 역할(있는 경우)을 나타내는 , 또는 shared:GROUPmaster:GROUP같은 0개 이상의 플래그 필드가 옵니다 . 파일 시스템별 섹션이 설명되며 항상 파일 시스템 유형 이름, 장치 이름 및 파일 시스템별 마운트 옵션으로 구성됩니다 .propagate_from:GROUPunbindable-

그러므로:

</proc/self/mountinfo awk -vmount_point='/mount/point' '
$5 == mount_point {
    i = 7;
    while ($i != "-") {if ($i ~ /^shared:/) exit 0; ++i}
    exit 1;
}'

¹ 최신 Linux 커널에서는 각 프로세스에 자체 파일 시스템 네임스페이스가 있으며 /proc/mounts이는 /proc/self/mounts.

관련 정보