每当我重新启动时,iSCSI 驱动器都不会连接,并且我会在 Microsoft iSCSI 启动器中看到“重新连接”,如果我尝试断开连接,则会收到错误消息,但在重新启动 iSCSI 服务后(此时我已编写了一个简短的 powershell 脚本并将其放在我的桌面上),iSCSI 驱动器会重新连接。
有人建议删除所有门户并添加它们而不使用“快速连接”,但这似乎没有帮助。
iSCSI 服务器是 FreeNAS 设备,它有 1 个门户,1 个目标和 2 个扩展。它以前有 2 个目标,每个目标有一个扩展,但我将 2 个目标合并为一个。
我曾考虑过创建一个计划任务来在我登录时重新启动 iSCSI 服务,但我觉得每次可能仍需在驱动器上重新创建 Steam 库。
故事的以下部分与该主题不太相关,但可能包含一些线索:
我有一台 Windows 10 游戏电脑,没有硬盘,只有几个 SATA SSD(如果这很重要,我可以把它分解开来,但最重要的是我的主板上没有 SATA 端口)
我没有安装用于“慢速存储”的硬盘或使用 SMB(速度相当慢),而是从我的 NAS 中安装了 2 个 iSCSI 驱动器(相同的目标/门户,2 个不同的范围)。
有一段时间,这“刚刚起作用”,我在 2018 年黑色星期五买了一个 1TB m.2 SATA SSD 和一个适配器,这填满了我最后一个 SATA 端口。
问题最近才开始出现,当时我有一个内置 USB3 集线器,可以插入 5.25 英寸托架……安装后,我的新 1TB SSD 和 iSCSI 驱动器突然停止工作。我解决了这个问题。PCIe 到 M.2 适配器松动了,固定它的螺丝无法正常工作,所以我更换了螺丝,运行了 chkdsk 等,一切正常。但是……不知何故这搞乱了 iSCSI?目前尚不清楚,但它是同时发生的。除非游戏“The Talos Principal”(安装在 1TB SSD 上)会搞乱它。(当 SSD 松动时,我遇到了一次有趣的崩溃,但同样,与 iSCSI 问题不太相关)
我更改了 NAS 上的 iSCSI 设置,使其具有 1 个门户 + 1 个目标和 2 个扩展,而不是 1 个门户和 2 个目标(每个目标上有一个扩展)。这让 Windows 非常困惑,我这样做主要是因为这样看起来更干净,但我能够关闭 iSCSI 服务、卸载驱动程序、从注册表中删除 iSCSI 设置,然后重新添加所有内容,一切似乎都很好。
答案1
因此我最终创建了一个计划任务,启动 iSCSI 服务,但会延迟直到网络准备就绪(类似的解决方案建议延迟一分钟)。
然后我将 Steam 设置为登录后 90 秒启动而不是登录时启动......
这并不理想,但是我重新启动了计算机...然后去喝咖啡或做其他事情,然后我回来就可以在我的 iSCSI 驱动器上玩游戏而不必摆弄设置。
计划任务如下所示:
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2016-03-11T17:58:47.9924646</Date>
<Author>gkmachine</Author>
<URI>\Start iSCSI service at startup delayed</URI>
</RegistrationInfo>
<Triggers>
<BootTrigger>
<ExecutionTimeLimit>PT10M</ExecutionTimeLimit>
<Enabled>true</Enabled>
</BootTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<UserId>S-1-5-18</UserId>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
<Priority>7</Priority>
<RestartOnFailure>
<Interval>PT5M</Interval>
<Count>999</Count>
</RestartOnFailure>
</Settings>
<Actions Context="Author">
<Exec>
<Command>powershell</Command>
<Arguments>"-Command" "Restart-Service -Name 'Microsoft iSCSI Initiator Service'"</Arguments>
</Exec>
</Actions>
</Task>
我使用 Glary Utilities 将“Steam Client Bootstrapper”的启动延迟了 90 秒,但也许您可以删除启动应用程序并设置计划任务,而不是安装奇怪的辅助实用程序(但我喜欢 Glary,并保留它)。