在 Ubuntu 上使用 OverlayFS(overlay) 时,常见场景包括:
mount -t overlay下面按排查思路 + 常见错误 + 工具命令来说明。
mount | grep overlay
或
cat /proc/mounts | grep overlay
常见形式:
overlay on /var/lib/docker/overlay2/...overlay on / type overlay(live 系统)Overlay 挂载至少需要:
: 分隔)典型挂载:
mount -t overlay overlay \
-o lowerdir=/low,upperdir=/up,workdir=/work \
/merged
典型报错:
mount: /merged: mount(2) system call failed: Invalid argument.
✅ 检查点:
# 1. 目录是否存在
ls -ld /low /up /work /merged
# 2. upperdir 和 workdir 是否同文件系统
df -h /up /work
# 3. workdir 是否为空
ls -A /work
❌ 常见错误:
可能原因:
排查:
namei -l /up
ls -ld /up
Docker 场景:
sudo systemctl status docker
journalctl -u docker
Overlay 用 whiteout 文件 表示删除:
ls -la /up
# 看到 c--------- 文件
排查:
find /up -type c
说明:
常见:
failed to mount overlay: invalid argument
排查步骤:
# Docker 存储驱动
docker info | grep Storage
# 内核支持
cat /proc/filesystems | grep overlay
# 检查 overlay2 目录
ls /var/lib/docker/overlay2
修复示例:
sudo systemctl stop docker
sudo rm -rf /var/lib/docker/overlay2
sudo systemctl start docker
(⚠️ 会删除容器数据,仅测试环境)
dmesg | tail -n 50
Overlay 错误通常会在这里打印:
overlayfs: upperdir is in-use
overlayfs: workdir and upperdir must be same fs
# 查看挂载参数
cat /proc/mounts | grep overlay
# 查看 inode
stat /merged /up /low
# 文件系统类型
df -T
# 内核模块
lsmod | grep overlay
modprobe overlay
如果是启动阶段:
journalctl -b | grep overlay
检查:
casper 层overlayroot/etc/overlayroot.conf如果你能贴出:
mount 命令或 Docker 配置我可以直接帮你定位到具体原因。