Linux 下 mount 慢,通常不是 mount(2) 系统调用本身慢,而是挂载前后做了很多“额外工作”。下面按常见原因 → 表现 → 解决办法来说明。
现象
dmesg 里能看到 recovering journal、checking fs原因
解决
# 查看是否开启了自动检查
dumpe2fs -h /dev/sdX | grep "Mount Count"
# 临时跳过(危险,仅应急)
mount -o norecovery /dev/sdX /mnt
现象
mount -t nfs 卡几十秒甚至几分钟原因
解决
# 使用 IP 而非主机名
mount -t nfs 192.168.1.10:/data /mnt
# 加超时和软挂载
mount -t nfs -o rw,hard,timeo=10,retrans=2,noatime 192.168.1.10:/data /mnt
# 避免 DNS 卡死
/etc/hosts 中写死 IP
现象
原因
解决
iostat -x 1smartctl -a /dev/sdX现象
mount /dev/sdX /mnt 很快systemctl start mnt-data.mount 很慢原因
解决
systemctl show -p Requires,After,Wants mnt-data.mount
现象
解决
getenforce
setenforce 0 # 测试用
原因
解决
/home/user现象
mount -o loop file.img /mnt 慢原因
解决
losetup -f
mount -o loop=/dev/loop0 file.img /mnt
现象
原因
解决
modprobe xfs
time mount /dev/sdX /mnt
dmesg -T | tail
strace -f mount /dev/sdX /mnt
iostat -x 1
mount 慢 ≠ mount 慢,而是:
- fsck
- 网络(NFS/DNS)
- 存储性能
- systemd 依赖
- 安全机制
如果你愿意,可以告诉我:
我可以直接给你针对性解决方案。