一种基于pci-e装置实现隔离缺陷硬盘的方法

文档序号:877479 发布日期:2021-03-19 浏览:5次 >En<

阅读说明:本技术 一种基于pci-e装置实现隔离缺陷硬盘的方法 (Method for realizing defect hard disk isolation based on PCI-E device ) 是由 梁效宁 董超 许超明 彭炼 于 2020-12-04 设计创作,主要内容包括:本发明公开了一种基于PCI-E装置实现隔离缺陷硬盘的方法,其特征在于,所述方法包括以下步骤:S100:将所述缺陷硬盘连接至PCI-E装置,并将所述PCI-E装置连接至电脑主板的PCI-E通道,其中,所述PCI-E装置具有转接SATA接口的功能且包括PCI-E转SATA的转接芯片、PCI-E接口、SATA接口;S200:上位机加密原指令并将加密后的伪指令及数据发送至所述PCI-E装置的驱动程序;S300:所述PCI-E装置的驱动程序接收并解密上位机发送的伪指令,并将解密后的指令发送至指定端口的所述缺陷硬盘;S400:所述PCI-E装置的驱动程序等待所述缺陷硬盘响应,并将结果返回至上位机。(The invention discloses a method for realizing the isolation of a defective hard disk based on a PCI-E device, which is characterized by comprising the following steps: s100: connecting the defect hard disk to a PCI-E device, and connecting the PCI-E device to a PCI-E channel of a computer mainboard, wherein the PCI-E device has the function of switching SATA interfaces and comprises a switching chip for switching PCI-E to SATA, a PCI-E interface and an SATA interface; s200: the upper computer encrypts an original instruction and sends the encrypted pseudo instruction and data to a driver of the PCI-E device; s300: the driver of the PCI-E device receives and decrypts the pseudo instruction sent by the upper computer and sends the decrypted instruction to the defective hard disk of the designated port; s400: and the driver of the PCI-E device waits for the response of the defective hard disk and returns the result to the upper computer.)

一种基于PCI-E装置实现隔离缺陷硬盘的方法

技术领域

本发明属于数据恢复领域,涉及一种隔离缺陷硬盘的方法,尤其涉及一种基于PCI-E装置实现隔离缺陷硬盘的方法。

背景技术

在数据恢复领域,随着硬盘容量的不断扩大,以及硬盘的用户群不断增加,导致硬盘损坏的情况越来越多,当电脑端和硬盘直接连接时,电脑端会直接使用读取ATA指令访问硬盘,如果有缺陷的硬盘直接连接到电脑端,电脑端和硬盘都有可能卡死。

在需要对硬盘数据进行提取的情况,或者其他需要访问硬盘的情况,一般采用硬盘直接连接电脑端操作系统,使用读取指令访问硬盘的数据,但上述方法由于没有采用隔离的措施,访问硬盘、特别是缺陷硬盘时可能会造成电脑端和/或硬盘卡死的情况。

发明内容

针对现有技术的不足,本发明提供了一种基于PCI-E装置实现隔离缺陷硬盘的方法,采用上位机与PCI-E装置的驱动程序之间进行交互实现缺陷硬盘的隔离,避免电脑端和/或硬盘卡死,本发明申请包括以下步骤:

S100:将所述缺陷硬盘连接至PCI-E装置,并将所述PCI-E装置连接至电脑主板的PCI-E通道,其中,所述PCI-E装置具有转接SATA接口的功能且包括PCI-E转SATA的转接芯片、PCI-E接口、SATA接口;

S200:上位机加密原指令并将加密后的伪指令及数据发送至所述PCI-E装置的驱动程序;

S300:所述PCI-E装置的驱动程序接收并解密上位机发送的伪指令,并将解密后的指令发送至指定端口的所述缺陷硬盘;

S400:所述PCI-E装置的驱动程序等待所述缺陷硬盘响应,并将结果返回至上位机。

优选地,所述步骤S200包括以下步骤:

S201:上位机加密原指令,包括以下步骤:

S2011:在设备管理器上安装所述PCI-E装置的驱动程序;

S2012:所述缺陷硬盘连接至所述PCI-E装置后,确认所述电脑不能访问所述缺陷硬盘;

S2013:将获取所述缺陷硬盘的基础信息的原指令0x00,0x00,0x00,0x00,0x00,0x00,0xEC加密为0x0D,0x01,0x1,0x1,0x01,0x1,0x1,0xED并记为伪指令1,其中,0x0D为校验位;S202:将伪指令1发送至所述PCI-E装置的驱动程序:在所述上位机分配与数据缓冲区相同大小的存储空间,将所述伪指令1及数据缓冲区所包含数据发送至所述PCI-E装置的驱动程序。

优选地,所述步骤S300包括以下步骤:

S301:所述PCI-E装置的驱动程序解密伪指令,包括以下步骤:

S3011:所述PCI-E装置的驱动程序校验伪指令1:将所有指令的值相加并记录相加后的和;

S3012:判断所述相加后的和是否等于0x100,如果是,表示校验成功,执行步骤S3013,否则执行步骤S405;

S3013:将加密的伪指令1进行解密:去掉伪指令1的校验位0x0D,并将其余每字节的数值减一,得到指令0x00,0x00,0x00,0x00,0x00,0x00,0xEC并记为数据2;

S302:所述PCI-E装置的驱动程序将数据2发送至指定端口的所述缺陷硬盘。

优选地,所述步骤S400包括以下步骤:

S401:获取所述缺陷硬盘的基本状态:获取指定端口的所述缺陷硬盘的状态寄存器的值;

S402:判断当前所获取的状态寄存器的值是否正常,如果是,执行步骤S403,否则,执行步骤S404;

