为什么我的overlayfs命令不起作用?

为什么我的overlayfs命令不起作用?

下面的命令应该创建一个根覆盖,这样对根的任何修改都会出现在 /tmp/upper 中

然而,正如您所看到的,它似乎不起作用。谁能建议我做错了什么?

我在这里遵循语法:https://www.kernel.org/doc/Documentation/filesystems/overlayfs.txt

谢谢

ubuntu@ip-10-0-0-48:~$ sudo su
root@ip-10-0-0-48:/home/ubuntu# cd /tmp
root@ip-10-0-0-48:/tmp# mkdir upper
root@ip-10-0-0-48:/tmp# mkdir workdir
root@ip-10-0-0-48:/tmp# mount -t overlay overlay -olowerdir=/,upperdir=/tmp/upper,workdir=/tmp/workdir  /
root@ip-10-0-0-48:/tmp# touch /floob
root@ip-10-0-0-48:/tmp# ls /
bin  boot  dev  etc  floob  home  initrd.img  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  snap  srv  sys  tmp  usr  var  vmlinuz  x
root@ip-10-0-0-48:/tmp# ls /tmp/upper/
root@ip-10-0-0-48:/tmp#

答案1

最后,我只是创建了一堆覆盖层,每个覆盖层对应我感兴趣的每个顶级目录。

练习的目的是隔离软件包安装过程中所做的更改,这在大多数情况下似乎做得足够好。

#/bin/bash
array=( lib home opt bin boot var etc usr srv lib64 root sbin  )
mkdir -p /ovl
cd /ovl
rm -rf /ovl/overlay
rm -rf /ovl/workdir
mkdir -p /ovl/overlay
mkdir -p /ovl/workdir

for i in "${array[@]}"
do
  mkdir -p /ovl/overlay/${i}
  mkdir -p /ovl/workdir/${i}
  mount -t overlay overlay -o lowerdir=/${i},upperdir=/ovl/overlay/${i},workdir=/ovl/workdir/${i} /${i}
done

相关内容