Linux

archivemount 中的 Overlayfs

  • December 9, 2018

我正在嘗試在 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

引用自:https://unix.stackexchange.com/questions/486916