ISheep

ISheep

Badminton | Coding | Writing | INTJ
github

AWS EC2 Linux インスタンスが緊急モードに入った場合、インスタンスを削除せずに復元する方法

正しい方法でインスタンスの自動マウントボリュームを再起動する

背景#

  1. オペレーティングシステム:Amazon Linux 2023
  2. インスタンスタイプ:t2.micro

EC2 に新しいボリュームをマウントしようとしましたが、インスタンスを再起動するとマウントしたボリュームが見つからないことに気づきました。その後、自動マウントの方法をインターネットで検索しました。/etc/fstabファイルを変更して再起動してみましたが、SSH 接続ができなくなり、ログを確認したところ、緊急モードに入っていることがわかりました... 対話画面にも入ることができませんでした。「最初の試みで壊してしまいました」

image
最初はプロキシの問題だと思っていましたが、閉じても接続できませんでした

image

システムログを開く

image

image

しかし、AWS には起動に失敗した場合の解決策が用意されており、小さな文字が表示されています

image

結果

image

最初はドキュメントを見て、どのタイプがサポートされているかを調べて、インスタンスタイプを変更しましたが、なぜかまだ接続できませんでした... 最終的には、壊れたファイルを修正するために、復旧用のインスタンスを一時的に起動する方法を見つけました。

復旧方法#

基本的には以下の手順に分かれます

  1. 起動に失敗したインスタンスを停止する
  2. 起動に失敗したインスタンスからルートボリュームを分離する
  3. 同じリージョン内で新しい EC2 インスタンスを作成する
  4. ルートボリュームを新しいインスタンスにマウントする
  5. /etc/fstabファイルを変更する

インスタンスの停止#

停止が完了するまで待ちます。目的はボリュームを分離するためです
image

ボリュームの分離#

ルート「/」ディレクトリにマウントされているボリュームを見つけ、分離をクリックします

image

新しいインスタンスの起動#

設定は最も基本的なもので十分です。目的は、先ほど分離したボリュームをマウントすることです

サブネットを指定することを忘れないでください。「ボリュームと同じアベイラビリティーゾーンを選択するためです。私の場合は us-west-1b です」

image

ボリュームのマウント#

AWS 管理コンソールで、先ほど分離したボリュームを新しいインスタンスにマウントし、新しいインスタンスに SSH で接続します

image

ここで、先ほど修正した内容が表示されます

image

vim を使用して fstab ファイルを直接変更し、修正が完了したらボリュームを分離し、起動できなかったインスタンスにマウントします。マウントする際には、名前に xvda を入力することに注意してください。「以前と同じで、私が見ている AWS のデフォルトのルートボリュームはこの名前です」

image

最後に、古いインスタンスを起動し、新しく作成したインスタンスは削除できます

image
成功!

参考#

EC2 Linux インスタンスが緊急モードになった場合のトラブルシューティング | AWS

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。