在 CentOS 上使用 overlay(常见于 Docker overlay storage、kubeadm、或者 overlayfs 手动挂载)时,报错原因很多。下面按常见场景 + 排查思路给你一个“排错清单”,你可以对照看是哪一种。
你可以先把完整报错贴出来,常见类似:
overlay: failed to mount overlay: invalid argumentcould not mount overlay: no such deviceoverlayfs: filesystem already mountedoverlay2: the backing xfs filesystem is formatted without d_type support下面按最常见情况说明。
CentOS 7 老内核可能不支持 overlay2。
检查内核版本
uname -r
建议:
>= 3.10.0-514>= 4.x✅ 解决:
yum update -y
reboot
报错示例:
overlay2: the backing xfs filesystem is formatted without d_type support
检查
xfs_info / | grep ftype
如果不是 ftype=1,就不支持。
✅ 解决:
mkfs.xfs -n ftype=1 /dev/sdX
⚠️ 会清空数据,只能在初始化时做
查看当前驱动:
docker info | grep Storage
✅ 正确配置(CentOS 推荐 overlay2):
{
"storage-driver": "overlay2"
}
路径:
/etc/docker/daemon.json
然后:
systemctl restart docker
mount -t overlay overlay \
-o lowerdir=/a,upperdir=/b,workdir=/c \
/mnt
原因:
workdir 和 upperdir 必须在同一文件系统✅ 检查:
ls -ld /a /b /c
原因:
✅ 检查:
lsmod | grep overlay
modprobe overlay
CentOS 默认开启 SELinux。
✅ 临时测试:
setenforce 0
✅ 永久(谨慎):
vi /etc/selinux/config
SELINUX=permissive
cgroup v2,Docker 会报错检查:
stat -fc %T /sys/fs/cgroup
如果是 cgroup2fs,Docker 老版本不支持。
uname -r
cat /etc/centos-release
docker info | grep -i storage
lsmod | grep overlay
xfs_info / | grep ftype
你可以直接把具体报错原文 + 使用场景(Docker?k8s?手动 mount?)发出来,我可以精准告诉你改哪一行配置。