在 Debian 上,overlay(overlayfs)常用于 Live CD、容器(Docker)、initramfs、系统恢复等场景。排查 overlay 故障可以按“从底层到上层、从内核到配置”的顺序进行。下面是一套实用排查清单。
uname -r
cat /proc/filesystems | grep overlay
如果没有 overlay,需要:
CONFIG_OVERLAY_FS加载模块:
modprobe overlay
lsmod | grep overlay
mount | grep overlay
cat /proc/mounts | grep overlay
标准格式示例:
overlay on /merged type overlay (
lowerdir=/lower,
upperdir=/upper,
workdir=/work
)
常见错误:
workdir 和 upperdir 在同一文件系统但不在同一父目录lowerdir 不存在或不可读workdir 非空upperdir 必须可写workdir 必须为空lowerdir 可以多个,用 : 分隔示例检查:
ls -ld /lower /upper /work
df -T /lower /upper /work
mount -t overlay overlay \
-o lowerdir=/lower,upperdir=/upper,workdir=/work \
/mnt/test
常见错误及含义:
mount: invalid argument → 参数或目录结构错误permission denied → SELinux / 权限 / 只读文件系统cannot create directory → workdir 不可用docker info | grep -i storage
检查:
ls -l /var/lib/docker/overlay2
常见问题:
/var/lib/docker 在 不支持 overlay 的文件系统(如某些 NAS)查看 inode:
df -i /var/lib/docker
dmesg | grep overlay
journalctl -k | grep overlay
典型日志:
overlayfs: failed to resolve lowerdiroverlayfs: workdir is not emptyoverlayfs: upper fs does not support如果是 Debian Live:
boot=livepersistence 分区overlay 是否在 initramfs 中启用查看启动参数:
cat /proc/cmdline
| 现象 | 可能原因 |
|---|---|
| 挂载失败 | workdir 非空 |
| 文件不显示 | lowerdir 顺序错误 |
| 写入无效 | upperdir 只读 |
| 容器起不来 | Docker 存储驱动问题 |
| 重启后丢失 | 未使用 persistence |
mkdir -p /mnt/lower /mnt/upper /mnt/work /mnt/merged
mount -t overlay overlay \
-o lowerdir=/mnt/lower,upperdir=/mnt/upper,workdir=/mnt/work \
/mnt/merged
如果这一步能成功,说明系统层面没问题,问题在应用配置。
如果你能补充:
我可以给你更精准的排查步骤。