Redhat Fedora 中缺少 AUFS,是否有其他方法来堆叠目录?

Redhat Fedora 中缺少 AUFS,是否有其他方法来堆叠目录?

我在 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:

http://pkgs.repoforge.org/fuse-unionfs/

相关内容