질문

질문

상상하다

  • NFS 공유가 마운트됩니다 /mnt/temp/dir(다른 공유는 하위 디렉터리에 마운트됨).
  • 거기에 모든 것이 있지만 umount, 그것은 잘 작동하지 않습니다(어쩌면 umount /mnt/temp/dir처음처럼 "중첩된" 공유를 제거하지 않을 수도 있습니다 /mnt/temp/dir/subdir*).
  • 그래요mount -o bind /data/temp /mnt/temp
  • 그래요mount /mnt/temp/dir
  • 나는 이것을 한다 mount /mnt/temp/dir/subdir1. 그리고 그것은 훌륭하게 작동한다.

참고: /mnt/temp원래 루트( /) 파일 시스템 에서 호스팅 /dev/sda6되었으며 /data의 또 다른 파일 시스템입니다 /dev/sda8.

질문

/mnt/temp/dir루트 파일 시스템의 디렉터리를 삭제할 수 없습니다 .

# mount -o bind / /test/root
# rmdir /test/root/mnt/temp/dir
rmdir: failed to remove `dir': Device or resource busy

약간의 설명

/mnt/temp/dir설치됨두 배, 아마도 루트 fs에서 한 번, /datafs에서 한 번일 것입니다.

이것은 cat /proc/mounts:

nfsserver:/some/share/ /mnt/temp/dir nfs rw,relatime(...) 0 0
nfsserver:/some/share/ /mnt/temp/dir nfs rw,relatime,(...) 0 0

더욱 흥미로운 점은 다음과 같습니다 cat /proc/1/mountinfo.

29 20 0:18 / /mnt/temp/dir rw,relatime - nfs nfsserver:/some/share/ rw,(...)
33 31 0:18 / /mnt/temp/dir rw,relatime - nfs nfsserver:/some/share/ rw,(...)

보세요, 처음 두 숫자는다른.

커널 문서에 따르면이 두 필드의 경우:

(1) mount ID:  unique identifier of the mount (may be reused after umount)
(2) parent ID:  ID of parent (or of self for the top of the mount tree)

/data또한 서로 다른 상위 20과 31(루트 fs 및 fs) 이 있습니다 . 다음을 참조하세요.

20 1 8:6 / / rw,relatime - ext4 /dev/sda6 rw,(...)
31 20 8:8 /temp /mnt/temp rw,relatime - ext4 /dev/sda8 rw,(...)

이 작업을 시도하면 umount /mnt/temp/dir두 가지 오류 메시지가 나타납니다.

umount.nfs: /mnt/temp/dir: device is busy
umount.nfs: /mnt/temp/dir: device is busy

질문

어떻게 umount"나쁜" 상태가 될 수 있습니까(설치 ID 29)?

umount(2)시스템 호출 도 "설치 ID"가 아닌 경로를 매개변수로 사용합니다.

답변1

이는 테스트되지 않았지만 최소한 "장치 사용 중" 문제를 우회할 수 있습니다.

장착 지점을 다른 위치로 이동합니다. 이렇게 하면 두 마운트 지점 사이에 더 이상 혼동이 없습니다.

mkdir /foo
mount --move /mnt/temp/dir /foo

관련 정보