在 Debian(以及一般的 Linux 系统)中,overlay 通常指 OverlayFS,一种联合文件系统,常用于:
下面以 Debian 上使用 OverlayFS 为例,介绍常见制作方式。
OverlayFS 需要:
merged = lowerdir + upperdir
mkdir -p /mnt/lower /mnt/upper /mnt/work /mnt/merged
mount /dev/sda1 /mnt/lower
或用 squashfs:
mount -t squashfs rootfs.squashfs /mnt/lower
mount -t overlay overlay \
-o lowerdir=/mnt/lower,upperdir=/mnt/upper,workdir=/mnt/work \
/mnt/merged
现在 /mnt/merged 就是可写的 Debian 系统视图。
常见组合:
ISO / 磁盘
├── squashfs (lower, 只读)
├── overlay (upper, 可写)
└── initramfs (负责挂载 overlay)
apt install squashfs-tools
mksquashfs / /rootfs.squashfs -e /proc /sys /dev /mnt /tmp
编辑:
/etc/initramfs-tools/modules
添加:
overlay
创建 hook(可选):
/etc/initramfs-tools/scripts/init-bottom/overlay
示例脚本:
#!/bin/sh
mkdir -p /overlay/upper /overlay/work
mount -t overlay overlay \
-o lowerdir=/root,upperdir=/overlay/upper,workdir=/overlay/work \
/newroot
然后:
update-initramfs -u
Docker 本质就是 overlay:
docker run -it debian bash
你也可以手动:
mkdir lower upper work merged
# 放 debian rootfs 到 lower
mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
chroot merged
| 场景 | 用法 |
|---|---|
| 系统调试 | overlay 原系统 |
| 只读系统 | squashfs + overlay |
| 多环境隔离 | 多个 upperdir |
| 恢复模式 | overlay 不破坏原系统 |
workdir 和 upperdir 必须在同一文件系统如果你是指:
可以告诉我具体场景,我可以给更针对性的步骤。