archivemount에 overlayfs를 마운트하려고 합니다(후속 조치로).Linux의 계층형 또는 가상 파일 시스템).
나는 이것을하고있다 :
mkdir -p {upper,work,mount}
tar zcf somefile upper/ work/ mount/
mkdir tmp
archivemount -o allow_root somefile tmp
sudo mount -t overlay -o lowerdir=/,upperdir=tmp/upper,workdir=tmp/work overlayfs tmp/mount
설치된 아카이브에 대한 루트 액세스를 허용했습니다(이를 위해 /etc/fuse.conf를 업데이트해야 했습니다). 다음과 같이 실패합니다.
mount: tmp/mount: wrong fs type, bad option, bad superblock on overlayfs, missing codepage or helper program, or other error.
원본 폴더에서 작동합니다. 확인해보니 기본적으로 archivemount
읽기/쓰기가 기본 설치로 되어있습니다. 각 폴더에 파일을 쓸 수도 있습니다. 접근 권한도 확인해 봤는데 맞는 것 같습니다. 루트는 마운트에 액세스하고 쓸 수 있습니다.
내가 뭘 잘못했나요?
답변1
unionfs
더 잘하세요 unionfs-fuse $(pwd)/tmp/upper:$(pwd) $(pwd)/mount
. 그러나 마운트 지점은 archivemount
파일 시스템 외부에 있어야 하는 것 같습니다 .
마운트 포인트를 중첩해도 아무런 이점이 없고 루트 권한(설치 제외)이 필요하지 않다는 장점이 있으므로 이것이 가능할 수도 있습니다.
왜
마운트 지점이 에 있어야 하는 이유를 모르겠습니다 archivemount
. 그것이 오류라면 그렇게 말할 수 있는 증거가 거의 없습니다. 나는 마운트 지점이 Unionfs를 사용할 때 루트로 수행된 archivemount에 대한 유일한 파일 액세스라고 생각합니다. 다른 파일 액세스는 귀하의 방식대로 수행될 수 있습니다.
mount -t overlay
상위 레이어와 작업 공간이 에 있을 수 없는 경우 archivemount
루트에 이 마운트에 액세스할 수 있는 권한이 없기 때문일 수 있습니다. 노력하다:
archivemount somefile tmp
ls tmp/
sudo ls tmp/ #gets permission denied
답변2
따라서 실제 문제는 기본적으로 archivemount가 마운트된 파일 시스템에 대한 루트 액세스를 허용하지 않는다는 것입니다. -o allow_root
이에 대한 옵션을 추가 해야 합니다 .
이 옵션을 허용하려면 업데이트해야 합니다 /etc/fuse.conf
.