CentOS 上 overlay(OverlayFS)启动失败 常见于容器(Docker)或系统启动挂载阶段,原因通常和 内核、存储驱动、文件系统、SELinux、配置 有关。下面按最常见原因逐步说明。
OverlayFS 需要内核支持:
检查:
uname -r
lsmod | grep overlay
modprobe overlay
如果 modprobe overlay 失败 → 内核太旧或不支持。
overlay 不能 用于以下文件系统:
ext2xfs 未开启 ftype=1nfs尤其是 XFS + ftype=0 是 Docker overlay2 失败的高发原因。
检查:
xfs_info /var/lib/docker | grep ftype
应为:
ftype=1
如果是 ftype=0 → 必须重做文件系统。
常见于 /var/lib/docker 所在目录不支持 overlay。
查看 Docker 报错:
journalctl -u docker
典型错误:
overlay2: the backing xfs filesystem is formatted without d_type support
解决:
mkfs.xfs -n ftype=1)CentOS 默认启用 SELinux。
错误示例:
permission denied
overlay: failed to mount
解决方式之一:
setenforce 0
或配置:
cat /etc/selinux/config
SELINUX=permissive
Docker 推荐保留 SELinux,但需使用支持的策略。
ls -ld /var/lib/docker
可尝试:
systemctl stop docker
rm -rf /var/lib/docker
systemctl start docker
⚠️ 会清空容器和数据
如果你在 /etc/fstab 写了 overlay:
overlay /mnt/merged overlay lowerdir=/a,upperdir=/b,workdir=/c 0 0
常见错误:
检查:
mount -a
uname -r
modprobe overlay
xfs_info /var/lib/docker | grep ftype
getenforce
journalctl -u docker
| 问题 | 解决 |
|---|---|
| 内核旧 | 升级内核 |
| XFS ftype=0 | 重做文件系统 |
| SELinux | 临时关闭或调整策略 |
| Docker 驱动 | 改用 devicemapper(不推荐)或 ext4 |
| 挂载参数错 | 检查 upper/work/lower |
如果你能提供:
我可以直接帮你精准定位。