在使用Linux執行個體的過程中,刪除檔案是一項非常常見的營運操作。及時清理不再使用的檔案可以有效降低磁碟佔用。然而,如果由於人為誤操作、程式運行異常、電腦病毒攻擊等原因誤刪除了本應保留的檔案,您可能需要進行資料恢複。本文將為您介紹Linux執行個體中誤刪資料後的資料恢複整體思路及操作樣本。
背景介紹
本文所介紹的資料恢複思路與工具,旨在為誤刪檔案的使用者提供儘可能全面的恢複方案。檔案恢複的程度將根據使用者的實際情況及操作方式有所不同。因此,在執行操作之前,建議您結合自身的實際情況,採取最合理的資料恢複措施,最大限度地保障資料的恢複。
前提條件
在進行資料恢複操作之前,請您仔細閱讀資料恢複的整體思路。
資料恢複涉及到較多專業知識,請確保您具備相應的知識與技能,以避免對待恢複的資料造成損害。
在進行資料恢複操作之前,強烈建議您為待恢複資料的磁碟建立快照,以避免在恢複過程中因操作失誤而對待恢複資料造成損壞。
本文所介紹的資料恢複工具為第三方開源軟體,阿里雲對檔案恢複程度不作任何承諾。
如您需要恢複的資料極其重要,而您在資料恢複方面並不具備相關的專業知識,建議您不要隨意按照本教程進行操作。您可以考慮尋求專業的資料恢複機構進行處理。
整體思路
誤刪檔案導致系統無法啟動的資料恢複整體思路
當您以root
使用者的身份在Linux
執行個體上執行了rm -rf /*
命令後,您的整個根目錄下的檔案會被刪除,此時作業系統啟動後會進入grub
命令列介面,如您需要恢複原系統硬碟上的資料,那麼您可以參考如下處理思路,以完成資料恢複操作。
誤刪系統檔案後的資料恢複整體思路
當您在Linux執行個體上執行了rm -rf <file_or_dir>
命令後,您的檔案或目錄會被刪除,如您需要恢複原系統硬碟上的資料,那麼您可以參考如下處理思路,以完成資料恢複操作。
如果您誤刪的檔案導致您無法使用SSH
協議串連Linux執行個體,那麼您可以採用VNC
的方式串連執行個體。
操作指南
上述內容介紹了兩種常見的Linux執行個體誤刪資料後的資料恢複思路。接下來,將以下述3個條件為例,詳細闡述資料恢複的操作步驟。
問題情境
假設您執行了
rm -rf /*
命令,導致檔案誤刪,從而使系統無法啟動。在執行刪除操作之前,未建立快照,或不希望通過快照進行資料恢複。
您希望通過另一台Linux執行個體進行資料恢複操作。
操作概覽
以上問題情境的操作流程如下所示。
操作步驟
為當前執行個體建立快照
在執行資料恢複之前,建議您先對需要執行資料恢複操作的執行個體系統硬碟或資料盤建立快照,以實現通過快照對現有資料進行備份,防止後續恢複操作過程中誤操作損壞檔案。關於建立快照的操作,請參見手動建立單盤快照。
卸載要恢複資料的系統硬碟或資料盤,並掛載到新執行個體。
警告在卸載系統硬碟時需要先進行關機操作,在控制台操作關機時請務必勾選強制停止選項,否則會導致關機操作失敗。
通過卸載系統硬碟或資料盤,並將其掛載到另一台Linux執行個體,以便完成後續資料恢複操作,關於卸載及掛載資料盤的操作,請參見卸載或掛載系統硬碟。
警告在控制台操作將原系統硬碟作為資料盤掛載到新執行個體時,由於系統硬碟檔案系統可能已經損壞,因此控制台會提示選擇初始化方式。在此情況下,請勿選擇立即操作,如選擇通過控制台重新初始化該磁碟,可能會對即將恢複的資料造成損害。請選擇關閉該對話方塊即可。
恢複誤刪的資料
通過使用testdisk工具,可以完成已刪除資料的恢複操作。以下將以在Linux執行個體中恢複誤刪目錄為例,介紹資料恢複的操作步驟。
運行以下命令,在新執行個體上安裝testdisk工具。
Alibaba Cloud Linux 3/2
sudo yum install -y testdisk
CentOS 6/7/8
sudo yum install -y testdisk
Ubuntu/Debian
sudo apt install -y testdisk
運行以下命令,以確認當前磁碟分割情況。
sudo fdisk -lu
回顯結果樣本如下。
Disk /dev/vda: 145 GiB, 155692564480 bytes, 304087040 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: F51132A7-67B1-4650-806D-FD0DE6E1210C Device Start End Sectors Size Type /dev/vda1 2048 6143 4096 2M BIOS boot /dev/vda2 6144 415743 409600 200M EFI System /dev/vda3 415744 304087006 303671263 144.8G Linux filesystem Disk /dev/vdb: 40 GiB, 42949672960 bytes, 83886080 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: F51132A7-67B1-4650-806D-FD0DE6E1210C Device Start End Sectors Size Type /dev/vdb1 2048 6143 4096 2M BIOS boot /dev/vdb2 6144 415743 409600 200M EFI System /dev/vdb3 415744 83886046 83470303 39.8G Linux filesystem
上述樣本中,
/dev/vda
為現有執行個體系統硬碟,/dev/vdb
為原執行個體系統硬碟,作為資料盤掛載在現有執行個體中。運行以下命令,使用
testdisk
開啟指定裝置。sudo testdisk /dev/vdb
回顯資訊樣本如下。選擇
Proceed
(預設值)後按斷行符號鍵確認。選擇分區表類型進行掃描。一般選擇Intel。如果您的資料盤採用
GPT
分區,選擇EFI GPT。選擇完成後按斷行符號鍵確認。選擇Analyse後按斷行符號鍵,以進行磁碟分析。
選擇Quick Search後按斷行符號鍵快速搜尋。
在返回結果中會顯示分區資訊,如下圖所示。選中需要恢複資料的分區,按斷行符號鍵確認。
選擇Deeper Search,並按斷行符號鍵確認。
等待搜尋完成後,會列出可恢複的檔案。選擇Continue並按斷行符號鍵確認。
按P鍵列出檔案。
恢複指定檔案、檔案夾
選中要恢複的檔案,再按c鍵以複製檔案。
恢複所有檔案
按a鍵選中所有檔案,再按C鍵以複製檔案。
選擇目標目錄後,按C鍵將選定檔案複製至目標目錄。在本樣本中,以恢複至/home/ecs-user/data_recovery為例。
看到
Copy done! 10 ok, 0 failed
,表示複製成功,如下圖所示。重新為現有執行個體開啟一個新的串連,切換到/home/ecs-user/data_recovery目錄查看。如果您能看到檔案,說明檔案恢複成功。
相關文檔
關於建立快照的操作,請參見手動建立單盤快照。
關於卸載及掛載資料盤的操作,請參見卸載或掛載系統硬碟。
關於重新初始化系統硬碟的操作,請參見重新初始化系統硬碟(重設作業系統)。
關於使用快照建立雲端硬碟的操作,請參見使用快照建立雲端硬碟。
關於使用VNC登入執行個體的操作,請參見使用VNC登入執行個體。
關於使用SSH協議登入Linux執行個體的操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
關於Linux執行個體中的資料恢複工具的介紹,請參見Linux執行個體資料恢複工具介紹。