如何将可堆叠文件系统wrappfs挂载到/

如何将可堆叠文件系统wrappfs挂载到/

我正在尝试在其上安装wrappfs,/以拦截在VirtualBox 上运行的CentOS 7.4 上的所有文件访问。简单地运行 mount -t wrapfs / / 并不能完成这项工作,并且没有任何内容经过wrappfs。

一个电子邮件链建议使用pivot_root.这是我不成功的尝试:

# df -T
Filesystem              Type      1K-blocks      Used  Available Use% Mounted on
/dev/mapper/centos-root xfs        27245572  10640700   16604872  40% /
devtmpfs                devtmpfs    1925092         0    1925092   0% /dev
tmpfs                   tmpfs       1940872         0    1940872   0% /dev/shm
tmpfs                   tmpfs       1940872      8944    1931928   1% /run
tmpfs                   tmpfs       1940872         0    1940872   0% /sys/fs/cgroup
/dev/sda1               xfs         1038336    181844     856492  18% /boot
VB-share                vboxsf   1942808572 658135288 1284673284  34% /media/sf_VB-share
tmpfs                   tmpfs        388176        24     388152   1% /run/user/1000
/dev/sr1                iso9660       57064     57064          0 100% /run/media/bahram/VBox_GAs_5.2.26

# mkdir /newroot
# mkdir /oldroot
# mount /dev/mapper/centos-root /newroot
# mount -t wrapfs /newroot /newroot
# mount --make-rprivate /
# pivot_root /newroot/ /newroot/oldroot/

结果:

  • 在当前终端中,所有文件访问都通过wrappfs。

  • 运行# mount将得到:mount: failed to read mtab: No such file or directory

  • 我无法打开任何新终端!

接下来,我尝试了类似的过程unshare -m

mkdir /newroot
mkdir /oldroot
mount /dev/mapper/centos-root /newroot
mount -t wrapfs /newroot /newroot
unshare -m 
pivot_root /newroot/ /newroot/oldroot/
exec chroot .

结果:

只有当前的终端活动才会经过wrappfs。运行# mount将得到: mount: failed to read mtab: No such file or directory

问题:

在其之上安装wrapper的正确方法是什么/,以便每个文件访问都通过wrappfs?

相关内容