本發(fā)明屬于磁盤管理技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)恢復(fù)方法及裝置。
背景技術(shù):
固態(tài)硬盤(SSD,Solid State Drives)由控制單元即SSD主控制器和存儲(chǔ)單元組成,存儲(chǔ)單元可采用FLASH芯片或DRAM(Dynamic Random Access Memory,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)芯片作為存儲(chǔ)介質(zhì)。固態(tài)硬盤具有傳統(tǒng)硬盤HDD(Hard Disk Drive,硬盤驅(qū)動(dòng)器)不具備的快速讀寫、質(zhì)量輕、能耗低以及體積小等特點(diǎn)。
固態(tài)硬盤與傳統(tǒng)硬盤的設(shè)計(jì)及數(shù)據(jù)讀寫、清除原理不同,對(duì)于傳統(tǒng)硬盤來講,當(dāng)一個(gè)文件被刪除后,操作系統(tǒng)并沒有立即清除文件數(shù)據(jù),事實(shí)上,它只是在硬盤前的索引區(qū)里標(biāo)記該文件占用的區(qū)域?yàn)榭筛采w的,在有新數(shù)據(jù)需寫入該標(biāo)記區(qū)域時(shí),可以直接覆蓋該區(qū)域的原有文件數(shù)據(jù)進(jìn)行新數(shù)據(jù)寫入,即被刪除文件的數(shù)據(jù)實(shí)質(zhì)上是在有新數(shù)據(jù)需寫入該文件所占用的區(qū)域時(shí)才被真正清除,從而在傳統(tǒng)硬盤中,對(duì)已刪除數(shù)據(jù)的恢復(fù)成為可能。而固態(tài)硬盤與傳統(tǒng)硬盤的數(shù)據(jù)清除機(jī)制不同,當(dāng)一個(gè)文件在支持trim(SSD的數(shù)據(jù)自動(dòng)清理功能)并開啟trim的系統(tǒng)里被刪除后,操作系統(tǒng)會(huì)向SSD主控發(fā)送一trim指令,以指示SSD主控該文件數(shù)據(jù)無效,SSD主控在收到trim指令時(shí),隨即將該文件的無效數(shù)據(jù)從固態(tài)硬盤清除,即在支持并開啟trim的系統(tǒng)里固態(tài)硬盤直接在用戶刪除數(shù)據(jù)時(shí)清除無效數(shù)據(jù),從而會(huì)導(dǎo)致被刪除的數(shù)據(jù)無法復(fù)原。
基于此,本領(lǐng)域需提供一種數(shù)據(jù)恢復(fù)方案,使得在應(yīng)用固態(tài)硬盤的系統(tǒng)中為用戶刪除數(shù)據(jù)的恢復(fù)提供支持。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種數(shù)據(jù)恢復(fù)方法及裝置,旨在解決應(yīng)用固態(tài)硬盤的系統(tǒng)存在的上述問題,使得在應(yīng)用固態(tài)硬盤的系統(tǒng)中為用戶刪除數(shù)據(jù)的恢復(fù)提供支持。
為此,本發(fā)明公開如下技術(shù)方案:
一種數(shù)據(jù)恢復(fù)方法,包括:
攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的第一數(shù)據(jù)清除指令;
在符合數(shù)據(jù)恢復(fù)條件時(shí),基于所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù)。
上述方法,優(yōu)選的,所述基于所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù)包括:
確定待恢復(fù)時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的新增數(shù)據(jù);
從固態(tài)硬盤中清除所述新增數(shù)據(jù),使得所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況與所述還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)狀態(tài)相一致。
上述方法,優(yōu)選的,所述確定待恢復(fù)時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的新增數(shù)據(jù)包括:
獲取固態(tài)硬盤在所述預(yù)定還原點(diǎn)的第一數(shù)據(jù)狀態(tài),所述第一數(shù)據(jù)狀態(tài)包括在所述預(yù)定還原點(diǎn)記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;
獲取固態(tài)硬盤在所述待恢復(fù)時(shí)刻的第二數(shù)據(jù)狀態(tài),所述第二數(shù)據(jù)狀態(tài)包括在所述待恢復(fù)時(shí)刻記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;
基于所述第一數(shù)據(jù)狀態(tài)及所述第二數(shù)據(jù)狀態(tài),確定所述新增數(shù)據(jù)。
上述方法,優(yōu)選的,所述從固態(tài)硬盤中清除所述新增數(shù)據(jù)包括:
向固態(tài)硬盤的主控制器發(fā)送一第二數(shù)據(jù)清除指令,使得所述主控制器基于所述第二數(shù)據(jù)清除指令從固態(tài)硬盤中清除所述新增數(shù)據(jù)。
上述方法,優(yōu)選的,還包括:
在符合刪除數(shù)據(jù)直接清除條件時(shí),從固態(tài)硬盤中清除已刪除的文件數(shù)據(jù),并不再攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的數(shù)據(jù)清除指令。
上述方法,優(yōu)選的,所述從固態(tài)硬盤中清除已刪除的文件數(shù)據(jù)包括:
確定待清除時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的無效數(shù)據(jù);
從固態(tài)硬盤中清除所述無效數(shù)據(jù)。
上述方法,優(yōu)選的,所述確定待清除時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的無效數(shù)據(jù)包括:
獲取固態(tài)硬盤在所述預(yù)定還原點(diǎn)的第一數(shù)據(jù)狀態(tài),所述第一數(shù)據(jù)狀態(tài)包括在所述預(yù)定還原點(diǎn)記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;
獲取固態(tài)硬盤在所述待清除時(shí)刻的第三數(shù)據(jù)狀態(tài),所述第三數(shù)據(jù)狀態(tài)包括在所述待清除時(shí)刻記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;
基于所述第一數(shù)據(jù)狀態(tài)及所述第三數(shù)據(jù)狀態(tài),確定所述無效數(shù)據(jù)。
上述方法,優(yōu)選的,所述從固態(tài)硬盤中清除所述無效數(shù)據(jù)包括:
向固態(tài)硬盤的主控制器發(fā)送一第三數(shù)據(jù)清除指令,使得所述主控制器基于所述第三數(shù)據(jù)清除指令從固態(tài)硬盤中清除所述無效數(shù)據(jù)。
一種數(shù)據(jù)恢復(fù)裝置,包括:
攔截模塊,用于攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的第一數(shù)據(jù)清除指令;
恢復(fù)模塊,用于在符合數(shù)據(jù)恢復(fù)條件時(shí),基于所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù)。
上述裝置,優(yōu)選的,所述恢復(fù)模塊具體用于:
確定待恢復(fù)時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的新增數(shù)據(jù);并從固態(tài)硬盤中清除所述新增數(shù)據(jù),使得所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況與所述還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)狀態(tài)相一致。
上述裝置,優(yōu)選的,所述恢復(fù)模塊確定待恢復(fù)時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的新增數(shù)據(jù),具體包括:
獲取固態(tài)硬盤在所述預(yù)定還原點(diǎn)的第一數(shù)據(jù)狀態(tài),所述第一數(shù)據(jù)狀態(tài)包括在所述預(yù)定還原點(diǎn)記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;獲取固態(tài)硬盤在所述待恢復(fù)時(shí)刻的第二數(shù)據(jù)狀態(tài),所述第二數(shù)據(jù)狀態(tài)包括在所述待恢復(fù)時(shí)刻記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;并基于所述第一數(shù)據(jù)狀態(tài)及所述第二數(shù)據(jù)狀態(tài),確定所述新增數(shù)據(jù)
上述裝置,優(yōu)選的,所述恢復(fù)模塊從固態(tài)硬盤中清除所述新增數(shù)據(jù),具體包括:向固態(tài)硬盤的主控制器發(fā)送一第二數(shù)據(jù)清除指令,使得所述主控制器基于所述第二數(shù)據(jù)清除指令從固態(tài)硬盤中清除所述新增數(shù)據(jù)。
上述裝置,優(yōu)選的,所述裝置還包括直接清除模塊,用于在符合刪除數(shù)據(jù)直接清除條件時(shí),從固態(tài)硬盤中清除已刪除的文件數(shù)據(jù),并不再攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的數(shù)據(jù)清除指令。
上述裝置,優(yōu)選的,所述直接清除模塊從固態(tài)硬盤中清除已刪除的文件數(shù)據(jù),具體包括:
確定待清除時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的無效數(shù)據(jù);從固態(tài)硬盤中清除所述無效數(shù)據(jù)。
上述裝置,優(yōu)選的,所述直接清除模塊確定待清除時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的無效數(shù)據(jù),具體包括:
獲取固態(tài)硬盤在所述預(yù)定還原點(diǎn)的第一數(shù)據(jù)狀態(tài),所述第一數(shù)據(jù)狀態(tài)包括在所述預(yù)定還原點(diǎn)記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;獲取固態(tài)硬盤在所述待清除時(shí)刻的第三數(shù)據(jù)狀態(tài),所述第三數(shù)據(jù)狀態(tài)包括在所述待清除時(shí)刻記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;并基于所述第一數(shù)據(jù)狀態(tài)及所述第三數(shù)據(jù)狀態(tài),確定所述無效數(shù)據(jù)。
上述裝置,優(yōu)選的,所述直接清除模塊從固態(tài)硬盤中清除所述無效數(shù)據(jù),具體包括:
向固態(tài)硬盤的主控制器發(fā)送一第三數(shù)據(jù)清除指令,使得所述主控制器基于所述第三數(shù)據(jù)清除指令從固態(tài)硬盤中清除所述無效數(shù)據(jù)。
由以上方案可知,本申請(qǐng)?zhí)峁┝艘环N數(shù)據(jù)恢復(fù)方法及裝置,所述方法攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的第一數(shù)據(jù)清除指令;并在符合數(shù)據(jù)恢復(fù)條件時(shí),基于所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù)。本申請(qǐng)方案通過攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的數(shù)據(jù)清除指令,可使得固態(tài)硬盤在文件被刪除時(shí)無法獲知文件數(shù)據(jù)無效,從而無法在文件被刪除時(shí)刻對(duì)該文件對(duì)應(yīng)的無效數(shù)據(jù)進(jìn)行清除,即所述無效數(shù)據(jù)仍在固態(tài)硬盤中存在,從而在符合數(shù)據(jù)恢復(fù)條件時(shí),可從固態(tài)硬盤中對(duì)用戶已刪除數(shù)據(jù)進(jìn)行恢復(fù)。由此可見,本申請(qǐng)方案解決了應(yīng)用固態(tài)硬盤的系統(tǒng)存在的上述問題,實(shí)現(xiàn)了在應(yīng)用固態(tài)硬盤的系統(tǒng)中為用戶刪除數(shù)據(jù)的恢復(fù)提供支持。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1是本申請(qǐng)?zhí)峁┑囊环N數(shù)據(jù)恢復(fù)方法實(shí)施例一的流程圖;
圖2是本申請(qǐng)?zhí)峁┑囊环N數(shù)據(jù)恢復(fù)方法實(shí)施例二的流程圖;
圖3-圖4是本申請(qǐng)?zhí)峁┑囊环N數(shù)據(jù)恢復(fù)方法實(shí)施例三的流程圖;
圖5-圖6是本申請(qǐng)實(shí)施例三提供的本申請(qǐng)方案的應(yīng)用示例圖;
圖7是本申請(qǐng)?zhí)峁┑囊环N數(shù)據(jù)恢復(fù)裝置實(shí)施例四的結(jié)構(gòu)示意圖;
圖8是本申請(qǐng)?zhí)峁┑囊环N數(shù)據(jù)恢復(fù)裝置實(shí)施例六的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
參考圖1,圖1是本申請(qǐng)?zhí)峁┑囊环N數(shù)據(jù)恢復(fù)方法實(shí)施例一的流程圖,所述方法適用于應(yīng)用固態(tài)硬盤的系統(tǒng),如應(yīng)用固態(tài)硬盤的計(jì)算機(jī)操作系統(tǒng)等,如圖1所示,所述數(shù)據(jù)恢復(fù)方法可以包括以下步驟:
S101:攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的第一數(shù)據(jù)清除指令。
首先,需要說明的是,本申請(qǐng)中數(shù)據(jù)刪除及數(shù)據(jù)恢復(fù)分別指在操作系統(tǒng)層面的數(shù)據(jù)刪除、數(shù)據(jù)恢復(fù),數(shù)據(jù)清除指在固態(tài)硬盤中的數(shù)據(jù)刪除,是永久性刪除。
在應(yīng)用固態(tài)硬盤并開啟trim的系統(tǒng)中,當(dāng)用戶對(duì)某一文件進(jìn)行刪除時(shí),操作系統(tǒng)會(huì)針對(duì)該文件向固態(tài)硬盤中的SSD主控制器下發(fā)一trim指令,以通知SSD主控制器該文件數(shù)據(jù)無效,從而使得在用戶刪除文件時(shí)刻直接從固態(tài)硬盤中清除該文件對(duì)應(yīng)的無效數(shù)據(jù)。
為實(shí)現(xiàn)在應(yīng)用固態(tài)硬盤并開啟trim的系統(tǒng)中提供已刪除數(shù)據(jù)的恢復(fù)功能,本申請(qǐng)方案提出對(duì)操作系統(tǒng)下發(fā)的trim指令即所述第一數(shù)據(jù)清除指令實(shí)施攔截,從而使得操作系統(tǒng)的trim指令無法真正下達(dá)至SSD主控制器,SSD主控制器由于無法獲知被刪除文件的數(shù)據(jù)無效,從而不會(huì)對(duì)固態(tài)硬盤中存儲(chǔ)的該文件的無效數(shù)據(jù)進(jìn)行清除。
S102:在符合數(shù)據(jù)恢復(fù)條件時(shí),基于所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù)。
所述數(shù)據(jù)恢復(fù)條件可以是執(zhí)行主體提供的缺省條件,也可以是用戶基于其實(shí)際的數(shù)據(jù)恢復(fù)需求自行設(shè)置的相關(guān)條件,例如,假設(shè)在實(shí)際應(yīng)用中采用保護(hù)軟件的形式對(duì)本申請(qǐng)方案的各處理步驟進(jìn)行實(shí)施,則所述數(shù)據(jù)恢復(fù)條件可以是所述保護(hù)軟件提供的進(jìn)行數(shù)據(jù)恢復(fù)需滿足的缺省條件,也可以是用戶在所述保護(hù)軟件中預(yù)先設(shè)置的相應(yīng)恢復(fù)條件,如用戶具體可針對(duì)需保護(hù)的磁盤分區(qū)設(shè)置開機(jī)恢復(fù)或周期性恢復(fù)等等。
由于未在被刪除文件的刪除時(shí)刻對(duì)其無效數(shù)據(jù)從固態(tài)硬盤中進(jìn)行清除,從而可為已刪除文件的數(shù)據(jù)恢復(fù)提供有效支持,當(dāng)符合數(shù)據(jù)恢復(fù)條件時(shí),可基于固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況對(duì)已刪除文件進(jìn)行相應(yīng)的數(shù)據(jù)恢復(fù)。
具體實(shí)施時(shí),可基于硬盤空間的占用以及數(shù)據(jù)恢復(fù)的成功率等多方面考慮,對(duì)固態(tài)硬盤中無效數(shù)據(jù)(用戶已刪除的文件數(shù)據(jù))的存儲(chǔ)情況進(jìn)行管理,例如,若考慮盡可能節(jié)省固態(tài)硬盤的空間占用,則可僅僅攔截操作系統(tǒng)的trim指令,而不對(duì)操作系統(tǒng)作任何代碼調(diào)整,即對(duì)于操作系統(tǒng)來說,被刪除文件的數(shù)據(jù)已無效,而對(duì)于固態(tài)硬盤則其仍將該文件數(shù)據(jù)作為有效數(shù)據(jù)進(jìn)行存儲(chǔ),從而后續(xù)當(dāng)有新數(shù)據(jù)需寫入被刪除文件所占用的硬盤空間時(shí),固態(tài)硬盤才會(huì)獲知被刪除文件的數(shù)據(jù)已無效從而刪除無效數(shù)據(jù)并寫入新數(shù)據(jù),此種情況下,固態(tài)硬盤僅能夠支持在有新數(shù)據(jù)寫入無效數(shù)據(jù)所占用的空間之前,對(duì)被刪除文件進(jìn)行數(shù)據(jù)恢復(fù)。
若考慮需要較高的數(shù)據(jù)恢復(fù)成功率,則可在攔截操作系統(tǒng)trim指令的同時(shí),通知操作系統(tǒng)記錄被刪除的文件為需要保護(hù)的文件,從而后續(xù)操作系統(tǒng)不會(huì)指示向該文件所占用的空間寫入新數(shù)據(jù),固態(tài)硬盤會(huì)一直保持無效數(shù)據(jù)的存儲(chǔ)直至有其他的相關(guān)指令,從而此種情況下,固態(tài)硬盤可支持一較高的數(shù)據(jù)恢復(fù)成功率。
由以上方案可知,本申請(qǐng)?zhí)峁┑臄?shù)據(jù)恢復(fù)方法攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的第一數(shù)據(jù)清除指令;并在符合數(shù)據(jù)恢復(fù)條件時(shí),基于所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù)。本申請(qǐng)方案通過攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的數(shù)據(jù)清除指令,可使得固態(tài)硬盤在文件被刪除時(shí)無法獲知文件數(shù)據(jù)無效,從而無法在文件被刪除時(shí)刻從固態(tài)硬盤中對(duì)該文件對(duì)應(yīng)的無效數(shù)據(jù)進(jìn)行清除,即所述無效數(shù)據(jù)仍在固態(tài)硬盤中存在,從而在符合數(shù)據(jù)恢復(fù)條件時(shí),可從固態(tài)硬盤中對(duì)用戶已刪除數(shù)據(jù)進(jìn)行恢復(fù)。由此可見,本申請(qǐng)方案解決了應(yīng)用固態(tài)硬盤的系統(tǒng)存在的上述問題,實(shí)現(xiàn)了在應(yīng)用固態(tài)硬盤的系統(tǒng)中為用戶刪除數(shù)據(jù)的恢復(fù)提供支持。
實(shí)施例二
本實(shí)施例具體提供基于固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù)的一種可能的實(shí)現(xiàn)方式,參考圖2示出的數(shù)據(jù)恢復(fù)方法流程圖,本實(shí)施例中,所述步驟S102可以通過以下步驟實(shí)現(xiàn):
S1021:確定待恢復(fù)時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的新增數(shù)據(jù);
S1022:從固態(tài)硬盤中清除所述新增數(shù)據(jù),使得所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況與所述還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)狀態(tài)相一致。
所述待恢復(fù)時(shí)刻即為符合所述數(shù)據(jù)恢復(fù)條件時(shí)對(duì)應(yīng)的時(shí)刻,例如針對(duì)用戶設(shè)置的開機(jī)恢復(fù)或周期性恢復(fù)等條件,該時(shí)刻即為開機(jī)完成時(shí)或到達(dá)恢復(fù)周期時(shí)所對(duì)應(yīng)的時(shí)刻。
其中,用戶具體可針對(duì)磁盤分區(qū)進(jìn)行相關(guān)的數(shù)據(jù)保護(hù)/恢復(fù)設(shè)置,比如,用戶可設(shè)置全磁盤數(shù)據(jù)或某一個(gè)/多個(gè)磁盤分區(qū)(如C盤、D盤)數(shù)據(jù)為需保護(hù)的數(shù)據(jù),并針對(duì)需保護(hù)的磁盤分區(qū)分別設(shè)置需采用的恢復(fù)條件,如開機(jī)恢復(fù)或周期性恢復(fù)等,同時(shí)針對(duì)需保護(hù)的磁盤分區(qū),用戶還可以創(chuàng)建其恢復(fù)數(shù)據(jù)時(shí)對(duì)應(yīng)采用的還原點(diǎn)(亦可采用執(zhí)行主體提供的缺省還原點(diǎn)),例如用戶可將當(dāng)前時(shí)刻的C盤文件數(shù)據(jù)狀態(tài)設(shè)置為C盤文件的還原點(diǎn),從而后續(xù)在對(duì)C盤文件進(jìn)行數(shù)據(jù)恢復(fù)時(shí),具體將其恢復(fù)至所述還原點(diǎn)對(duì)應(yīng)的C盤文件數(shù)據(jù)狀態(tài)。
在完成固態(tài)硬盤(全磁盤或某一個(gè)/多個(gè)磁盤分區(qū))還原點(diǎn)創(chuàng)建的基礎(chǔ)上,本申請(qǐng)方案的執(zhí)行主體需記錄固態(tài)硬盤在還原點(diǎn)的第一數(shù)據(jù)狀態(tài),以實(shí)現(xiàn)為后續(xù)的數(shù)據(jù)恢復(fù)提供數(shù)據(jù)狀態(tài)基準(zhǔn),該第一數(shù)據(jù)狀態(tài)包括在所述還原點(diǎn)記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系。
在之后用戶對(duì)文件數(shù)據(jù)進(jìn)行增刪改等操作過程中,執(zhí)行主體隨時(shí)記錄固態(tài)硬盤中文件的最新數(shù)據(jù)狀態(tài),由于操作系統(tǒng)的trim指令被攔截,從而在用戶對(duì)文件數(shù)據(jù)進(jìn)行操作的過程中,固態(tài)硬盤(假設(shè)未有新數(shù)據(jù)寫入無效數(shù)據(jù)所在空間)的實(shí)際存儲(chǔ)狀態(tài)為:在維持還原點(diǎn)文件數(shù)據(jù)的存儲(chǔ)(包括還原點(diǎn)中未改動(dòng)的數(shù)據(jù)以及刪除或修改等操作刪掉的無效數(shù)據(jù))基礎(chǔ)上,結(jié)合存儲(chǔ)有因用戶操作而產(chǎn)生的新增數(shù)據(jù)(包括增加或修改等操作產(chǎn)生的新增數(shù)據(jù))。
從而,當(dāng)符合數(shù)據(jù)恢復(fù)條件時(shí),可獲取固態(tài)硬盤在其還原點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)狀態(tài)以及在待恢復(fù)時(shí)刻對(duì)應(yīng)的第二數(shù)據(jù)狀態(tài),第二數(shù)據(jù)狀態(tài)包括在所述待恢復(fù)時(shí)刻記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;并基于所述第一數(shù)據(jù)狀態(tài)及所述第二數(shù)據(jù)狀態(tài),確定固態(tài)硬盤在所述待恢復(fù)時(shí)刻相比于還原點(diǎn)的新增數(shù)據(jù),該新增數(shù)據(jù)即為固態(tài)硬盤針對(duì)所述還原點(diǎn)因用戶操作而額外存儲(chǔ)的臟數(shù)據(jù)。在此基礎(chǔ)上,可針對(duì)該新增數(shù)據(jù)向SSD主控制器下發(fā)一trim指令,例如具體可由保護(hù)軟件模擬操作系統(tǒng)下發(fā)針對(duì)所述新增數(shù)據(jù)的trim指令,SSD主控制器在接收該指令時(shí),從固態(tài)硬盤中清除該新增數(shù)據(jù),使得其數(shù)據(jù)狀態(tài)與還原點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)狀態(tài)相一致,在輔以從操作系統(tǒng)層面對(duì)還原點(diǎn)文件狀態(tài)進(jìn)行恢復(fù)(如恢復(fù)顯示已刪除的文件數(shù)據(jù))的情況下可有效實(shí)現(xiàn)已刪除文件的數(shù)據(jù)恢復(fù)。
需要說明的是,本申請(qǐng)中的數(shù)據(jù)恢復(fù)具體指操作系統(tǒng)層面的文件數(shù)據(jù)恢復(fù),從而在進(jìn)行數(shù)據(jù)恢復(fù)時(shí),對(duì)固態(tài)硬盤中的所述臟數(shù)據(jù)的清除并不是必需的,因操作系統(tǒng)的trim指令被攔截,從而在用戶對(duì)文件數(shù)據(jù)進(jìn)行操作的過程中,固態(tài)硬盤的實(shí)際存儲(chǔ)情況是:在維持還原點(diǎn)文件數(shù)據(jù)的存儲(chǔ)基礎(chǔ)上,還結(jié)合存儲(chǔ)有因用戶操作而產(chǎn)生的新增數(shù)據(jù)即臟數(shù)據(jù),從而無論對(duì)固態(tài)硬盤中的臟數(shù)據(jù)清除與否,均可基于固態(tài)硬盤維持存儲(chǔ)的還原點(diǎn)文件數(shù)據(jù),在操作系統(tǒng)層面對(duì)用戶已刪除的文件數(shù)據(jù)進(jìn)行恢復(fù)。
本實(shí)施例在進(jìn)行數(shù)據(jù)恢復(fù)時(shí)同時(shí)包含清除固態(tài)硬盤中的臟數(shù)據(jù)僅為本申請(qǐng)?zhí)峁┑囊惠^優(yōu)實(shí)施方式,旨在使得固態(tài)硬盤不再將所述臟數(shù)據(jù)作為有效數(shù)據(jù)進(jìn)行存儲(chǔ)及管理,從而使得固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)與操作系統(tǒng)層面的有效文件數(shù)據(jù)一致,無多余的無效數(shù)據(jù),進(jìn)而可達(dá)到節(jié)省硬盤空間、提升固態(tài)硬盤的工作效率,同時(shí)延長(zhǎng)固態(tài)硬盤使用壽命的目的。
實(shí)施例三
本實(shí)施例繼續(xù)對(duì)以上實(shí)施例的方案進(jìn)行補(bǔ)充,參考圖3示出的數(shù)據(jù)恢復(fù)方法流程圖,本實(shí)施例中,所述方法還可以包括以下步驟:
S103:在符合刪除數(shù)據(jù)直接清除條件時(shí),從固態(tài)硬盤中清除已刪除的文件數(shù)據(jù),并不再攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的數(shù)據(jù)清除指令。
與實(shí)施例二的方案相對(duì)應(yīng),當(dāng)符合刪除數(shù)據(jù)直接清除條件時(shí),表示被保護(hù)的磁盤文件已無需繼續(xù)被保護(hù),不存在數(shù)據(jù)恢復(fù)需求,從而可直接從固態(tài)硬盤中清除已被刪除的文件數(shù)據(jù),且后續(xù)不再攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的數(shù)據(jù)清除指令。
參考圖4示出的數(shù)據(jù)恢復(fù)方法流程圖,所述步驟S103具體可以通過以下步驟實(shí)現(xiàn):
S1031:確定待清除時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的無效數(shù)據(jù);
S1032:從固態(tài)硬盤中清除所述無效數(shù)據(jù)。
具體地,在符合刪除數(shù)據(jù)直接清除條件時(shí),可獲取固態(tài)硬盤在所述預(yù)定還原點(diǎn)的第一數(shù)據(jù)狀態(tài)以及在待清除時(shí)刻的第三數(shù)據(jù)狀態(tài),并基于所述第三數(shù)據(jù)狀態(tài)及所述第一數(shù)據(jù)狀態(tài),確定待清除時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的無效數(shù)據(jù);其中,所述第一數(shù)據(jù)狀態(tài)包括在所述預(yù)定還原點(diǎn)記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;所述第三數(shù)據(jù)狀態(tài)包括在所述待清除時(shí)刻記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系。
在此基礎(chǔ)上,可針對(duì)所述無效數(shù)據(jù)向SSD主控制器下發(fā)一trim指令,例如具體可由保護(hù)軟件模擬操作系統(tǒng)下發(fā)針對(duì)所述無效數(shù)據(jù)的trim指令,SSD主控制器在接收該指令時(shí),從固態(tài)硬盤中清除所述無效數(shù)據(jù),從而使得固態(tài)硬盤中的數(shù)據(jù)存儲(chǔ)情況與待清除時(shí)刻操作系統(tǒng)層面的有效文件數(shù)據(jù)一致,不存在多余數(shù)據(jù),同樣可達(dá)到節(jié)省硬盤空間、提升固態(tài)硬盤的工作效率,同時(shí)延長(zhǎng)固態(tài)硬盤使用壽命的目的。
具體實(shí)施本申請(qǐng)時(shí),可通過在所述保護(hù)軟件中提供數(shù)據(jù)模式設(shè)置及切換功能使得用戶可基于其實(shí)際需求自由選擇或切換數(shù)據(jù)模式,比如可向用戶提供可用于對(duì)文件數(shù)據(jù)進(jìn)行保護(hù)/恢復(fù)的保護(hù)模式以及不對(duì)文件數(shù)據(jù)進(jìn)行保護(hù)/恢復(fù)的開放模式,當(dāng)用戶需要對(duì)硬盤文件進(jìn)行保護(hù)時(shí),可選擇保護(hù)模式,從而在該模式下通過攔截操作系統(tǒng)的trim指令,實(shí)現(xiàn)對(duì)硬盤數(shù)據(jù)進(jìn)行保護(hù),后續(xù)當(dāng)有數(shù)據(jù)恢復(fù)需求時(shí),可基于固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù),且進(jìn)行數(shù)據(jù)恢復(fù)時(shí)同時(shí)包括對(duì)固態(tài)硬盤中的新增數(shù)據(jù)形式的臟數(shù)據(jù)進(jìn)行清除;當(dāng)用戶不再需要對(duì)硬盤文件進(jìn)行保護(hù)時(shí),可切換至開放模式,此時(shí),由于硬盤文件不需要繼續(xù)被保護(hù),不再存在數(shù)據(jù)恢復(fù)需求,從而保護(hù)軟件可認(rèn)為接收到一刪除數(shù)據(jù)直接清除指令,直接將固態(tài)硬盤中無效數(shù)據(jù)形式的臟數(shù)據(jù)進(jìn)行清除,且之后不再攔截操作系統(tǒng)的trim指令,即在開放模式下,操作系統(tǒng)能夠正常向固態(tài)硬盤下達(dá)trim指令。
參考圖5、圖6示出的應(yīng)用本申請(qǐng)方案進(jìn)行硬盤文件數(shù)據(jù)保護(hù)/恢復(fù)的示例圖,其中,圖5的應(yīng)用示例具體在UEFI(Unified Extensible Firmware Interface,統(tǒng)一的可擴(kuò)展固件接口)BIOS(Basic Input Output System,基本輸入輸出系統(tǒng))層對(duì)本申請(qǐng)方案進(jìn)行了實(shí)施,圖6的應(yīng)用示例具體在如windows等操作系統(tǒng)層對(duì)本申請(qǐng)方案進(jìn)行了實(shí)施。
實(shí)施例四
參考圖7,圖7是本申請(qǐng)?zhí)峁┑囊环N數(shù)據(jù)恢復(fù)裝置實(shí)施例四的結(jié)構(gòu)示意圖,所述裝置適用于應(yīng)用固態(tài)硬盤的系統(tǒng),如應(yīng)用固態(tài)硬盤的計(jì)算機(jī)操作系統(tǒng)等,如圖7所示,所述數(shù)據(jù)恢復(fù)裝置可以包括攔截模塊100和恢復(fù)模塊200。
攔截模塊100,用于攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的第一數(shù)據(jù)清除指令。
首先,需要說明的是,本申請(qǐng)中數(shù)據(jù)刪除及數(shù)據(jù)恢復(fù)分別指在操作系統(tǒng)層面的數(shù)據(jù)刪除、數(shù)據(jù)恢復(fù),數(shù)據(jù)清除指在固態(tài)硬盤中的數(shù)據(jù)刪除,是永久性刪除。
在應(yīng)用固態(tài)硬盤并開啟trim的系統(tǒng)中,當(dāng)用戶對(duì)某一文件進(jìn)行刪除時(shí),操作系統(tǒng)會(huì)針對(duì)該文件向固態(tài)硬盤中的SSD主控制器下發(fā)一trim指令,以通知SSD主控制器該文件數(shù)據(jù)無效,從而使得在用戶刪除文件時(shí)刻直接從固態(tài)硬盤中清除該文件對(duì)應(yīng)的無效數(shù)據(jù)。
為實(shí)現(xiàn)在應(yīng)用固態(tài)硬盤并開啟trim的系統(tǒng)中提供已刪除數(shù)據(jù)的恢復(fù)功能,本申請(qǐng)方案提出對(duì)操作系統(tǒng)下發(fā)的trim指令即所述第一數(shù)據(jù)清除指令實(shí)施攔截,從而使得操作系統(tǒng)的trim指令無法真正下達(dá)至SSD主控制器,SSD主控制器由于無法獲知被刪除文件的數(shù)據(jù)無效,從而不會(huì)對(duì)固態(tài)硬盤中存儲(chǔ)的該文件的無效數(shù)據(jù)進(jìn)行清除。
恢復(fù)模塊200,用于在符合數(shù)據(jù)恢復(fù)條件時(shí),基于所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù)。
所述數(shù)據(jù)恢復(fù)條件可以是執(zhí)行主體提供的缺省條件,也可以是用戶基于其實(shí)際的數(shù)據(jù)恢復(fù)需求自行設(shè)置的相關(guān)條件,例如,假設(shè)在實(shí)際應(yīng)用中采用保護(hù)軟件的形式對(duì)本申請(qǐng)方案的各處理步驟進(jìn)行實(shí)施,則所述數(shù)據(jù)恢復(fù)條件可以是所述保護(hù)軟件提供的進(jìn)行數(shù)據(jù)恢復(fù)需滿足的缺省條件,也可以是用戶在所述保護(hù)軟件中預(yù)先設(shè)置的相應(yīng)恢復(fù)條件,如用戶具體可針對(duì)需保護(hù)的磁盤分區(qū)設(shè)置開機(jī)恢復(fù)或周期性恢復(fù)等等。
由于未在被刪除文件的刪除時(shí)刻對(duì)其無效數(shù)據(jù)從固態(tài)硬盤中進(jìn)行清除,從而可為已刪除文件的數(shù)據(jù)恢復(fù)提供有效支持,當(dāng)符合數(shù)據(jù)恢復(fù)條件時(shí),可基于固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況對(duì)已刪除文件進(jìn)行相應(yīng)的數(shù)據(jù)恢復(fù)。
具體實(shí)施時(shí),可基于硬盤空間的占用以及數(shù)據(jù)恢復(fù)的成功率等多方面考慮,對(duì)固態(tài)硬盤中無效數(shù)據(jù)(用戶已刪除的文件數(shù)據(jù))的存儲(chǔ)情況進(jìn)行管理,例如,若考慮盡可能節(jié)省固態(tài)硬盤的空間占用,則可僅僅攔截操作系統(tǒng)的trim指令,而不對(duì)操作系統(tǒng)作任何代碼調(diào)整,即對(duì)于操作系統(tǒng)來說,被刪除文件的數(shù)據(jù)已無效,而對(duì)于固態(tài)硬盤則其仍將該文件數(shù)據(jù)作為有效數(shù)據(jù)進(jìn)行存儲(chǔ),從而后續(xù)當(dāng)有新數(shù)據(jù)需寫入被刪除文件所占用的硬盤空間時(shí),固態(tài)硬盤才會(huì)獲知被刪除文件的數(shù)據(jù)已無效從而刪除無效數(shù)據(jù)并寫入新數(shù)據(jù),此種情況下,固態(tài)硬盤僅能夠支持在有新數(shù)據(jù)寫入無效數(shù)據(jù)所占用的空間之前,對(duì)被刪除文件進(jìn)行數(shù)據(jù)恢復(fù)。
若考慮需要較高的數(shù)據(jù)恢復(fù)成功率,則可在攔截操作系統(tǒng)trim指令的同時(shí),通知操作系統(tǒng)記錄被刪除的文件為需要保護(hù)的文件,從而后續(xù)操作系統(tǒng)不會(huì)指示向該文件所占用的空間寫入新數(shù)據(jù),固態(tài)硬盤會(huì)一直保持無效數(shù)據(jù)的存儲(chǔ)直至有其他的相關(guān)指令,從而此種情況下,固態(tài)硬盤可支持一較高的數(shù)據(jù)恢復(fù)成功率。
由以上方案可知,本申請(qǐng)?zhí)峁┑臄?shù)據(jù)恢復(fù)裝置攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的第一數(shù)據(jù)清除指令;并在符合數(shù)據(jù)恢復(fù)條件時(shí),基于所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù)。本申請(qǐng)方案通過攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的數(shù)據(jù)清除指令,可使得固態(tài)硬盤在文件被刪除時(shí)無法獲知文件數(shù)據(jù)無效,從而無法在文件被刪除時(shí)刻從固態(tài)硬盤中對(duì)該文件對(duì)應(yīng)的無效數(shù)據(jù)進(jìn)行清除,即所述無效數(shù)據(jù)仍在固態(tài)硬盤中存在,從而在符合數(shù)據(jù)恢復(fù)條件時(shí),可從固態(tài)硬盤中對(duì)用戶已刪除數(shù)據(jù)進(jìn)行恢復(fù)。由此可見,本申請(qǐng)方案解決了應(yīng)用固態(tài)硬盤的系統(tǒng)存在的上述問題,實(shí)現(xiàn)了在應(yīng)用固態(tài)硬盤的系統(tǒng)中為用戶刪除數(shù)據(jù)的恢復(fù)提供支持。
實(shí)施例五
本實(shí)施例具體提供恢復(fù)模塊200基于固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù)的一種可能的實(shí)現(xiàn)方式,其中,恢復(fù)模塊200具體可通過以下過程實(shí)現(xiàn)數(shù)據(jù)恢復(fù):確定待恢復(fù)時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的新增數(shù)據(jù);從固態(tài)硬盤中清除所述新增數(shù)據(jù),使得所述固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況與所述還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)狀態(tài)相一致。
所述待恢復(fù)時(shí)刻即為符合所述數(shù)據(jù)恢復(fù)條件時(shí)對(duì)應(yīng)的時(shí)刻,例如針對(duì)用戶設(shè)置的開機(jī)恢復(fù)或周期性恢復(fù)等條件,該時(shí)刻即為開機(jī)完成時(shí)或到達(dá)恢復(fù)周期時(shí)所對(duì)應(yīng)的時(shí)刻。
其中,用戶具體可針對(duì)磁盤分區(qū)進(jìn)行相關(guān)的數(shù)據(jù)保護(hù)/恢復(fù)設(shè)置,比如,用戶可設(shè)置全磁盤數(shù)據(jù)或某一個(gè)/多個(gè)磁盤分區(qū)(如C盤、D盤)數(shù)據(jù)為需保護(hù)的數(shù)據(jù),并針對(duì)需保護(hù)的磁盤分區(qū)分別設(shè)置需采用的恢復(fù)條件,如開機(jī)恢復(fù)或周期性恢復(fù)等,同時(shí)針對(duì)需保護(hù)的磁盤分區(qū),用戶還可以創(chuàng)建其恢復(fù)數(shù)據(jù)時(shí)對(duì)應(yīng)采用的還原點(diǎn)(亦可采用執(zhí)行主體提供的缺省還原點(diǎn)),例如用戶可將當(dāng)前時(shí)刻的C盤文件數(shù)據(jù)狀態(tài)設(shè)置為C盤文件的還原點(diǎn),從而后續(xù)在對(duì)C盤文件進(jìn)行數(shù)據(jù)恢復(fù)時(shí),具體將其恢復(fù)至所述還原點(diǎn)對(duì)應(yīng)的C盤文件數(shù)據(jù)狀態(tài)。
在完成固態(tài)硬盤(全磁盤或某一個(gè)/多個(gè)磁盤分區(qū))還原點(diǎn)創(chuàng)建的基礎(chǔ)上,本申請(qǐng)方案的執(zhí)行主體需記錄固態(tài)硬盤在還原點(diǎn)的第一數(shù)據(jù)狀態(tài),以實(shí)現(xiàn)為后續(xù)的數(shù)據(jù)恢復(fù)提供數(shù)據(jù)狀態(tài)基準(zhǔn),該第一數(shù)據(jù)狀態(tài)包括在所述還原點(diǎn)記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系。
在之后用戶對(duì)文件數(shù)據(jù)進(jìn)行增刪改等操作過程中,執(zhí)行主體隨時(shí)記錄固態(tài)硬盤中文件的最新數(shù)據(jù)狀態(tài),由于操作系統(tǒng)的trim指令被攔截,從而在用戶對(duì)文件數(shù)據(jù)進(jìn)行操作的過程中,固態(tài)硬盤(假設(shè)未有新數(shù)據(jù)寫入無效數(shù)據(jù)所在空間)的實(shí)際存儲(chǔ)狀態(tài)為:在維持還原點(diǎn)文件數(shù)據(jù)的存儲(chǔ)(包括還原點(diǎn)中未改動(dòng)的數(shù)據(jù)以及刪除或修改等操作刪掉的無效數(shù)據(jù))基礎(chǔ)上,結(jié)合存儲(chǔ)有因用戶操作而產(chǎn)生的新增數(shù)據(jù)(包括增加或修改等操作產(chǎn)生的新增數(shù)據(jù))。
從而,當(dāng)符合數(shù)據(jù)恢復(fù)條件時(shí),可獲取固態(tài)硬盤在其還原點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)狀態(tài)以及在待恢復(fù)時(shí)刻對(duì)應(yīng)的第二數(shù)據(jù)狀態(tài),第二數(shù)據(jù)狀態(tài)包括在所述待恢復(fù)時(shí)刻記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;并基于所述第一數(shù)據(jù)狀態(tài)及所述第二數(shù)據(jù)狀態(tài),確定固態(tài)硬盤在所述待恢復(fù)時(shí)刻相比于還原點(diǎn)的新增數(shù)據(jù),該新增數(shù)據(jù)即為固態(tài)硬盤針對(duì)所述還原點(diǎn)因用戶操作而額外存儲(chǔ)的臟數(shù)據(jù)。在此基礎(chǔ)上,可針對(duì)該新增數(shù)據(jù)向SSD主控制器下發(fā)一trim指令,例如具體可由保護(hù)軟件模擬操作系統(tǒng)下發(fā)針對(duì)所述新增數(shù)據(jù)的trim指令,SSD主控制器在接收該指令時(shí),從固態(tài)硬盤中清除該新增數(shù)據(jù),使得其數(shù)據(jù)狀態(tài)與還原點(diǎn)對(duì)應(yīng)的第一數(shù)據(jù)狀態(tài)相一致,在輔以從操作系統(tǒng)層面對(duì)還原點(diǎn)文件狀態(tài)進(jìn)行恢復(fù)(如恢復(fù)顯示已刪除的文件數(shù)據(jù))的情況下可有效實(shí)現(xiàn)已刪除文件的數(shù)據(jù)恢復(fù)。
需要說明的是,本申請(qǐng)中的數(shù)據(jù)恢復(fù)具體指操作系統(tǒng)層面的文件數(shù)據(jù)恢復(fù),從而在進(jìn)行數(shù)據(jù)恢復(fù)時(shí),對(duì)固態(tài)硬盤中的所述臟數(shù)據(jù)的清除并不是必需的,因操作系統(tǒng)的trim指令被攔截,從而在用戶對(duì)文件數(shù)據(jù)進(jìn)行操作的過程中,固態(tài)硬盤的實(shí)際存儲(chǔ)情況是:在維持還原點(diǎn)文件數(shù)據(jù)的存儲(chǔ)基礎(chǔ)上,還結(jié)合存儲(chǔ)有因用戶操作而產(chǎn)生的新增數(shù)據(jù)即臟數(shù)據(jù),從而無論對(duì)固態(tài)硬盤中的臟數(shù)據(jù)清除與否,均可基于固態(tài)硬盤維持存儲(chǔ)的還原點(diǎn)文件數(shù)據(jù),在操作系統(tǒng)層面對(duì)用戶已刪除的文件數(shù)據(jù)進(jìn)行恢復(fù)。
本實(shí)施例在進(jìn)行數(shù)據(jù)恢復(fù)時(shí)同時(shí)包含清除固態(tài)硬盤中的臟數(shù)據(jù)僅為本申請(qǐng)?zhí)峁┑囊惠^優(yōu)實(shí)施方式,旨在使得固態(tài)硬盤不再將所述臟數(shù)據(jù)作為有效數(shù)據(jù)進(jìn)行存儲(chǔ)及管理,從而使得固態(tài)硬盤中存儲(chǔ)的數(shù)據(jù)與操作系統(tǒng)層面的有效文件數(shù)據(jù)一致,無多余的無效數(shù)據(jù),進(jìn)而可達(dá)到節(jié)省硬盤空間、提升固態(tài)硬盤的工作效率,同時(shí)延長(zhǎng)固態(tài)硬盤使用壽命的目的。
實(shí)施例六
本實(shí)施例繼續(xù)對(duì)以上實(shí)施例的方案進(jìn)行補(bǔ)充,參考圖8示出的數(shù)據(jù)恢復(fù)裝置的結(jié)構(gòu)示意圖,本實(shí)施例中,所述裝置還可以包括直接清除模塊300,用于在符合刪除數(shù)據(jù)直接清除條件時(shí),從固態(tài)硬盤中清除已刪除的文件數(shù)據(jù),并不再攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的數(shù)據(jù)清除指令。
與實(shí)施例二的方案相對(duì)應(yīng),當(dāng)符合刪除數(shù)據(jù)直接清除條件時(shí),表示被保護(hù)的磁盤文件已無需繼續(xù)被保護(hù),不存在數(shù)據(jù)恢復(fù)需求,從而可直接從固態(tài)硬盤中清除已被刪除的文件數(shù)據(jù),且后續(xù)不再攔截操作系統(tǒng)向固態(tài)硬盤發(fā)送的數(shù)據(jù)清除指令。
其中,所述直接清除模塊300從固態(tài)硬盤中清除已刪除的文件數(shù)據(jù)具體包括:確定待清除時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的無效數(shù)據(jù);從固態(tài)硬盤中清除所述無效數(shù)據(jù)。
具體地,在符合刪除數(shù)據(jù)直接清除條件時(shí),可獲取固態(tài)硬盤在所述預(yù)定還原點(diǎn)的第一數(shù)據(jù)狀態(tài)以及在待清除時(shí)刻的第三數(shù)據(jù)狀態(tài),并基于所述第三數(shù)據(jù)狀態(tài)及所述第一數(shù)據(jù)狀態(tài),確定待清除時(shí)刻固態(tài)硬盤中的數(shù)據(jù)相比于預(yù)定還原點(diǎn)時(shí)固態(tài)硬盤中的數(shù)據(jù)的無效數(shù)據(jù);其中,所述第一數(shù)據(jù)狀態(tài)包括在所述預(yù)定還原點(diǎn)記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系;所述第三數(shù)據(jù)狀態(tài)包括在所述待清除時(shí)刻記錄的固態(tài)硬盤中的文件數(shù)據(jù)與存儲(chǔ)扇區(qū)的對(duì)應(yīng)關(guān)系。
在此基礎(chǔ)上,可針對(duì)所述無效數(shù)據(jù)向SSD主控制器下發(fā)一trim指令,例如具體可由保護(hù)軟件模擬操作系統(tǒng)下發(fā)針對(duì)所述無效數(shù)據(jù)的trim指令,SSD主控制器在接收該指令時(shí),從固態(tài)硬盤中清除所述無效數(shù)據(jù),從而使得固態(tài)硬盤中的數(shù)據(jù)存儲(chǔ)情況與待清除時(shí)刻操作系統(tǒng)層面的有效文件數(shù)據(jù)一致,不存在多余數(shù)據(jù),同樣可達(dá)到節(jié)省硬盤空間、提升固態(tài)硬盤的工作效率,同時(shí)延長(zhǎng)固態(tài)硬盤使用壽命的目的。
具體實(shí)施本申請(qǐng)時(shí),可通過在所述保護(hù)軟件中提供數(shù)據(jù)模式設(shè)置及切換功能使得用戶可基于其實(shí)際需求自由選擇或切換數(shù)據(jù)模式,比如可向用戶提供可用于對(duì)文件數(shù)據(jù)進(jìn)行保護(hù)/恢復(fù)的保護(hù)模式以及不對(duì)文件數(shù)據(jù)進(jìn)行保護(hù)/恢復(fù)的開放模式,當(dāng)用戶需要對(duì)硬盤文件進(jìn)行保護(hù)時(shí),可選擇保護(hù)模式,從而在該模式下通過攔截操作系統(tǒng)的trim指令,實(shí)現(xiàn)對(duì)硬盤數(shù)據(jù)進(jìn)行保護(hù),后續(xù)當(dāng)有數(shù)據(jù)恢復(fù)需求時(shí),可基于固態(tài)硬盤的數(shù)據(jù)存儲(chǔ)情況進(jìn)行數(shù)據(jù)恢復(fù),且進(jìn)行數(shù)據(jù)恢復(fù)時(shí)同時(shí)包括對(duì)固態(tài)硬盤中的新增數(shù)據(jù)形式的臟數(shù)據(jù)進(jìn)行清除;當(dāng)用戶不再需要對(duì)硬盤文件進(jìn)行保護(hù)時(shí),可切換至開放模式,此時(shí),由于硬盤文件不需要繼續(xù)被保護(hù),不再存在數(shù)據(jù)恢復(fù)需求,從而保護(hù)軟件可認(rèn)為接收到一刪除數(shù)據(jù)直接清除指令,直接將固態(tài)硬盤中無效數(shù)據(jù)形式的臟數(shù)據(jù)進(jìn)行清除,且之后不再攔截操作系統(tǒng)的trim指令,即在開放模式下,操作系統(tǒng)能夠正常向固態(tài)硬盤下達(dá)trim指令。
參考圖5、圖6示出的應(yīng)用本申請(qǐng)方案進(jìn)行硬盤文件數(shù)據(jù)保護(hù)/恢復(fù)的示例圖,其中,圖5的應(yīng)用示例具體在UEFI(Unified Extensible Firmware Interface,統(tǒng)一的可擴(kuò)展固件接口)BIOS(Basic Input Output System,基本輸入輸出系統(tǒng))層對(duì)本申請(qǐng)方案進(jìn)行了實(shí)施,圖6的應(yīng)用示例具體在如windows等操作系統(tǒng)層對(duì)本申請(qǐng)方案進(jìn)行了實(shí)施。
需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
為了描述的方便,描述以上系統(tǒng)或裝置時(shí)以功能分為各種模塊或單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后,還需要說明的是,在本文中,諸如第一、第二、第三和第四等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。