You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何恢复被autofs误删/移除的文件?

如何恢复被autofs误删/移除的文件?

哎呀,这情况太让人揪心了!别慌,你的文件根本没被删除——只是被autofs的错误配置给“暂时藏起来”了,这是个很容易踩的坑,我来一步步帮你找回来:

问题根源

你在auto.master里把/home/my-user整个目录设成了autofs的挂载根目录,当autofs启动时,它会把/dev/sdb1挂载到这个目录下。Linux里的挂载操作会直接覆盖挂载点原有的内容视图(不是真的删除文件,只是暂时看不到),而且挂载后的目录权限会变成挂载设备的权限,所以你看到的是空的root权限目录。

恢复步骤

  1. 彻底停止并禁用autofs服务
    先确保autofs完全停止,避免它自动重新挂载:

    sudo systemctl stop autofs
    sudo systemctl disable autofs  # 防止开机自动启动,避免再次踩坑
    
  2. 检查并卸载残留的挂载
    有时候停止服务后挂载可能没自动解除,先确认状态:

    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>终止进程,之后再重新执行卸载命令。

  3. 查看你的文件!
    卸载完成后,再执行ls -al /home/my-user,你原来的文件应该就全部回来了!

以后避免踩坑的配置建议

千万别把用户主目录整个设为autofs挂载点,应该在主目录下建一个子目录来挂载外部存储,比如:

  • 修改auto.master为:
    /- auto.my-user
    
  • 然后auto.my-user里写完整的挂载路径:
    /home/my-user/external-media  -fstype=auto    :/dev/sdb1
    
    这样autofs只会把外部存储挂载到/home/my-user/external-media子目录下,不会影响主目录里的其他文件。

备注:内容来源于stack exchange,提问作者Trying My Best

火山引擎 最新活动