如何卸载繁忙的设备

新手上路,请多包涵

我有一些每天被多个用户访问的 samba 驱动器。我已经有代码来识别共享驱动器(来自 SQL 表)并将它们安装在所有用户都可以访问它们的特殊目录中。

我想知道,如果我从我的 SQL 表中删除一个驱动器(有效地使其脱机),有没有办法卸载繁忙的设备?到目前为止,我发现任何形式的 umount 都不起作用。

忽略破坏数据的可能性 - 是否可以卸载当前正在读取的设备?

原文由 Max 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 589
2 个回答

的!有一种方法可以立即分离繁忙的设备 - 即使它很忙并且无法强制卸载。您可以稍后清理所有内容:

 umount -l /PATH/OF/BUSY-DEVICE
umount -f /PATH/OF/BUSY-NFS (NETWORK-FILE-SYSTEM)

注意/注意

  1. 这些命令可能会中断正在运行的进程,导致数据丢失或损坏打开的文件。访问目标 DEVICE/NFS 文件的程序可能会抛出错误或在强制卸载后无法正常工作。
  2. 不要 在安装路径(文件夹/驱动器/设备)本身内部执行上述 umount 命令。首先,您可以使用 pwd 命令验证您当前的目录路径(不应该是挂载路径),然后使用 cd 命令退出挂载路径 - 卸载它稍后使用上述命令。

原文由 Amit Verma 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果可能,让我们定位/识别繁忙的进程,杀死该进程,然后 unmount samba 共享/驱动器以最大程度地减少损坏:

  • lsof | grep '<mountpoint of /dev/sda1>' (或任何安装的设备)

  • pkill target_process (按名称杀死繁忙的进程| kill PID | killall target_process

  • umount /dev/sda1 (或任何安装的设备)

原文由 Frank Tudor 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