挂载 unionfs 会隐藏所有下层文件

挂载 unionfs 会隐藏所有下层文件

/dev/mmcblk0p5我在和中有分区/dev/mmcblk0p7。我想将它们合并在一起,使 成为只读p5的并p7保留更改。我正在p5/ro-root上安装。p7/root-overlay

/ # mount
/dev/mmcblk0p7 on /root-overlay type ext4 (rw,relatime,data=ordered)
/dev/mmcblk0p5 on /ro-root type ext4 (rw,relatime,data=ordered)
/ #

我有以下文件/ro-root

/ # ls /ro-root
bin         etc         lost+found  opt         sbin        tmp         www
boot        home        media       proc        srv         usr
dev         lib         mnt         run         sys         var
/ #

/root-overlay当前是一个空文件系统。

我使用以下命令安装 union:

mount -t unionfs -o dirs=/root-overlay=rw:/ro-root=ro none /real-root/

但是,显示为空!如果我在那里创建一个文件,我也/real-root可以看到它被创建了。/root-overlay

似乎无论我尝试将哪些目录合并在一起,我都只能看到dirs=要挂载的参数最左边目录中的文件。

为什么文件/ro-root在 union 中被隐藏了?

答案1

正如@MariusMatutiae所说,正确的语法是mount -t unionfs -o dirs=/branch_rw=rw:/branch_ro=ro unionfs /union
如果你仍然得到相同的结果,这可能是一个错误。尝试删除并重新创建目录/root-overlay。注意unionfs有点旧。有两种新的替代方案奥夫斯(另一个联合文件系统)和覆盖文件系统。目前,许多操作系统(如 Ubuntu)都使用 Overlayfs。对于 ubuntu,它是默认可用的,因此您无需安装它。

使用示例:overlayfs
mount -t overlayfs overlayfs /real-root -o lowerdir=/ro-root,upperdir=/root-overlay

答案2

距离我上次使用已经过去好几年了联合文件系统,但我仍然不记得使用了关键字没有任何在 mount 命令中。据我回忆,正确的命令应该是:

  mount -t unionfs -o dirs=/root-overlay=rw:/ro-root=ro unionfs /real-root

相关内容