下面的命令应该创建一个根覆盖,这样对根的任何修改都会出现在 /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