S403:处理并响应数据,执行步骤S405,包括以下步骤:

所述PCI-E装置的驱动程序获取所述缺陷硬盘的状态及所述缺陷硬盘返回的数据,然后将所述状态和所述数据发送至上位机,并标记本次指令执行的结果为成功,执行步骤S405;

S404:对所述缺陷硬盘执行复位后,判断当前所获取的状态寄存器的值是否正常,如果是,执行步骤S403,否则,执行步骤S405;

S405:返回指令执行结果。

优选地,所述步骤S405包括以下步骤:

S4051:上位机判断当前指令执行的结果,若为成功,执行步骤S4052,否则,执行步骤S4053;

S4052:上位机接收并展示所述缺陷硬盘的所述状态和所述数据,结束流程;

S4053:上位机展示失败的状态信息,并防止所述电脑访问所述缺陷硬盘时出现卡死的情况。

本发明的有益效果是解决了访问硬盘、特别是缺陷硬盘时可能会造成电脑端和/或硬盘卡死的技术问题。

附图说明

图1为本发明所提供的方法的总流程图。

具体实施方式

图1示出了本发明所提供的方法的总流程图。如图1所示,包括以下步骤:

S100:将缺陷硬盘连接至PCI-E装置,并将PCI-E装置连接至电脑主板的PCI-E通道,其中,PCI-E装置具有转接SATA接口的功能且包括PCI-E转SATA的转接芯片、PCI-E接口、SATA接口;

S200:上位机加密原指令并将加密后的伪指令及数据发送至PCI-E装置的驱动程序;

步骤S200包括以下步骤:

S201:上位机加密原指令,包括以下步骤:

S2011:针对这种标准的PCI-E装置中所包含的PCI-E转SATA的扩展芯片,需要自定义的驱动程序接管该装置,,即,在设备管理器上安装PCI-E装置的驱动程序;

S2012:缺陷硬盘连接至PCI-E装置后,确认电脑不能访问缺陷硬盘;

S2013:当需要发送0xEC指令,获取硬盘的基础信息时,例如,将获取缺陷硬盘的基础信息的原指令0x00,0x00,0x00,0x00,0x00,0x00,0xEC加密为0x0D,0x01,0x1,0x1,0x01,0x1,0x1,0xED并记为伪指令1,其中,0x0D为校验位;

S202:将伪指令1发送至PCI-E装置的驱动程序:在上位机分配与数据缓冲区相同大小的存储空间,将伪指令1及数据缓冲区所包含数据发送至PCI-E装置的驱动程序。

S300:PCI-E装置的驱动程序接收并解密上位机发送的伪指令,并将解密后的指令发送至指定端口的缺陷硬盘;

步骤S300包括以下步骤:

S301:PCI-E装置的驱动程序解密伪指令,包括以下步骤:

S3011:PCI-E装置的驱动程序校验伪指令1:将所有指令的值相加并记录相加后的和;

S3012:判断相加后的和是否等于0x100,如果是,表示校验成功,执行步骤S3013,否则执行步骤S405;

S3013:将加密的伪指令1进行解密:去掉伪指令1的校验位0x0D,并将其余每字节的数值减一,得到指令0x00,0x00,0x00,0x00,0x00,0x00,0xEC并记为数据2;

S302:PCI-E装置的驱动程序将数据2发送至指定端口的缺陷硬盘。驱动程序在系统有着至关重要的作用,上位机要将数据发送给缺陷硬盘,必须经过PCI-E装置的驱动程序转发才能实现,电脑端的操作系统会将缺陷硬盘的资源映射到操作系统的内存中,包括不同SATA端口的命令发送标记位、端口的状态以及端口的指令和传输的数据等,都会映射到操作系统的内存中,驱动程序需要将数据填充到指定的内存空间结构后,开启命令传输的任务。每个PCI-E装置都支持多个SATA接口,在发送数据2的指令到缺陷硬盘时,需要先指定发送到那个端口的硬盘,然后根据端口确定指令的内存空间,再将指令和数据发送到缺陷硬盘中。

S400:PCI-E装置的驱动程序等待缺陷硬盘响应,并将结果返回至上位机。

步骤S400包括以下步骤:

S401:获取缺陷硬盘的基本状态:等待一段时间,一般不超过3秒,检查指定端口缺陷硬盘的状态,该状态通过状态寄存器获取,即,获取指定端口的缺陷硬盘的状态寄存器的值;

S402:判断当前所获取的状态寄存器的值是否正常,如果是,执行步骤S403,否则,执行步骤S404,即,当前所获取的状态寄存器的值为BUSY\ERR或非正常就绪状态时,执行步骤S404;

S403:处理并响应数据,执行步骤S405,包括以下步骤:

PCI-E装置的驱动程序获取缺陷硬盘的状态及缺陷硬盘返回的数据,然后将状态和数据发送至上位机,并标记本次指令执行的结果为成功,执行步骤S405;

S404:对缺陷硬盘执行复位后,判断当前所获取的状态寄存器的值是否正常,如果是,执行步骤S403,否则,执行步骤S405;

S405:返回指令的执行结果,步骤S405包括以下步骤:

S4051:上位机判断当前指令执行的结果,若为成功,执行步骤S4052,否则,执行步骤S4053;

S4052:上位机接收并展示缺陷硬盘的状态和数据,结束流程;

S4053:上位机展示失败的状态信息,并防止电脑访问缺陷硬盘时出现卡死的情况。

通过S4051至S4053的步骤,实现了正常硬盘和缺陷硬盘接入电脑端的操作系统时,出现的操作系统无法直接访问缺陷硬盘而造成电脑端和/或硬盘卡死的情况。

应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多系统联动控制方法、装置、设备和计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!