【探索】windows系统下安全移除用SATA线(开启热插拔)直连主机的机械硬盘的方法

查看 30|回复 0
作者:不谙世事的雨滴   
大容量的机械硬盘现在已经普及了,我想大多数人买机械硬盘都是为了进行数据的“冷备份”,不需要一直连接在电脑上,一方面平时机械硬盘的空闲会白白增加机械硬盘的使用时间缩短寿命,另一方面是为了防止电脑病毒扩散威胁资料安全亦或是加快开机时间(只要连接有机械硬盘,bios就需要等待机械硬盘起转和就绪,来尝试读取机械硬盘里有无启动项,这个过程会增加大约5秒左右的开机时间),因此通过直接热插拔可以说是比较省钱省心(不需要买转成USB接口的硬盘盒子,此外现在的3.5寸硬盘盒子没几个质量是让人满意的,各种掉盘、过热……)而且最能保留传输性能(SATA直连)的选择了。
在windows系统下常见的移除硬件操作就是右下角的“删除硬件”,相信用了这么久,各位都习惯了点击“删除硬件”然后拔硬盘,可是这么做真的安全吗?经过我的观察,硬盘直连主板时,即使主板BIOS开启热插拔,在windows里“弹出硬件”了,在windows系统下硬盘也不会停转。如果想要硬盘带电执行清空缓存、磁头归位并关闭电机的安全关闭操作,在我发现今天的新方法前(下面会提到)只有在系统休眠或者关机的时候(而且关机或休眠前还不能点击弹出硬件)才行,或者用硬盘盒转接,通过硬盘盒上的控制芯片安全地关闭硬盘,不然手动拔线时磁头总是会有断电缩回的“咔嚓”声,再次连接时硬盘SMART信息中“磁头意外缩回”这一项(描述可能不准确,明白大概意思就行)就会增加。windows这系统设计也不人性化,不像linux可以通过命令行手动开关硬盘的电源,windows里硬盘的开关机API到现在似乎也没公布出来,可以说到现在都是无解的。
如果想要做到安全,之前每次用完硬盘就得关一次机,虽然现在一次开关机的时间已经比较短,还能等得起,但是如果此时你的迅雷正在往固态盘(系统盘)里下载东西或者电脑上挂着一堆任务呢?所以说这么做有时候实在是有点麻烦和显得鸡肋了。
终于,今天我找到了一个既安全,又不用电脑关机的方法了,下面介绍给大家:
本方法需要用到希捷的SeaChest工具(用以向硬盘发送安全关机指令),下载方法如下:进入希捷官网,语言切换为简体中文,在顶部的选项卡里找到“支持”,鼠标悬停在上方,下面就会出现具体选项,找到“软件下载”这一项点击进入,之后按下“Ctrl+F”组合键,输入"seachest",用浏览器自带的搜索工具搜索,结果有两个,找到带有绿色文字的链接,点击进入后往下翻,找到“SeaChest Utilities(CLI)”这项点击“下载”就可以下载了。
下载解压后找到“Windows”文件夹中的“SeaChest Utilities_APR2022_Win64_Setup.exe”双击安装(如果有选项的话记得勾上“创建桌面快捷方式”)。需要移出硬盘时,双击桌面的“SeaChest Utilities”图标进入cmd命令行窗口(这里其实也可以不用双击图标自己手动启动cmd窗口,不过通过双击桌面的这个快捷方式,会引导cmd进入(cd)到安装路径下,也就是exe可执行文件所在的路径下,运行程序时就不需要手动cd到exe可执行文件所在的路径下,比较方便。这个快捷方式的作用说白了也就是上面说的这些。不过如果不了解cmd命令,那就按照双击桌面图标的方式走,不会错),先输入"diskpart",按回车,这一步是调用windows系统自带的磁盘管理工具;然后输入“list disk”,按回车,找到你想要拔出的硬盘的编号(举例:磁盘 0),然后输入"select disk 0"(对应刚才例子中的“磁盘 0”,磁盘编号是几就是“disk [几]”),这一步是选中磁盘;然后输入"offline disk",这一步会把当前需要移除的硬盘的句柄全部移除(下线),断开这个磁盘所有分区的数据访问(放心,你的数据和分区都在)。这一步操作过后还是可以向磁盘通信的,也就是设备管理器里还是会显示这个硬盘。如果需要拔掉多个硬盘,重复"select disk [编号]"和"offline disk"直到所有磁盘都完成"下线"操作,完成之后记得输入"exit"退出diskpart(这点也很重要!总之用完diskpart工具后一定要输入"exit"退出,才能输入diskpart专用命令之外的命令)。添加这一步是为了确保安全,确保系统知道你不会访问这个磁盘的数据,之后向硬盘发送"spindown"这个收磁头、马达停转的关机的指令,让硬盘停转之后,就能最大程度地保证磁盘不会被重新唤醒起转,不过offline方法有个副作用,下一次连接硬盘就需要键盘按下WIN+R组合键,输入cmd,回车,唤出命令提示符窗口,在命令提示符窗口下手动依次输入diskpart、list disk、selectdisk [编号]、online disk了,也就是说需要手动复个位,让硬盘恢复“在线”状态,数据才能被访问,这一点要谨记,否则如果忘记的话你很可能认为你的硬盘坏了
退出diskpart工具后,确认显示出“退出 DiskPart...”字样,再输入"SeaChest_PowerControl_x64_windows.exe --scan",查找你想要移除的硬盘对应的“Handle”(PD0、PD1……),然后输入" SeaChest_PowerControl_x64_windows.exe -dPD[编号] --spinDown",按回车,如果有多个硬盘需要移除,一条命令执行完毕后,直接按键盘方向键里的“↑”拷贝上一条命令,然后用“←”“→”键移动到“PD[编号]”字样(PD0、PD1……)那里,用退格键删除那个数字编号,输入一个新编号后继续按回车,如此循环反复,直到所有磁盘都停转,这一步是最关键的,SeaChestspindown命令可能不适用于所有的机械硬盘,如果遇到了执行命令后还不能让硬盘停转的情况,就需要找这个硬盘的硬盘厂商的专用工具来执行spindown了,如果找不到专用工具,就还得重新让硬盘上线(方法在上面的“有个副作用,下一次连接硬盘就需要……”那里),用关机/休眠的方法来保证移除时的安全。不过我估计,既然扫描时SeaChest能显示非希捷的硬盘,而且SeaChest工具使用说明里,这条命令的说明也没有标出“(Seagate Only)”字样,这就代表着spindown命令应该具备一定的通用性。我用来测试的硬盘是希捷7E10系列的st8000nm017b企业级空气盘,这个盘能够做到在上述方法下安全停转。


