Overlayfs에서 NFS를 레이어로 마운트하는 것은 어렵습니다. - bash: 지원되지 않는 작업

Overlayfs에서 NFS를 레이어로 마운트하는 것은 어렵습니다. - bash: 지원되지 않는 작업

요약

내 로컬 컴퓨터에서 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까지 작동할 수 있으므로 이것이 도움이 되는지 확인해 보겠습니다.

관련 정보