Linux는 마운트 지점의 기존 파일과 어떤 관계가 있습니까?


52

이미 파일이 들어있는 폴더를 마운트하려고하면 Linux에서 오류 메시지가 표시되거나 마운트 된 파일 시스템과 폴더에 이미있는 파일을 모두 표시합니까?


2
항상 일부 테스트 파일로 시도해 볼 수 있습니까?
Chris

할 수 있다면 할 것입니다. 테스트 할 것이 없었습니다. 문제의 드라이브를 마운트 해제하고 마운트하려고 시도했지만 둘 다 동일한 파일을 가지고 있기 때문에 결과가 명확하지 않았습니다.
슬림

파일 존재 하지 않도록 폴더를 쓸 수 없도록 만드는 방법 이 있습니까?
endolith

답변:


33

폴더가 마운트되고 폴더가 마운트 해제되면 파일이 사라지고 파일이 사라집니다.


1
사라진다는 것은 무슨 뜻입니까? 서버에 계속 존재하며 표시되지 않거나 삭제됩니까?
슬림

빨리 확인 하겠지만 삭제 된 것 같습니다.
Azz

17
+1 디렉토리가 "위"에 마운트되어있는 동안 파일은 보이지 않습니다. 그들은 결코 떠나지 않으며, 단지 접근 할 수 없습니다 ...
sleske

10
스택처럼 작동하며 다른 것을 마운트하면 이전 내용이 숨겨집니다. 마운트를 해제하면 이전 항목이 다시 표시됩니다.
vtest

4
"폴더가 마운트 해제되면 다시 돌아온다"고 말한 사람이 3 분 후에 "삭제되었다고 생각합니다"라고 말한 사람에 대해 혼란스러워합니다. 고맙게도 다른 모든 사람들에게 전자는 여기의 현실입니다.
underscore_d

111

디렉토리에 파일 시스템을 마운트하면 /mount-point더 이상 /mount-point직접 파일에 액세스 할 수 없습니다 . 그것들은 여전히 ​​존재하지만 /mount-point이제는 마운트 지점으로 사용 된 디렉토리가 아니라 마운트 된 파일 시스템의 루트를 참조하므로 최소한이 방법으로이 디렉토리의 내용에 액세스 할 수 없습니다. 예를 들면 다음과 같습니다.

# touch /mount-point/somefile
# ls /mount-point/somefile
/mount-point/somefile
# mount /dev/something /mount-point
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory

마운트 된 파일 시스템과 이미 존재하는 데이터의 병합 된보기를 얻는 방법이 있지만 공용 파일 시스템 이라는 추가 계층이 필요합니다 .

Linux에서는 숨겨진 파일을 볼 수있는 방법이 있습니다. mount --bind마운트 지점이있는 파일 시스템의 다른보기를 얻는 데 사용할 수 있습니다 . 예를 들어

mount --bind / /other-root-view

루트 파일 시스템의 모든 파일은 아래에 /other-root-view있습니다.

# cat /other-root-view/etc/hostname 
darkstar

특히, /mount-point이제 액세스 할 수 /other-root-view/mount-point및 이후 /other-root-view/mount-point마운트 지점이 아닌, 당신은 그 내용이 볼 수 있습니다 :

# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
# ls /other-root-view/mount-point/somefile
/other-root-view/mount-point/somefile

5
Gilles,이 답변은 NSF 마운트 포인트 아래에 저장된 별표 기록을 얻어야 할 때 방금 엉덩이를 구했습니다! 저는 항상 --bind가 사용자와 동일한 관점을 가지고 있다고 생각했습니다. 감사합니다!
andyortlieb

디렉토리는 어떻습니까? 마운트 한 /mount-point/1/다음 다른 파일 시스템을 마운트 한 경우 /mount-point/에도 계속 액세스 할 수 /mount-point/1/있습니까?
CMCDragonkai

@ CMCDragonkai 예, 내 대답에 설명 된대로 바인드 마운트를 사용하여 간접적으로.
Gilles 'SO- 악마 그만해

Giles, 이것은 훌륭한 기술이며 내 시스템에 무엇이 있는지 분석하는 데 도움이되었습니다. 또한 마운트 지점을 통과하지 않고 모든 루트 디렉토리의 사용을 확인하는 방법 인 또 다른 질문에 도움이되었습니다. 해결책 : mkdir /r; mount --bind / /r; du -sh /r/*. 감사합니다
Manngo 2016 년

나중에 참조하기 위해 @Manngo는 필요하지 않습니다. du -x(와 동등한 du --one-file-system)은 --bindshenanigans 없이도 그렇게했을 것입니다 .
Darael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.