このトピックでは、Linuxオペレーティングシステムでのデータディスクパーティションの損失に関連する一般的な問題の概要と、これらの問題に対処するツールを紹介します。
前提条件
データの復元を試みる前に、失われたパーティションを含むデータディスクのスナップショットを作成していることを確認してください。 復元エラーが発生した場合、スナップショットでデータディスクを復元前の状態に戻すことができます。 詳細な手順については、「シングルディスクスナップショットを手動で作成する」および「スナップショットを使用してクラウドディスクをロールバックする」をご参照ください。
背景情報
このトピックで説明するツールの機能と使用方法の詳細については、以下の内容を参照してください。
ツール名 | デフォルトインストール | ツールの説明 |
fdisk | 対象 | Linuxオペレーティングシステム用のパーティション管理ツール。 |
testdisk | 非対象 | Linuxオペレーティングシステムでディスクパーティションまたはデータを復元するためのツール。 |
partprobe | 対象 | 主に、カーネルがシステムを再起動せずにディスクパーティション情報を再読み込みできるようにするために使用されます。 |
ディスクパーティションまたはデータの復元
Linuxインスタンスのヒューマンエラー、プログラムの誤動作、ウイルスによるディスクパーティションテーブルの破損や予期しないデータ損失が発生した場合は、次の3つの解決方法を検討してください。
(オプション) ディスク情報の確認
次のコマンドを実行し, 現在のディスク情報を確認してください。
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
がリストされています。 パーティションテーブルが破損しているため、デバイス
情報は表示されません。
fdiskを使用したパーティションの復元
データディスクを分割するとき、開始セクタと終了セクタは通常デフォルト値を使用する。 まず、fdiskコマンドを使用して新しいパーティションを作成し、復元します。
fdisk
を使用した後にパーティションをマウントできない場合、またはマウントが成功してもファイルが表示されない場合は、testdiskを使用したパーティションの復元またはtestdiskを使用したデータの復元を検討してください。
testdiskを使用したパーティションの復元
クラウドディスクのデバイス名が /dev/xvdbであるとします。 パーティションの復元にtestdisk
ツールを使用するには、次の手順を実行します。
以下のコマンドを実行して、
testdisk
をインストールします。Alibaba Cloud Linux 3/2、CentOS 6/7/8
sudo yum install -y testdisk
Ubuntu / Debian
sudo apt install -y testdisk
testdisk /dev/xvdbを実行し (それに応じてデバイス名を調整) 、[続行] (デフォルト) を選択し、Enterキーを押します。
スキャンするパーティションテーブルの種類を選択します。通常、Intelを選択します。 データディスクがGPTパーティションを使用している場合は、[EFI GPT] を選択します。
分析を選択してEnterキーを押します。
パーティション情報が表示されない場合は、[クイック検索] を選択し、Enterキーを押してクイックスキャンを行います。
スキャン結果は以下のようにパーティション情報を表示します。
パーティションを選択してEnterキーを押します。
選択書き込みパーティションを保存します。
説明パーティションがニーズを満たさない場合は、[Deeper Search] を選択して検索を続行します。
Yを押してパーティションを確認し、保存します。
実行partprobe /dev/xvdb(必要に応じてデバイス名を変更します) パーティションテーブルを手動で更新します。
パーティションを再マウントし、データディスク上のデータを確認します。
testdiskを使用したデータの復元
場合によっては、testdiskでディスクパーティションをスキャンできますが、それらを保存できない場合があります。 このような場合、次の手順に従ってファイルを直接回復できます。
testdiskを使用してディスクパーティションをスキャンします。 詳細な手順については、testdiskを使用したパーティションの復元の手順1 ~ 5を参照してください。
Pを押してファイルを一覧表示します。
スキャンは以下のようにファイルを表示します。
回復したいファイルを選択して押しますC.
宛先ディレクトリを選択します。 この例では、ファイルは /homeに復元されます。
メッセージが
Copy done! 1 ok, 0 failed
が表示されます。以下に示すように、コピーが成功したことを示します。に移動します。Navigate to the/ホーム復元されたファイルをチェックします。
ファイルが表示されている場合、ファイルの復元は成功しました。
よくある間違いとベストプラクティス
データはユーザーにとって重要な資産です。 多くの場合、Webサイトをホストしたり、MySQL、MongoDB、Redisなどの自己管理データベースをECSインスタンスにデプロイしたりできます。 データ損失は、企業に重大なリスクをもたらす可能性があります。 このセクションでは、一般的なエラーとデータセキュリティのベストプラクティスについて説明します。
よくある間違い
一部のユーザーは、Alibaba Cloudの基盤となるストレージ三重化メカニズムにより、オペレーティングシステム内のデータが安全であると想定しています。 これは誤解です。 三重化メカニズムはデータディスクの物理層保護を提供しますが、ウイルス感染、偶発的な削除、ファイルシステムの破損などの論理的な問題は依然としてデータの損失につながる可能性があります。 これらのリスクを軽減するには、スナップショット、地理的冗長性、およびその他の関連技術を活用することが不可欠です。 三重化メカニズムの詳細については、「クラウドディスク三重化メカニズム」をご参照ください。
ベストプラクティス
データディスクパーティションの復元とデータ回復はデータ損失に対する重要な防御策ですが、回復を保証するものではありません。 データのセキュリティを強化するために、スナップショット (自動と手動の両方) を作成し、さまざまなバックアップ戦略を実装することを強くお勧めします。
自動スナップショットの有効化
ビジネスニーズに応じて、システムディスクとデータディスクの自動スナップショットを設定します。
重要自動スナップショットは、システムディスクが交換されたとき、インスタンスが期限切れになったとき、またはディスクが手動でリリースされたときにリリースされます。 ECSコンソールで、[ディスクのプロパティの変更] を選択し、[ディスクによる自動スナップショットのリリース] を選択します。 自動スナップショットを保持するには、このオプションを手動でクリアします。 詳細については、「スナップショットに関するFAQ」および「自動スナップショットポリシーの作成」をご参照ください。
手動スナップショットの作成
重要またはリスクの高い操作の前に、ディスクのスナップショットを手動で作成してください。
カーネルを更新するUpdate the kernel
アプリケーションのアップグレードまたは変更
ディスク上のデータを復元する
復元プロセスを開始する前に、ディスクのスナップショットが作成されていることを確認し、スナップショットが完了した後にのみ続行します。
OSS、オフライン、および地理的冗長性のバックアップ
特定のニーズに応じて、OSS、オフライン、またはgeo冗長化方法を使用して重要なデータをバックアップします。