温馨提示×

如何清除linux mount缓存

小樊
62
2026-10-14 03:31:34
栏目: 智能运维

在 Linux 中,“mount 缓存”并不是一个单一的机制,而是可能涉及 目录项缓存(dcache)、inode 缓存、文件系统缓存、NFS 属性缓存、mount 表缓存 等。下面按常见场景说明如何“清除”。


一、清除文件系统缓存(最常用)

如果你是想释放内存中的文件/目录缓存:

# 释放 pagecache、dentries、inodes
sync
echo 3 > /proc/sys/vm/drop_caches

说明:

  • 1:只清 pagecache
  • 2:清 dentries + inodes
  • 3:全部清除

⚠️ 需要 root 权限,且只是释放内存缓存,不影响已挂载的文件系统。


二、NFS 挂载的缓存问题(非常常见)

如果是 NFS mount 看不到最新文件,通常是属性缓存导致:

1. 重新挂载(推荐)

mount -o remount /mnt/nfs

2. 使用 noac / actimeo=0(临时)

mount -o remount,noac /mnt/nfs
# 或
mount -o remount,actimeo=0 /mnt/nfs

3. 强制刷新 NFS 属性

ls -l /mnt/nfs
stat /mnt/nfs

三、清除 mount 表缓存(/etc/mtab、/proc/mounts)

1. 查看当前挂载

mount
cat /proc/mounts

2. 卸载并重新挂载

umount /mnt/xxx
mount /mnt/xxx

3. 强制卸载(卡死时)

umount -l /mnt/xxx   # 懒卸载
umount -f /mnt/xxx   # 强制(NFS)

四、清除 autofs / 自动挂载缓存

systemctl restart autofs

或:

automount -k

五、Docker / 容器挂载缓存

如果是 Docker 卷或 bind mount:

docker restart <container>

或重新创建容器。


六、只是想让系统“重新扫描挂载”

mount -a

七、总结对照表

场景 做法
内存缓存 echo 3 > /proc/sys/vm/drop_caches
NFS 看不到文件 remount 或 noac
挂载状态异常 umount + mount
autofs restart autofs
容器 重启容器

如果你能说明:

  • 是 本地盘 / NFS / SMB / Docker
  • 具体现象(看不到文件?mount 卡死?内存不释放?)

我可以给你更精确的命令。

0 踩