如何恢复被autofs误删/移除的文件?
如何恢复被autofs误删/移除的文件?
哎呀,这情况太让人揪心了!别慌,你的文件根本没被删除——只是被autofs的错误配置给“暂时藏起来”了,这是个很容易踩的坑,我来一步步帮你找回来:
问题根源
你在auto.master里把/home/my-user整个目录设成了autofs的挂载根目录,当autofs启动时,它会把/dev/sdb1挂载到这个目录下。Linux里的挂载操作会直接覆盖挂载点原有的内容视图(不是真的删除文件,只是暂时看不到),而且挂载后的目录权限会变成挂载设备的权限,所以你看到的是空的root权限目录。
恢复步骤
彻底停止并禁用autofs服务
先确保autofs完全停止,避免它自动重新挂载:sudo systemctl stop autofs sudo systemctl disable autofs # 防止开机自动启动,避免再次踩坑检查并卸载残留的挂载
有时候停止服务后挂载可能没自动解除,先确认状态:mount | grep /home/my-user如果有输出,说明
/home/my-user还被挂载着,手动执行卸载:sudo umount /home/my-user如果提示“target is busy”(目标忙),先找出占用这个目录的进程:
sudo lsof +f -- /home/my-user把输出里的进程ID(PID)记下来,用
sudo kill <PID>终止进程,之后再重新执行卸载命令。查看你的文件!
卸载完成后,再执行ls -al /home/my-user,你原来的文件应该就全部回来了!
以后避免踩坑的配置建议
千万别把用户主目录整个设为autofs挂载点,应该在主目录下建一个子目录来挂载外部存储,比如:
- 修改
auto.master为:/- auto.my-user - 然后
auto.my-user里写完整的挂载路径:
这样autofs只会把外部存储挂载到/home/my-user/external-media -fstype=auto :/dev/sdb1/home/my-user/external-media子目录下,不会影响主目录里的其他文件。
备注:内容来源于stack exchange,提问作者Trying My Best




