恢復ext文件系統(tǒng)中已刪除文件的方法及裝置的制造方法
【技術領域】
[0001] 本公開涉及計算機技術領域,尤其涉及一種恢復ext文件系統(tǒng)中已刪除文件的方 法及裝置。
【背景技術】
[0002] Android(安卓)系統(tǒng),是一個以Linux為基礎的開源移動設備操作系統(tǒng),主要用 于智能手機和平板電腦。Android系統(tǒng)中的分區(qū)一般采用ext2/ext3/ext4等多個版本 的ext文件系統(tǒng)。在Android系統(tǒng)中,用戶可能會使用一些清理文件的Android安裝包 (AndroidPackage,APK)或者是系統(tǒng)自帶的清除App數(shù)據(jù)的操作來執(zhí)行文件系統(tǒng)中刪除文 件的操作,以提高設備性能。
[0003] 但是如果用戶無意做了清除聯(lián)系人或短信等操作,要想找回之前的誤刪除數(shù)據(jù), 采用相關技術恢復上述誤刪除文件非常困難。
【發(fā)明內容】
[0004] 有鑒于此,本公開提供一種恢復ext文件系統(tǒng)中已刪除文件的方法及裝置,以解 決相關技術中用戶終端無法快速恢復誤刪除文件數(shù)據(jù)的問題。
[0005] 根據(jù)本公開實施例的第一方面,提供了一種恢復ext文件系統(tǒng)中已刪除文件的方 法,所述方法包括:
[0006] 獲取已刪除文件所在的目標分區(qū);
[0007] 通過所述目標分區(qū)中標識為2的索引節(jié)點inode,查找所述已刪除文件對應的目 標索引節(jié)點inode ;
[0008] 從所述目標inode中,獲取所述已刪除文件所占用數(shù)據(jù)塊的目標數(shù)據(jù)塊標識;
[0009] 依據(jù)所述目標數(shù)據(jù)塊標識讀取目標數(shù)據(jù)塊的數(shù)據(jù);
[0010] 保存所述目標數(shù)據(jù)塊的數(shù)據(jù),恢復所述已刪除文件。
[0011] 可選地,在所述通過標識為2的inode,查找所述已刪除文件對應的目標inode之 前,還包括:
[0012] 卸載所述目標分區(qū)。
[0013] 可選地,在所述通過標識為2的inode,查找所述已刪除文件對應的目標inode之 前,還包括:
[0014] 備份所述目標分區(qū)。
[0015] 可選地,通過標識為2的inode,在所述目標分區(qū)中查找所述已刪除文件對應的目 標inode,包括:
[0016] 獲取標識為2的inode,所述標識為2的inode中包括:所述目標分區(qū)中各個文件 與inode標識的對應關系;
[0017] 依據(jù)已刪除文件的文件名,從所述標識為2的inode中獲取已刪除文件的文件名 對應的目標inode標識;
[0018] 通過所述目標inode標識獲取所述目標inode。
[0019] 可選地,通過標識為2的inode,在所述目標分區(qū)中查找所述已刪除文件對應的目 標inode,包括:
[0020] 獲取標識為2的inode,所述標識為2的inode中包括:所述目標分區(qū)下各個文件 名、inode標識、當前狀態(tài)信息的對應關系;
[0021] 依據(jù)所述已刪除文件的文件名,從所述標識為2的inode查找已刪除文件的文件 名對應的第一 inode標識;
[0022] 依據(jù)所述第一 inode標識,判斷對應的當前狀態(tài)信息是否為已刪除狀態(tài);
[0023] 若所述第一 inode標識對應的當前狀態(tài)信息為已刪除狀態(tài),則確定所述第一 inode標識為所述目標inode標識;
[0024] 若所述第一 inode標識對應的當前狀態(tài)信息為未刪除狀態(tài),則結束當前任務和/ 或發(fā)出錯誤提示信息。
[0025] 可選地,所述獲取已刪除文件所在的目標分區(qū),包括:
[0026] 根據(jù)所述已刪除文件的根路徑,由文件掛載信息中得到與所述根路徑對應的分 區(qū),為所述已刪除文件所在的目標分區(qū)。
[0027] 可選地,在所述獲取已刪除文件所在的目標分區(qū)之前,還包括:
[0028] 接收恢復已刪除文件的操作指令。
[0029] 根據(jù)本公開實施例的第二方面,提供了一種恢復ext文件系統(tǒng)中已刪除文件的裝 置,所述裝置包括:
[0030] 分區(qū)獲取模塊,用于獲取已刪除文件所在的目標分區(qū);
[0031] inode查找模塊,用于通過所述目標分區(qū)中標識為2的索引節(jié)點inode,查找所述 已刪除文件對應的目標索引節(jié)點inode ;
[0032] 數(shù)據(jù)塊標識查找模塊,用于從所述目標inode中,獲取所述已刪除文件所占用數(shù) 據(jù)塊的目標數(shù)據(jù)塊標識;
[0033] 數(shù)據(jù)讀取模塊,用于依據(jù)所述目標數(shù)據(jù)塊標識讀取目標數(shù)據(jù)塊的數(shù)據(jù);
[0034] 恢復模塊,用于保存所述目標數(shù)據(jù)塊的數(shù)據(jù),恢復所述已刪除文件。
[0035] 可選的,所述裝置還包括:
[0036] 卸載模塊,用于卸載所述目標分區(qū)。
[0037] 可選的,所述裝置還包括:
[0038] 備份模塊,用于備份所述目標分區(qū)。
[0039] 可選的,所述inode查找模塊包括:
[0040] 第一 inode獲取子模塊,用于獲取標識為2的inode,所述標識為2的inode中包 括:所述目標分區(qū)中各個文件與inode標識的對應關系;
[0041] inode標識獲取子模塊,用于依據(jù)已刪除文件的文件名,從所述標識為2的inode 中獲取所述已刪除文件的文件名對應的目標inode標識;
[0042] 第二inode獲取子模塊,通過所述目標inode標識獲取所述目標inode。
[0043] 可選的,所述inode查找模塊包括:
[0044] 第三inode獲取子模塊,用于獲取標識為2的inode,所述標識為2的inode中包 括:所述目標分區(qū)下各個文件名、inode標識、當前狀態(tài)信息的對應關系;
[0045] 第一 inode標識獲取子模塊,用于依據(jù)所述已刪除文件的文件名,從所述標識為2 的inode查找所述已刪除文件的文件名對應的第一 inode標識;
[0046] 判斷子模塊,用于依據(jù)所述第一 inode標識,判斷對應的所述當前狀態(tài)信息是否 為已刪除狀態(tài);
[0047] 目標inode標識確定子模塊,用于在所述第一 inode標識對應的當前狀態(tài)信息為 已刪除狀態(tài)的情況下,確定所述第一 inode標識為所述目標inode標識;
[0048] 結束子模塊,用于在所述第一 inode標識對應的當前狀態(tài)信息為未刪除狀態(tài)的情 況下,結束當前任務和/或發(fā)出錯誤提示信息。
[0049] 可選的,所述分區(qū)獲取模塊用于根據(jù)所述已刪除文件的根路徑,由文件掛載信息 中得到與所述根路徑對應的分區(qū),為所述已刪除文件所在的目標分區(qū)。
[0050] 可選的,所述裝置還包括:
[0051] 指令接收模塊,用于接收恢復已刪除文件的操作指令。
[0052] 根據(jù)本公開實施例的第三方面,提供了一種用戶終端,包括:處理器;用于存儲處 理器可執(zhí)行指令的存儲器;其中,所述處理器被配置為:
[0053] 獲取已刪除文件所在的目標分區(qū);
[0054] 通過所述目標分區(qū)中標識為2的索引節(jié)點inode,查找所述已刪除文件對應的目 標索引節(jié)點inode ;
[0055] 從所述目標inode中,獲取所述已刪除文件所占用數(shù)據(jù)塊的目標數(shù)據(jù)塊標識;
[0056] 依據(jù)所述目標數(shù)據(jù)塊標識讀取目標數(shù)據(jù)塊的數(shù)據(jù);
[0057] 保存所述目標數(shù)據(jù)塊的數(shù)據(jù),恢復所述已刪除文件。
[0058] 本公開的實施例提供的技術方案可以包括以下有益效果:
[0059] 本公開實施例中,當用戶誤刪除文件后要求恢復誤刪除文件時,利用目標分區(qū)中 標識為2的inode包含的文件名與inode標識的對應關系,獲取已刪除文件對應inode的標 識,之后根據(jù)上述inode的標識找到對應的目標inode,從目標inode中查找已刪除文件所 占用數(shù)據(jù)塊的目標數(shù)據(jù)塊標識,最后從目標數(shù)據(jù)塊標識對應的數(shù)據(jù)塊中讀取并保存數(shù)據(jù), 恢復已刪除文件。可見,采用本公開提供的恢復ext文件系統(tǒng)中已刪除文件的方法,利用目 標分區(qū)中標識為2的索引節(jié)點inode可以快速查找到已刪除文件對應的inode標識,從而 快速恢復誤刪除文件,幫助用戶減少數(shù)據(jù)損失,提高系統(tǒng)穩(wěn)定性,提升用戶體驗。
[0060] 本公開中,在確定目標分區(qū)之后卸載目標分區(qū),使文件系統(tǒng)無法再對目標分區(qū)中 的文件執(zhí)行任何操作,可以防止后續(xù)對目標分區(qū)中文件的操作造成已刪除文件數(shù)據(jù)被損壞 比如數(shù)據(jù)被覆蓋導致永久消失,幫助用戶減少數(shù)據(jù)損失,提高系統(tǒng)穩(wěn)定性。
[0061] 本公開中,對目標分區(qū)進行備份,可以防止后續(xù)在目標分區(qū)中讀取inode節(jié)點信 息時意外造成目標分區(qū)數(shù)據(jù)的破壞,