foo.txt 및 bar.txt 파일과 NFS 공유인 두 개의 디렉터리(a 및 b)가 있습니다.
이 두 디렉터리를 디렉터리 병합으로 병합하고 싶습니다(쓰기 가능하지 않아도 됨)
이는 다음 명령을 사용하여 달성할 수 있습니다.
sudo mount -t overlay -olowerdir=a:b overlay merge
언뜻 보면 모든 것이 괜찮아 보입니다.
.
├── a
│ └── foo.txt
├── b
│ └── bar.txt
└── merge
├── bar.txt
└── foo.txt
하지만 파일 내용을 읽을 수 없습니다.
$ cat merge/foo.txt cat: merge/foo.txt: No such device or address
이는 NFS 공유에서만 발생하며 일반 FS에서는 문제가 없습니다.
문서에 따르면https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt:
오버레이 파일 시스템은 두 개의 파일 시스템, 즉 "상위" 파일 시스템과 "하위" 파일 시스템을 결합합니다.
두 개의 읽기 전용 파일 시스템으로 구성된 읽기 전용 오버레이는 모든 파일 시스템 유형을 사용할 수 있습니다.
그래서 NFS는 문제가 아닌 것 같아요.
답변1
어떤 커널을 사용하고 있습니까? 커널 4.2에 버그가 발생한 것 같습니다.