すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Linuxインスタンスでデータを復元するためのベストプラクティス

最終更新日:Jan 23, 2025

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インスタンスを使用してデータを復元する場合。

操作フローチャート

データ復元の手順を次のフローチャートに示します。

手順

  1. 現在のインスタンスのスナップショットを作成します。

    データを復元する前に、データを復元するインスタンスのシステムディスクまたはデータディスクのスナップショットを作成することをお勧めします。 これにより、スナップショットを使用して既存のデータをバックアップし、その後の復元操作中にファイルが破損するのを防ぐことができます。 スナップショットの作成方法については、「ディスクのスナップショットの作成」をご参照ください。

  2. データを復元するインスタンスからシステムディスクまたはデータディスクをデタッチし、ディスクを別のインスタンスに接続します。

    警告

    システムディスクをデタッチする前に、システムディスクを停止する必要があります。 ECSコンソールで停止操作を実行する場合は、[強制停止] を選択します。 そうしないと、システムディスクの停止に失敗します。

    image

    システムディスクまたはデータディスクをデタッチし、ディスクを別の通常のLinuxインスタンスに接続してデータを復元できます。 データディスクのデタッチとアタッチの方法については、「システムディスクのデタッチまたはアタッチ」をご参照ください。

    警告

    ECSコンソールでソースシステムディスクをデータディスクとして別のインスタンスにアタッチすると、システムディスクにマウントされているファイルシステムが破損する可能性があります。 その結果、ECSコンソールはディスクの初期化を求めます。 この場合、ECSコンソールで [今すぐ初期化] を選択しないでください。 そうしないと、復元されるデータが破損する可能性があります。 ダイアログボックスを閉じて操作を続行します。

    image

  3. 誤って削除されたデータを復元します。

    testdiskツールを使用して、削除されたデータまたはディレクトリを復元できます。 次の例では、Linuxインスタンスで削除されたディレクトリを復元する方法について説明します。

    1. 次のコマンドを実行して、通常のインスタンスに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
    2. 次のコマンドを実行して、現在のディスクパーティションを確認します。

      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はソースインスタンスのシステムディスクで、データディスクとして通常のインスタンスにアタッチされます。

    3. 次のコマンドを実行し、testdiskを使用して特定のディスクを処理します。

      sudo testdisk /dev/vdb

      次のコマンド出力が返されます。 [続行] (デフォルト) を選択し、[Enter] キーを押します。

      image

    4. スキャンするパーティションテーブルのスタイルを選択します。 ほとんどの場合、デフォルトのIntelスタイルが選択されます。 データディスクでGUIDパーティションテーブル (GPT) スタイルを使用している場合は、[EFI GPT] を選択します。 Enterキーを押します。

      image

    5. [分析] を選択し、[Enter] キーを押してディスク分析を行います。

      image

    6. パーティション情報が表示されない場合は、[クイック検索] を選択し、[入力] キーを押します。

      image

      次の図に示すコマンド出力では、パーティション情報が表示されます。 データを復元するパーティションを選択し、Enterキーを押します。

      image

    7. [Deeper Search] を選択し、[Enter] キーを押します。

      image

    8. 検索結果には、回復可能なファイルが表示されます。 続行を選択し、Enterキーを押します。

      image

      Pキーを押してファイルを一覧表示します。

      image

      指定したファイルとフォルダを復元する

      復元するファイルを選択し、cキーを押します。

      image

      すべてのファイルを復元する

      キー押してすべてのファイルを選択し、Cキーを押してファイルをコピーします。

      image

    9. 宛先ディレクトリを選択し、Cキーを押して、選択したファイルを宛先ディレクトリに貼り付けます。 この例では、ファイルは /home/ecs-user/data_recoveryディレクトリに復元されます。

      image

      次のようなメッセージがCopy done! 次の図に示すように、10 ok、0 failedが表示され、ファイルは期待どおりにコピーされます。

      image

    10. 既存のインスタンスに再接続し、に行く/home/ecs-user/data_recoveryディレクトリに移動します。 ファイルがディレクトリにリストされている場合、ファイルは期待どおりに復元されます。

      image

関連ドキュメント