testdisk とディスクの再アタッチを使用して、Linux ECS インスタンスで誤って削除したファイルを復元します。
背景情報
このトピックで紹介するワークフローとツールは、誤って削除したファイルの復元に役立ちます。復元結果は、シナリオと方法によって異なります。実際の状況に基づいて適切な対策を選択してください。
前提条件
-
ワークフロー セクションを確認済みであること。
-
さらなる破損を発生させずにデータを復元するための知識とスキルがあること。
-
誤操作による破損を防ぐため、復元対象ディスクのスナップショットを作成済みであること。
-
このトピックでは、データ復元にサードパーティ製のオープンソースソフトウェアを使用します。Alibaba Cloud は、サードパーティ製ソフトウェアによる復元結果を保証するものではありません。
-
データが重要で、データ復元の専門知識がない場合は、手動で復元するのではなく、専門のデータ復元業者に依頼してください。
ワークフロー
誤削除後にシステムが起動できない場合のデータ復元
Linux インスタンスで root ユーザーとして rm -rf /* を実行し、再起動後に grub CLI が表示される場合は、このワークフローに従って元のシステムディスクからデータを復元します。
システムファイルを誤って削除した後のデータ復元
Linux インスタンスで rm -rf <file_or_dir> を実行し、削除したデータを復元する必要がある場合は、このワークフローに従ってください。
削除によってSSH接続に失敗した場合は、VNC (VNC) を使用してインスタンスに接続してください。
操作ガイド
次の例では、誤削除後にインスタンスが起動できない場合に、testdisk を使用してデータを復元する方法を示します。
ユースケース
-
誤って
rm -rf /*を実行し、インスタンスが起動できません。 -
削除前にスナップショットを作成していない、またはスナップショットを使用した復元を希望しない場合。
-
別の Linux インスタンスを使用してデータを復元する場合。
操作フローチャート
次のフローチャートは、データ復元の手順を示します。
操作手順
-
現在のインスタンスのスナップショットを作成します。
データを復元する前に、復元対象のインスタンスのシステムディスクまたはデータディスクのスナップショットを作成して、既存データをバックアップします。詳細については、「ディスクのスナップショットを作成する」をご参照ください。
-
元のインスタンスからディスクをデタッチし、別のインスタンスにアタッチします。
警告システムディスクをデタッチする前に、ECS コンソールで強制停止を選択してインスタンスを停止してください。そうしないと、システムディスクはデタッチできません。
[強制停止] は、インスタンスの電源を切る操作と同等です。オペレーティングシステム上でディスクに書き込まれていないデータは失われる可能性があります。慎重に実行してください。
システムディスクまたはデータディスクをデタッチし、別の正常な Linux インスタンスにアタッチします。詳細については、「システムディスクのデタッチまたはアタッチ」をご参照ください。
警告転送元システムディスクを別のインスタンスにデータディスクとしてアタッチすると、ECS コンソールでディスクの初期化を促すプロンプトが表示されることがあります。決して[今すぐ初期化] を選択しないでください。ダイアログボックスを閉じて、続行してください。そうしないと、復元対象のデータが破損します。
-
誤って削除したデータを復元します。
testdisk を使用して、削除されたデータまたはディレクトリを復元します。次の例では、Linux インスタンスで削除されたディレクトリを復元します。
-
正常なインスタンスに testdisk をインストールします。コマンドはオペレーティングシステムによって異なります。
Alibaba Cloud Linux 2 または 3
sudo yum install -y testdiskCentOS 6、CentOS 7、または CentOS 8
sudo yum install -y testdiskUbuntu または 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/vdbProceed(デフォルト) を選択し、[Enter] を押します。TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org TestDisk is free software, and comes with ABSOLUTELY NO WARRANTY. Select a media (use Arrow keys, then press Enter): >Disk /dev/vdb - 42 GB / 40 GiB >[Proceed ] [ Quit ] Note: Disk capacity must be correctly detected for a successful recovery. If a disk listed above has an incorrect size, check HD jumper settings and BIOS detection, and install the latest OS patches and disk drivers. -
パーティションテーブルのスタイルを選択します。デフォルトは [Intel] です。ディスクが GUID パーティションテーブル (
GPT) を使用している場合は、[EFI GPT] を選択します。[Enter] キーを押します。TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Disk /dev/vdb - 42 GB / 40 GiB Please select the partition table type, press Enter when done. [Intel ] Intel/PC partition >[EFI GPT] EFI GPT partition map (Mac i386, some x86_64...) [Humax ] Humax partition table [Mac ] Apple partition map (legacy) [None ] Non partitioned media [Sun ] Sun Solaris partition [XBox ] XBox partition [Return ] Return to disk selection Hint: EFI GPT partition table type has been detected.Note: Do NOT select 'None' for media with only a single partitio -
[分析]を選択し、[Enter]を押してディスクをスキャンします。
TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Disk /dev/vdb - 42 GB / 40 GiB CHS 83220 16 63 - sector size=512 >[ Analyse ] Analyse current partition structure and search for lost partitions [ Advanced ] Filesystem Utils [ Geometry ] Change disk geometry [ Options ] Modify options [ Quit ] Return to disk selection Note: Correct disk geometry is required for a successful recovery. 'Analyse' process may give some warnings if it thinks the logical geometry is mismatched. -
パーティション情報が表示されない場合は、[クイック検索]を選択し、[Enter]を押します。
TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Disk /dev/vdb - 42 GB / 40 GiB - CHS 83220 16 63 Current partition structure: Partition Start End Size in sectors 1 P Unknown 2048 6143 4096 2 P EFI System 6144 415743 409600 3 P Linux filesys. data 415744 83886046 83470303 P=Primary D=Deleted >[Quick Search] [ Backup ] Try to locate partitionパーティション情報が表示されたら、対象のパーティションを選択し、[Enter] を押します。
TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Disk /dev/vdb - 42 GB / 40 GiB - CHS 83220 16 63 Partition Start End Size in sectors P MS Data 6144 415743 409600 >P Linux filesys. data 415744 83886039 83470296 [root] Structure: Ok. Use Up/Down Arrow keys to select partition. Use Left/Right Arrow keys to CHANGE partition characteristics: P=Primary D=Deleted Keys A: add partition -
[詳細検索] を選択し、[Enter] を押します。
TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Disk /dev/vdb - 42 GB / 40 GiB - CHS 83220 16 63 Partition Start End Size in sectors 1 P MS Data 6144 415743 409600 2 P Linux filesys. data 415744 83886039 83470296 [root] [ Quit ] [ Return ] >[Deeper Search] [ Write ] Try to find more partitions -
回復可能なファイルが表示されたら、[続行] を選択し、[Enter] を押します。
TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Disk /dev/vdb - 42 GB / 40 GiB - CHS 83220 16 63 The harddisk (42 GB / 40 GiB) seems too small! (< 75 GB / 70 GiB) Check the harddisk size: HD jumper settings, BIOS detection... The following partitions can't be recovered: Partition Start End Size in sectors > Linux filesys. data 677886 84148181 83470296 [root] Linux filesys. data 1202174 84672469 83470296 [root] Linux filesys. data 1726462 85196757 83470296 [root] Linux filesys. data 2250750 85721045 83470296 [root] Linux filesys. data 2775038 86245333 83470296 [root] Linux filesys. data 6969342 90439637 83470296 [root] Linux filesys. data 7493630 90963925 83470296 [root] Linux filesys. data 13260798 96731093 83470296 [root] Linux filesys. data 17461456 100931751 83470296 [root] Linux filesys. data 17461598 100931893 83470296 [root] [ Continue ] ext4 blocksize=4096 Large_file Sparse_SB Recover, 42 GB / 39 GiB[P] を押すと、ファイルが一覧表示されます。
TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org P Linux filesys. data 415744 83886039 83470296 [root] Directory / >dr-xr-xr-x 0 0 4096 20-Dec-2024 10:06 . dr-xr-xr-x 0 0 4096 20-Dec-2024 10:06 .. drwxr-xr-x 0 0 4096 20-Dec-2024 10:06 usr dr-xr-xr-x 0 0 4096 20-Dec-2024 10:03 boot drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 dev drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 proc drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 run drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 sys drwxr+xr-x 0 0 0 20-Dec-2024 10:06 etc -rw------- 0 0 0 20-Dec 2024 10:06 root drwxr-xr-x 0 0 4096 20-Dec-2024 10:06 var drwxr-xr-x 0 0 4096 20 Dec-2024 10:06 usr lrwxrwxrwx 0 0 7 9-Feb-2022 20:18 bin lrwxrwxrwx 0 0 8 9-Feb 2022 20:18 sbin lrwxrwxrwx 0 0 7 9-Feb-2022 20:18 lib lrwxrwxrwx 0 0 9 9 Feb 2022 20:18 lib64 lrwxrwxrwx 0 0 7 9-Feb-2022 20:18 bin;672827fb drwxr-xr-x 0 0 8 20-Dec-2024 18:03 home -rw------- 0 0 8 20-Dec-2024 09:43 .ismount-test-file drwxr-xr-x 0 0 0 29-Dec-2024 18:03 media drwxr-xr-x 0 0 8 20-Dec-2024 10:03 mnt drwxr-xr-x 0 0 8 20-Dec-2024 18:03 opt lrwxrwxrwx 0 0 9 9-Feb-2022 20:18 sbin;672827fb drwxr-xr-x 0 0 8 29-Dec-2024 18:04 srv drwxrwxrwt 0 0 4096 20-Dec-2024 10:06 tmp Next Use Right to change directory, h to hide deleted files q to quit, : to select the current file, a to select all files C to copy the selected files, c to copy the current file指定したファイルとディレクトリの復元
復元するファイルを選択し、[c] を押します。
TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Linux filesys. data 415744 83886039 83470296 [root] Directory / dr-xr-xr-x 0 0 4096 18-Dec-2024 11:14 . dr-xr-xr-x 0 0 4096 18-Dec-2024 11:14 .. drwx------ 0 0 0 18-Dec-2024 11:13 lost+found dr-xr-xr-x 0 0 4096 18-Dec-2024 11:13 boot drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 dev drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 proc drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 run drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 sys drwxr-xr-x 0 0 0 18-Dec-2024 11:15 etc dr-xr-x--- 0 0 4096 18-Dec-2024 11:14 root drwxr-xr-x 0 0 4096 4-Nov-2024 10:03 var drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 usr lrwxrwxrwx 0 0 7 9-Feb-2022 20:18 bin lrwxrwxrwx 0 0 8 9-Feb-2022 20:18 sbin Next Use Right to change directory, h to hide deleted files q to quit, : to select the current file, a to select all files C to copy the selected files, c to copy the current fileすべてのファイルの復元
[a] を押してすべてのファイルを選択し、[C] を押してコピーします。
TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org P Linux filesys. data 415744 83886039 83470296 [root] Directory / >dr-xr-xr-x 0 0 4096 20-Dec-2024 10:06 . dr-xr-xr-x 0 0 4096 20-Dec-2024 10:06 .. *drwxr-xr-x 0 0 4096 20-Dec-2024 10:06 usr *dr-xr-xr-x 0 0 4096 20-Dec-2024 10:03 boot *drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 dev *drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 proc *drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 run *drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 sys *drwxr-xr-x 0 0 0 20-Dec-2024 10:06 etc *-rw------- 0 0 0 20-Dec-2024 10:06 root *drwxr-xr-x 0 0 4096 20-Dec-2024 10:06 var *drwxr-xr-x 0 0 4096 20-Dec-2024 10:06 usr *lrwxrwxrwx 0 0 7 9-Feb-2022 20:18 bin *lrwxrwxrwx 0 0 8 9-Feb-2022 20:18 sbin *lrwxrwxrwx 0 0 7 9-Feb-2022 20:18 lib *lrwxrwxrwx 0 0 9 9-Feb-2022 20:18 lib64 *lrwxrwxrwx 0 0 7 9-Feb-2022 20:18 bin;672827fb *drwxr-xr-x 0 0 0 20-Dec-2024 10:03 home *-rw------- 0 0 0 20-Dec-2024 09:43 .ismount-test-file *drwxr-xr-x 0 0 0 20-Dec-2024 10:03 media *drwxr-xr-x 0 0 0 20-Dec-2024 10:03 mnt *drwxr-xr-x 0 0 0 20-Dec-2024 10:03 opt *lrwxrwxrwx 0 0 8 9-Feb-2022 20:18 sbin;672827fb *drwxr-xr-x 0 0 0 20-Dec-2024 10:04 srv *drwxrwxrwt 0 0 4096 20-Dec-2024 10:06 tmp Next Use Right to change directory, h to hide deleted files q to quit, : to select the current file, a to select all files C to copy the selected files, c to copy the current file -
宛先ディレクトリを選択し、[C] を押してファイルを貼り付けます。この例では、ファイルは /home/ecs-user/data_recovery に復元されます。
TestDisk 7.1, Data Recovery Utility, July 2019 Please select a destination where /root and any files below will be copied. Keys: Arrow keys to select another directory C when the destination is correct Q to quit Directory /home/ecs-user/data_recovery >drwxrwxr-x 1000 1000 4096 18-Dec-2024 18:05 . drwx------ 1000 1000 4096 18-Dec-2024 18:23 ..「
Copy done! 10 ok, 0 failed」のようなメッセージが表示され、ファイルがコピーされたことを確認できます。TestDisk 7.1, Data Recovery Utility, July 2019 Christophe GRENIER <grenier@cgsecurity.org> https://www.cgsecurity.org Linux filesys. data 415744 83886039 83470296 [Root] Directory /root Copy done! 10 ok, 0 failed dr-xr-xr-x 0 0 4096 18-Dec-2024 11:14 . dr-xr-xr-x 0 0 4096 18-Dec-2024 11:14 .. drwx------ 0 0 0 18-Dec-2024 11:13 lost+found dr-xr-xr-x 0 0 4096 18-Dec-2024 11:13 boot drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 dev drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 proc drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 run drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 sys drwxr-xr-x 0 0 0 18-Dec-2024 11:15 etc dr-xr-x--- 0 0 4096 18-Dec-2024 11:14 root drwxr-xr-x 0 0 4096 4-Nov-2024 10:03 var drwxr-xr-x 0 0 4096 4-Nov-2024 09:48 usr lrwxrwxrwx 0 0 7 9-Feb-2022 20:18 bin lrwxrwxrwx 0 0 8 9-Feb-2022 20:18 sbin Next Use Right to change directory, h to hide deleted files St q to quit, : to select the current file, a to select all files C to copy the selected files, c to copy the current file -
インスタンスに再接続し、/home/ecs-user/data_recovery に移動します。ディレクトリにファイルが表示されると、復元は成功です。
[ecs-user@ root]$ pwd /home/ecs-user/data_recovery/root [ecs-user@ root]$ ls -la total 20 drwxr-xr-x 4 root root 4096 Dec 18 11:14 . drwxrwxr-x 3 ecs-user ecs-user 4096 Dec 18 18:26 .. -rw-r--r-- 1 root root 0 Nov 4 10:06 anaconda-ks.cfg -rw-r--r-- 1 root root 0 Dec 18 11:14 .bash_logout -rw-r--r-- 1 root root 0 Dec 18 11:14 .bash_profile -rw-r--r-- 1 root root 0 Dec 18 11:14 .bashrc -rw-r--r-- 1 root root 0 Dec 18 11:14 .cshrc -rw-r--r-- 1 root root 102 Nov 4 10:06 original-ks.cfg drwxr-xr-x 2 root root 4096 Dec 18 11:14 .pip -rw-r--r-- 1 root root 0 Dec 18 11:14 .pydistutils.cfg -rw-r--r-- 1 root root 0 Dec 18 11:15 script -rw-r--r-- 1 root root 0 Dec 18 11:14 sedZsHuoR drwxr-xr-x 2 root root 4096 Dec 18 11:14 .ssh -rw-r--r-- 1 root root 0 Dec 18 11:14 .tcshrc
-
関連ドキュメント
-
詳細については、「ディスクのスナップショットを作成する」をご参照ください。
-
詳細については、「システムディスクのデタッチまたはアタッチ」をご参照ください。
-
詳細については、「システムディスクの再初期化 (OS のリセット)」をご参照ください。
-
詳細については、「スナップショットからディスクを作成する」をご参照ください。
-
詳細については、「VNC を使用して接続する」をご参照ください。
-
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスにログオンする」をご参照ください。
-
詳細については、「Linux でデータを復元するためのツール」をご参照ください。