Linux
archivemount 中的 Overlayfs
我正在嘗試在 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
請注意,我允許 root 訪問已安裝的存檔(必須為此更新 /etc/fuse.conf)。它失敗了:
mount: tmp/mount: wrong fs type, bad option, bad superblock on overlayfs, missing codepage or helper program, or other error.
它適用於原始文件夾。我檢查過,預設情況下,預設情況下
archivemount
以讀/寫方式安裝。我也可以在每個文件夾中寫一個文件。我還檢查了訪問權限,它們似乎是正確的。Root 作為掛載的訪問權限,並且可以對其進行寫入。我究竟做錯了什麼?
所以實際的問題是,預設情況下,archivemount 不允許 root 訪問掛載的文件系統。您必須為此添加
-o allow_root
選項。請注意,您必須更新
/etc/fuse.conf
以允許該選項。
unionfs
做得更好unionfs-fuse $(pwd)/tmp/upper:$(pwd) $(pwd)/mount
。然而,掛載點似乎必須在archivemount
文件系統之外。我認為嵌套掛載點沒有任何優勢,並且具有不需要 root 權限(安裝除外)的優勢,所以這可能是可行的。
為什麼
我不知道為什麼掛載點需要在
archivemount
. 如果這是錯誤所在;我沒有多少證據可以得出結論。我懷疑掛載點是使用 unionfs 時以 root 身份完成的歸檔掛載的唯一文件訪問。其他文件訪問可能像您一樣完成。如果
mount -t overlay
上層和工作區不能在archivemount
,可能是因為root沒有訪問這個mount的權限。嘗試:archivemount somefile tmp ls tmp/ sudo ls tmp/ #gets permission denied