在 Linux 中,“mount 冲突”通常出现在同一个挂载点被重复挂载、设备或目录已被占用、fstab 配置冲突、容器/虚拟化场景冲突等情况。下面按常见场景 + 解决办法来说明。
mount /dev/sdb1 /mnt/data
mount /dev/sdc1 /mnt/data # 冲突
现象
mount: /mnt/data: already mounted解决
# 查看是否已挂载
mount | grep /mnt/data
# 卸载后再挂载
umount /mnt/data
mount /dev/sdc1 /mnt/data
⚠️ 若 umount 失败,可能是被占用
umount: /mnt/data: target is busy
解决
# 查看谁在用
lsof +D /mnt/data
fuser -m /mnt/data
# 杀掉占用进程
fuser -k -m /mnt/data
或
umount -l /mnt/data # 懒卸载(lazy)
例如:
/dev/sdb1 /data ext4 defaults 0 0
/dev/sdc1 /data ext4 defaults 0 0
解决
mount -a
mount image.iso /mnt
mount image.iso /mnt # 冲突
解决
losetup -a
umount /mnt
losetup -d /dev/loop0
解决
docker ps
docker inspect <container>
K8s:
kubectl describe pod <pod>
mount.nfs: Connection timed out
解决
umount -f /mnt/nfs
umount -l /mnt/nfs
或加参数:
mount -o soft,timeo=10,retry=0
mount
findmnt
lsblk
df -h
cat /proc/mounts
✅ 一个挂载点只挂一个设备
✅ 使用 mount --bind 而非重复 mount
✅ 用 UUID 而不是 /dev/sdX
UUID=xxxx /data ext4 defaults 0 2
✅ 容器使用 volume 而非直接 bind 宿主机关键目录
如果你方便,可以贴出:
mount / findmnt 输出我可以给你精准的一行命令解决方案。