fdisk および testdisk を使用して、Linux ECS インスタンスのデータディスク上で失われたパーティションを復元するか、データを回復します。
前提条件
パーティションを失ったデータディスクのスナップショットを作成しておきます。復元中にエラーが発生した場合は、このスナップショットを使用してデータディスクをロールバックできます。詳細については、「手動スナップショットの作成」および「スナップショットを使用したディスクのロールバック」をご参照ください。
背景情報
以下のツールを使用して、Linux インスタンス上のデータを復元できます。
|
ツール名 |
既定のインストール |
ツールの説明 |
|
fdisk |
はい |
Linux のパーティション管理ツールです。 |
|
testdisk |
いいえ |
Linux でディスクパーティションまたはデータを復元するためのツールです。 |
|
partprobe |
はい |
再起動せずにカーネルにパーティション情報を再読み込みさせるツールです。 |
パーティションまたはデータの復元
誤操作、プログラムの異常、ウイルスなどの影響によりパーティションテーブルが破損したりデータが失われたりした場合は、以下のいずれかの方法を使用します。
(オプション)ディスク情報の確認
現在のディスク情報を確認します。
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-xxxx-xxxx-xxxx-FD0DE6E1210C
この例では、/dev/vda ディスクが表示されています。Device フィールドが存在しないことから、パーティションテーブルが破損していることがわかります。
fdisk を使用したパーティションの復元
多くの場合、データディスクのパーティション作成にはデフォルトの開始セクターと終了セクターが使用されます。fdisk を実行して、データディスク上にパーティションを再作成します。
fdisk 実行後にパーティションをマウントできない場合や、マウント後にファイルが表示されない場合は、「testdisk を使用したパーティションの復元」または「testdisk を使用したデータの復元」を実行してください。
testdisk を使用してパーティションを復元する
この例では /dev/xvdb ディスクを使用します。testdisk を使用してパーティションを復元するには、以下の手順を実行します。
-
testdiskをインストールします。Alibaba Cloud Linux 3、Alibaba Cloud Linux 2、CentOS 6、CentOS 7、または CentOS 8
sudo yum install -y testdiskUbuntu または Debian
sudo apt install -y testdisk -
testdisk /dev/xvdb を実行します。/dev/xvdb はご利用のデータディスクのデバイス名に置き換えてください。Proceed(デフォルト)を選択し、Enter キーを押します。

-
パーティションテーブルの形式を選択します。デフォルトは Intel です。GPT ディスクの場合は EFI GPT を選択します。

-
Analyse を選択し、Enter キーを押します。

-
パーティション情報が表示されない場合は、Quick Search を選択し、Enter キーを押します。

パーティション情報が表示されます。
-
パーティションを選択し、Enter キーを押します。
-
パーティションを保存するには、Write を選択します。
説明期待するパーティションが一覧にない場合は、Deeper Search を選択して検索を続行します。

-
パーティションを保存するには、Y キーを押します。

-
partprobe /dev/xvdb を実行してパーティションテーブルをリフレッシュします。/dev/xvdb はご利用のデータディスクのデバイス名に置き換えてください。
-
パーティションを再度マウントし、データを確認します。

testdisk を使用したデータの復元
testdisk でパーティションが見つかったものの保存できない場合は、個別のファイルを回復できます。以下の手順を実行します。
-
testdisk でディスクパーティションをスキャンします。「testdisk を使用したパーティションの復元」の手順 1~5 を参照してください。
-
ファイル一覧を表示するには、P キーを押します。
ファイルが表示されます。
-
復元するファイルを選択し、C キーを押します。
-
送信先ディレクトリを選択します。この例では、ファイルを /home に復元します。

Copy done! 1 ok, 0 failedと表示されたら、ファイルのコピーが成功しています。
-
/home ディレクトリに移動し、ファイルが復元されていることを確認します。
/home ディレクトリにファイルが表示され、復元が成功したことを確認できます。
誤解とベストプラクティス
ECS インスタンスでのデータ損失はビジネスに重大な影響を及ぼす可能性があります。本セクションでは、データセキュリティに関する一般的な誤解とベストプラクティスについて説明します。
一般的な誤解
Alibaba Cloud は三副本ストレージを採用しているため、一部のユーザーはデータ損失リスクがまったくないと誤解しています。ただし、三副本ストレージは物理層でのみデータを保護します。ウイルス感染、誤って削除、ファイルシステムの破損などの論理的な問題によってもデータ損失は発生します。データセキュリティを向上させるには、スナップショットおよび地理的冗長性を活用してください。詳細については、「ESSD クラウドディスクのデータ信頼性」をご参照ください。
ベストプラクティス
パーティションおよびデータの復元が常に成功するとは限りません。スナップショットおよびバックアップを活用して、データセキュリティを最大化するためのベストプラクティスに従ってください。
-
自動スナップショットポリシーの適用
システムディスクまたはデータディスクに自動スナップショットポリシーを適用します。
重要システムディスクを置き換えた場合、インスタンスの有効期限が切れた場合、またはディスクを手動でリリースした場合、関連付けられた自動スナップショットがリリースされる可能性があります。ディスクとともに自動スナップショットもリリースするには、ECS コンソールの[ディスクのリリース時に自動スナップショットを削除] オプションを [属性の変更] ダイアログボックスで選択します。自動スナップショットを保持する場合は、このオプションをオフにしてください。詳細については、「スナップショット FAQ」および「自動スナップショットポリシーの作成」をご参照ください。
-
手動スナップショットの作成
以下の高リスク操作の前に、必ず手動スナップショットを作成してください。
-
カーネルの更新。
-
アプリケーションのアップグレードまたは変更。
-
ディスク上のデータの復元。
ディスクの復元を実行する前には、必ずスナップショットを作成してください。スナップショットの作成が完了した後で、復元作業を進めてください。
-
-
OSS バックアップ、オフラインバックアップ、および地理的冗長性
ビジネス要件に基づいて、重要なデータを OSS、オフラインバックアップ、または地理的冗長性でバックアップします。
関連ドキュメント
詳細については、「ベストプラクティス 」をご参照ください。