成功执行完上面的一步,确认所有硬盘已经停转之后,最后就可以按照先拔SATA数据线,再拔SATA电源线SATA电源线的接口和线是又扁又宽的那个,而且SATA电源线的接口里有15个金属片,另一条就是SATA数据线了。提示到这里如果还不能分清两根线区别的,请自行百度>︿<)的步骤放心地拔掉所有的硬盘了。
讲完了安全拔SATA线的步骤,顺带再提一嘴连接SATA线时的注意事项。连接硬盘前,请确保在主板BIOS里开启所有SATA接口的热插拔(Hot Plug)选项(注意!是所有接口的!),不然在开机状态下电脑是不会识别新连接上的硬盘的。之后和拔出时顺序一样,也是先插SATA数据线,再插SATA电源线。这些注意事项其实有点经验的人都知道,我这里再提醒一下也是以防万一。
哦对了,还有一个很多人都不知道的注意事项我说一下硬盘连接好且正常起转后(没有敲盘、异响等硬件故障),如果迟迟等不到盘符出现,先尝试一下,进入设备管理器,在所有设备的根节点上(也就是你的计算机名上)鼠标右键单击,然后单击弹出菜单中的扫描检测硬件改动让电脑刷新一下,一般过个几秒盘符就出现了如果还是没出现盘符,而且上次也是按照这个方法移除硬盘的,你也不知道发生了什么,就说明这可能是你忘了关键的步骤导致的,这个步骤在上面的“有个副作用,下一次连接硬盘就需要……”那里上面两个列出来的可能情况是最有可能发生的,如果排除了上面两点,还是看不到盘符,估计就是硬盘出问题了,当然也有可能是你把所有分区都故意隐藏了或者硬盘压根就没分过区,不过这个可能性非常小。这种情况可能是里面的数据被破坏损伤,或者是硬盘的硬件故障了,建议马上给硬盘断电。如果硬盘没有异响等明显机械故障,可以尝试用上面的spindown命令停转,我个人认为这样可能比较好;但是如果已经出现异响等明显机械故障,赶紧一只手按住硬盘(防止你情绪激动下,没有妥善固定硬盘直接单手拔线,从而让硬盘飞出的悲剧发生),另一只手火速拔掉SATA电源线(注意!是电源线!),这个时候就不要计较拔出时安全不安全了,因为你的数据最重要,再晚个几秒,可能一些数据(包括重要的磁盘固件区域)都被磁头划没了,到时候恢复不出来哭都来不及。给硬盘断电之后取下硬盘妥善保存,并赶紧找个专业的数据恢复机构看看。


最后强调一下,通过SATA线直连主机进行热插拔的机械硬盘如果你在意硬盘的损伤的话,千万别用系统自带的移除工具,一旦点了系统自带的移除工具,硬盘是不会停转的,而此时再想挽回已经不行了,因为硬盘从硬件层面上已经和系统脱离联系了,设备管理器里硬件都扫描不到,更别提发送关机指令了(也就是说,此时关机/休眠法也无效),除非重新插拔SATA数据线让硬盘再次上线,否则这种情况下是没有办法让硬盘自己无伤停转的

硬盘, 磁盘

您需要登录后才可以回帖 登录 | 立即注册

返回顶部