Linux Elastic Compute Service (ECS) インスタンスを使用する場合、一般的なO&M操作は、不要になったファイルを削除することです。 これにより、ディスク使用量を効果的に削減できます。 ただし、誤操作、プログラムの異常、またはウイルスによりファイルが誤って削除された場合は、ファイルを復元する必要があります。 このトピックでは、Linuxインスタンス上のファイルが誤って削除された後にデータを復元する方法について説明します。
背景情報
このトピックで説明するワークフローとツールは、誤って削除されたファイルを復元する包括的なソリューションを提供します。 ファイルを復元できる範囲は、ビジネスシナリオや運用方法によって異なる場合があります。 実際のビジネスシナリオに基づいて、合理的なデータ復元対策を講じることを推奨します。
前提条件
このトピックの [ワークフロー] セクションを参照してください。
データの破損を防ぐためにデータを復元する方法について必要な知識とスキルがあります。
データを復元するディスクのスナップショットを作成します。 これにより、不正な操作によるデータの破損を防ぎます。
このトピックでは、サードパーティのオープンソースソフトウェアをデータ復元ツールとして使用しています。 Alibaba Cloudは、サードパーティのソフトウェアによってファイルが復元される範囲を保証することはできません。
復元するデータが重要であり、データ復元に関連する専門知識がない場合は、手動でデータを復元するのではなく、専門のデータ復元機関に連絡することをお勧めします。
ワークフロー
誤ってファイルが削除されて起動できないシステムからのデータの復元
ルートディレクトリ内のすべてのファイルを削除するには、Linux
インスタンスでrm -rf /*
コマンドをroot
ユーザーとして実行します。 オペレーティングシステムを再起動すると、grub
コマンドラインインターフェイスが表示されます。 ソースシステムディスク上のデータを復元する場合は、次のワークフローに従います。
システムファイルが誤って削除された後にデータを復元する
Linuxインスタンスでrm -rf <file_or_dir>
コマンドを実行して、ファイルまたはディレクトリを削除します。 ソースシステムディスク上のデータを復元する場合は、次のワークフローに従います。
誤って削除されたファイルがSSH
接続に失敗する可能性がある場合は、Virtual Network Computing (VNC
) を使用してインスタンスに接続できます。
操作ガイド
上記の内容は、Linuxインスタンスからデータが誤って削除された後、2つの一般的なデータ復元ワークフローを紹介します。 次のセクションでは、例として3つの条件を使用してデータを復元する方法について説明します。
シナリオ
たとえば、
rm -rf /*
コマンドを実行して、誤ってファイルを削除したとします。 その結果、インスタンスは起動できません。削除操作の前にスナップショットを作成していないか、スナップショットを使用してデータを復元したくない場合。
別のLinuxインスタンスを使用してデータを復元する場合。
操作フローチャート
データ復元の手順を次のフローチャートに示します。
手順
現在のインスタンスのスナップショットを作成します。
データを復元する前に、データを復元するインスタンスのシステムディスクまたはデータディスクのスナップショットを作成することをお勧めします。 これにより、スナップショットを使用して既存のデータをバックアップし、その後の復元操作中にファイルが破損するのを防ぐことができます。 スナップショットの作成方法については、「ディスクのスナップショットの作成」をご参照ください。
データを復元するインスタンスからシステムディスクまたはデータディスクをデタッチし、ディスクを別のインスタンスに接続します。
警告システムディスクをデタッチする前に、システムディスクを停止する必要があります。 ECSコンソールで停止操作を実行する場合は、[強制停止] を選択します。 そうしないと、システムディスクの停止に失敗します。
システムディスクまたはデータディスクをデタッチし、ディスクを別の通常のLinuxインスタンスに接続してデータを復元できます。 データディスクのデタッチとアタッチの方法については、「システムディスクのデタッチまたはアタッチ」をご参照ください。
警告ECSコンソールでソースシステムディスクをデータディスクとして別のインスタンスにアタッチすると、システムディスクにマウントされているファイルシステムが破損する可能性があります。 その結果、ECSコンソールはディスクの初期化を求めます。 この場合、ECSコンソールで [今すぐ初期化] を選択しないでください。 そうしないと、復元されるデータが破損する可能性があります。 ダイアログボックスを閉じて操作を続行します。
誤って削除されたデータを復元します。
testdiskツールを使用して、削除されたデータまたはディレクトリを復元できます。 次の例では、Linuxインスタンスで削除されたディレクトリを復元する方法について説明します。
次のコマンドを実行して、通常のインスタンスにtestdiskツールをインストールします。 コマンドはオペレーティングシステムによって異なります。
Alibaba Cloud Linux 2または3
sudo yum install -y testdisk
CentOS 6、CentOS 7、またはCentOS 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
次のコマンド出力が返されます。
[続行]
(デフォルト) を選択し、[Enter] キーを押します。スキャンするパーティションテーブルのスタイルを選択します。 ほとんどの場合、デフォルトのIntelスタイルが選択されます。 データディスクでGUIDパーティションテーブル (
GPT
) スタイルを使用している場合は、[EFI GPT] を選択します。 Enterキーを押します。[分析] を選択し、[Enter] キーを押してディスク分析を行います。
パーティション情報が表示されない場合は、[クイック検索] を選択し、[入力] キーを押します。
次の図に示すコマンド出力では、パーティション情報が表示されます。 データを復元するパーティションを選択し、Enterキーを押します。
[Deeper Search] を選択し、[Enter] キーを押します。
検索結果には、回復可能なファイルが表示されます。 続行を選択し、Enterキーを押します。
Pキーを押してファイルを一覧表示します。
指定したファイルとフォルダを復元する
復元するファイルを選択し、cキーを押します。
すべてのファイルを復元する
キーを押してすべてのファイルを選択し、Cキーを押してファイルをコピーします。
宛先ディレクトリを選択し、Cキーを押して、選択したファイルを宛先ディレクトリに貼り付けます。 この例では、ファイルは /home/ecs-user/data_recoveryディレクトリに復元されます。
次のようなメッセージが
Copy done! 次の図に示すように、10 ok、0 failed
が表示され、ファイルは期待どおりにコピーされます。既存のインスタンスに再接続し、に行く/home/ecs-user/data_recoveryディレクトリに移動します。 ファイルがディレクトリにリストされている場合、ファイルは期待どおりに復元されます。
関連ドキュメント
スナップショットの作成方法については、「ディスクのスナップショットの作成」をご参照ください。
データディスクのデタッチとアタッチの方法については、「システムディスクのデタッチまたはアタッチ」をご参照ください。
システムディスクの再初期化方法については、「システムディスクの再初期化」をご参照ください。
スナップショットからディスクを作成する方法については、「スナップショットからディスクを作成する」をご参照ください。
VNCを使用してインスタンスに接続する方法については、「VNCを使用してインスタンスに接続する」をご参照ください。
SSHを使用してインスタンスに接続する方法については、「ワークベンチを使用したSSH経由のLinuxインスタンスへのログイン」をご参照ください。
Linuxインスタンスのデータ復元ツールの詳細については、「Linuxインスタンスのデータ復元ツールの概要」をご参照ください。