/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