先说一下场景:

  1. 主机安装了 unraid 6.9.2
  2. 开了一个虚拟机跑黑群晖, 并直通了一个网口+两块硬盘
  3. unraid 通过 Unassigned Devices 来挂载黑群晖的硬盘, 使用 NFS 协议

问题: 想更换硬盘的时候, 直接点停止阵列, 等了大半天都没有停止成功。 检查了一下系统日志, 发现一直卡在 Unmounting Remote SMB/NFS Share 不成功, 并且一直在重试。

造成这个问题的原因是因为黑群晖也是跑在 unraid 上面的, 停止阵列的操作会优先把 Docker 和虚拟机服务优先关闭掉, 导致 NFS 链接失去响应无法正常 Unmoun。

搜索了一下发现好多人都碰到过类似的问题:NFS 服务器某些原因断网后, NFS 客户机无法 umount 直到最新的 nfsv4 都是这样子, 所以会造成进程一致卡住在重试。

解决办法有以下两种:

  1. 更换成 SAMBA, SMB 无法卸载不影响关机,不会造成假死。
  2. 在关机前, 手动在 Unassigned Devices umount 所有已经挂载的 NFS mount, 或者可以打开终端运行 umount -l /mnt/remotes/* 强制卸载所有 NFS umount.

剩下在问题就是如何把方案 2 改成自动化,不需要每次去手工执行,在 unraid forums 看到一个解决方案:

  1. 进入 Main 界面,找到 「SMB Shares | NFS Shares | ISO File Shares」 这一行,点击 nfs 服务的设置按钮,如图: main

  2. 点击「默认」,在出现的 Script 里面,找到 UNMOUNT ACTION 并且在 # do your stuff here 处换行填入 umount -l /mnt/remotes/*,如图: setting

PS:如果你只想卸载某一个磁盘,那就要分别设置(重复 2),然后填入具体的盘符,如 umount -l /mnt/remotes/Meida_4.

  1. 点击保存.

测试:

  1. Unassigned Devices mount NFS 服务
  2. NFS 服务器关机或者断网
  3. 点击 Unassigned Devices 的 UNMOUNT 安装(如果能够正常卸载,说明就没有问题了)

–EOF–

参考文章: