我有一个磁盘,我想让它保持离线状态,即使重新启动后也是如此。这是一个备份磁盘,在我进行备份之前应该保持离线状态。除了打开机箱并拔掉电源/数据线外,有没有办法强制磁盘默认处于离线状态?
这是适用于 Windows 10 Professional RTM 的。我想这可能是注册表黑客,但我不知道该去哪里找。磁盘位于机器外壳内,但它是动态磁盘,因为最初的意图是将其与热插拔托架一起使用。
我知道如何在 Unix/Linix 环境中使用/etc/fstab
文件和 rc 脚本来执行此操作,但是当涉及到系统内容时,Windows 是一个奇怪的野兽。
编辑:澄清一下,我是手动运行备份,而不是脚本备份。无论之前的状态如何,我都希望磁盘在重启后保持离线状态。
答案1
Windows 中没有像 Linux fstab 那样在启动时不挂载驱动器的机制。如评论中所述,如果您将其设置为离线,即使重新启动后它也会保持离线状态。
但是,如果您想确保磁盘在计算机重启后处于脱机状态,则可以选择以下选项:
- 组策略关闭脚本(首选方法)(或者注销脚本,如果您想在注销会话时将其置于离线状态而无需重新启动计算机)
- 计划任务(多种可能的触发器,如启动、登录、事件等)
由于您使用的是动态磁盘,因此无法使用 Powershell cmdlet获取磁盘和设置磁盘将其置于脱机状态,因为它们仅适用于基本磁盘。其他可以访问驱动器的 cmdlet 是获取物理磁盘和设置物理磁盘但它们也不提供使动态磁盘脱机的功能。
因此,唯一的选择就是使用磁盘分区工具。这里的重点是您需要使用 Diskpart 列出的编号来引用您的磁盘,并且这可能会随着磁盘配置而改变(添加或删除驱动器、更改 SATA 端口等)...所以请记住这一点。
下面是一个有关如何使用 DISKPART(无需创建单独的脚本作为参数传递)的 Powershell 示例,您可以在组策略脚本或计划任务中使用它:
$diskpartCommands = @() ;
$diskpartCommands += "select disk X" ; # X being the Disk number as listed by the command 'DISKPART list disk'
$diskpartCommands += "offline disk" ;
$diskpartCommands | DISKPART.EXE
如果您将磁盘改回基本磁盘,那么您将能够使用获取磁盘和设置磁盘命令。
最后,如果简单地卸载卷而不是将磁盘脱机可以满足您的需求,则即使在动态磁盘上也可以使用“mountVol”命令。