요약
내 로컬 컴퓨터에서 NFS 공유를 제공하고 있으며 공유를 마운트하고 액세스하는 것이 예상대로 작동하는 동안 NFS를 overlayfs의 하위 디렉터리로 참조하려고 하면 하위 디렉터리에 대한 exec/read/write 권한이 필요한 작업이 실패합니다. 및 디스플레이지원되지 않는 작업
설정
이것이 로컬로 설치를 설정하는 방법입니다.
sudo mkdir -p tmpfs_dir
sudo mount -t tmpfs -o size=4096m tmpfs tmpfs_dir
mkdir -p tmpfs_dir/{lower,upper,work}
sudo mount -t nfs -o ro,nolock,noacl,vers=3,proto=tcp 127.0.0.1:/nfsshare tmpfs_dir/lower
mkdir -p overlay_dir
sudo mount -t overlay -o lowerdir=tmpfs_dir/lower,upperdir=tmpfs_dir/upper,workdir=tmpfs_dir/work none overlay_dir
overlayfs의 루트에서 ls를 호출합니다.좋아요
ls -lah overlay_dir
total 108K
drwxr-xr-x 1 myuser myuser 40 Feb 12 00:31 .
drwxr-xr-x 7 myuser myuser 4.0K Feb 11 17:19 ..
drwxr-xr-x 2 root root 4.0K Aug 20 16:07 bin
drwxr-xr-x 4 root root 4.0K Aug 16 14:36 boot
drwxr-xr-x 20 root root 4.0K Aug 20 15:57 dev
drwxr-xr-x 98 root root 4.0K Sep 10 18:13 etc
drwxr-xr-x 3 root root 4.0K Aug 7 2019 home
...
overlayfs의 하위 디렉터리에서 ls를 호출합니다.휴식 시간
ls -lah overlay_dir/bin
ls: cannot open directory 'overlay_dir/bin': Operation not supported
NFS의 루트 디렉터리에서 ls를 호출합니다.좋아요
ls -lah tmpfs_dir/lower
total 108K
drwxr-xr-x 1 myuser myuser 40 Feb 12 00:31 .
drwxr-xr-x 7 myuser myuser 4.0K Feb 11 17:19 ..
drwxr-xr-x 2 root root 4.0K Aug 20 16:07 bin
drwxr-xr-x 4 root root 4.0K Aug 16 14:36 boot
drwxr-xr-x 20 root root 4.0K Aug 20 15:57 dev
drwxr-xr-x 98 root root 4.0K Sep 10 18:13 etc
drwxr-xr-x 3 root root 4.0K Aug 7 2019 home
...
NFS의 하위 디렉토리에서 ls를 호출합니다.좋아요
ls -lah tmpfs_dir/lower/bin
total 16M
drwxr-xr-x 2 root root 4.0K Aug 20 16:07 .
drwxr-xr-x 26 root root 4.0K Feb 7 14:57 ..
-rwxr-xr-x 1 root root 1.1M Jun 6 2019 bash
-rwxr-xr-x 1 root root 700K Mar 12 2018 btrfs
lrwxrwxrwx 1 root root 5 Mar 12 2018 btrfsck -> btrfs
-rwxr-xr-x 1 root root 368K Mar 12 2018 btrfs-debug-tree
-rwxr-xr-x 1 root root 364K Mar 12 2018 btrfs-find-root
-rwxr-xr-x 1 root root 388K Mar 12 2018 btrfs-image
...
overlayfs의 하위 디렉터리에서 실행 파일 호출 -휴식 시간
overlay_dir/bin/bash
bash: overlay_dir/bin/bash: Operation not supported
overlayfs를 사용하여 액세스한 루트 디렉토리 아래의 모든 항목이 표시되는 것으로 보입니다.지원되지 않는 작업실수. 그러나 나는 재귀 호출이chown
수리하다공유에 있는 파일을 덮어쓰지만 (i) 설치 후 권한을 수정하는 것은 불필요한 해킹처럼 보이며 (ii) 그렇게 하지 않고는 파일 소유자를 감지하는 것이 약간 번거롭습니다(예: sudo chown
모든 하위 디렉터리에서 맹목적으로 실행). 주인이 달라요
sudo chown -R root bin
ls -lah bin/bash
-rwxr-xr-x 1 root root 1.1M Jun 6 2019 bin/bash
overlay_dir$ bin/bash -c "echo 'why does it work now?'"
why does it work now?
너무 길어요.
탑재 후 권한을 수정할 필요가 없도록 overlayfs에서 NFS를 올바르게 탑재하려면 어떻게 해야 합니까?
안경
- 분배하다
Ubuntu 18.04
- 핵심
5.3.0-28-generic
- 설치된 버전
libmount 2.31.1
- v4 및 v3 서비스를 제공하는 NFS 서버
추가 고려 사항
- NFS v4 및 Overlayfs를 사용한 읽기 전용 nfsroot내가 찾을 수있는 비슷한 질문에 가장 가깝습니다.
- 현재 연구에 따르면 이전 Linux 커널에서 NFS를 제공하면 최대 4.15까지 작동할 수 있으므로 이것이 도움이 되는지 확인해 보겠습니다.