我在 Redhat 的 Fedora 或任何其他可堆叠文件系统中都找不到 Aufs。
这似乎是由于 SELinux 的重新标记限制造成的。
有没有一种方法可以实现类似的目的,而无需借助文件/目录复制。
我有以下目录列表:
/proj/online/src/main/java
/proj/online/src/main/resources
/proj/online/src/test/java
/proj/client/src/test/scala
/proj/common/src/main/resources
/proj/common/src/main/scala
/proj/common/src/test/resources
/proj/common/src/test/scala
/proj/integration/src/main/resources
/proj/integration/src/main/scala
/proj/integration/src/test/scala
/proj/mockfeedserver/src/main/scala
/proj/mockfeedserver/src/test/scala
/proj/server/src/main/scala
/proj/server/src/test/scala
/proj/foit/src/main/resources
/proj/foit/src/main/scala
/proj/foit/src/test/resources
/proj/foit/src/test/scala
我想向编译器呈现以下内容*:
/tmp/foo/src/main/scala /tmp/foo/src/main/资源 /tmp/foo/src/test/scala /tmp/foo/src/test/资源
使用 AUFS,我可以通过如下几个命令实现这一点:
mount -t aufs -o br=r:/proj/common/src/main/scala=r:/proj/integration/src/main/scala=r:/proj/mockfeedserver/src/main/scala=r:/proj/server/src/main/scala=r:/proj/foit/src/main/scala=r -o udba=reval none /tmp/foo/src/main/scala
因此这将把 /tmp/foo/src/main/scala 安装为所有 src/main/scala 目录的组合。
很好,但我用的是 Fedora!在没有 AUFS 或 UnionFS 的情况下,我真的看不出有什么方法可以实现这一点。我以前听说过挂载重新绑定,它能帮上忙吗,还是我应该更换发行版?
答案1
函数函数在 Fedora 和 Red Hat EPEL 上均可用。包名称当然是funionfs
。
答案2
您可以从以下位置安装支持 aufs 的预修补 Fedora 内核Copr 存储库或者构建一个支持 aufs 的内核
安装支持 aufs 的 Fedora 内核补丁程序的说明:
sudo dnf copr enable gipawu/kernel-aufs
sudo dnf update
构建支持 aufs 的 Fedora 内核的说明:
我们将首先安装编译内核所需的依赖项
yum install gcc rpmbuild glibc-static git
git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
git clone http://git.code.sf.net/p/aufs/aufs3-standalone
cd linux-2.6
git checkout v3.8
cd ..
patch -d linux-2.6 -p1 < aufs3-standalone/aufs3-base.patch
patch -d linux-2.6 -p1 < aufs3-standalone/aufs3-proc_map.patch
patch -d linux-2.6 -p1 < aufs3-standalone/aufs3-standalone.patch
patch -d linux-2.6 -p1 < aufs3-standalone/aufs3-kbuild.patch
cd aufs3-standalone/
cp -ar fs/aufs ../linux-2.6/fs/
cp include/linux/aufs_type.h ../linux-2.6/include/linux/
cp include/uapi/linux/ ../linux-2.6/include/uapi/linux/
现在我们将构建用 aufs 代码修补的内核。
从主菜单–>文件系统–>其他文件系统–>AUFS 支持启用 aufs 支持
make menuconfig
现在,我们可以直接编译内核,也可以创建一个 rpm
make modules_install
make bzimage
make install
make headers_install
或简单,
make rpm-pkg
然后安装新的内核和内核头 rpm。
使用新内核重新启动系统。
答案3
RHEL 上仅可通过第三方软件包使用基于 fuse 的 unionfs: