EC2 をAMIから起動できない(/dev/mapper/vg_root-lv_root does not exist)
Contents
概要
- 今回の記事は、EC2インスタンスをAMIから起動できない事例の紹介です。
- 原因が分かれば納得ですが、別環境で取得したAMIを再利用するなど、AMIの元となっているEC2 インスタンスの情報が不明な場合はハマります。
EC2インスタンスの起動障害
EC2インスタンス起動時のStatus Checks失敗
- 別環境(別のAWSアカウント)から共有されているAMI を元にEC2インスタンス(type: c5.large)を起動しましたが、インスタンスのステータスチェック(1/2 checks)に失敗し、EC2インスタンスが起動できませんでした。
- 現象は固定であり、再起動しても起動できません。
インスタンスのSystem Logを調査する
- ステータスチェックに失敗したインスタンスを選択し、[Actions] → [Instance Settings] → [Get System Log]を選択します。

- 通常、OSのログファイルはOS起動後でなければ確認できませんが、上記方法を使用することで、OSの起動が完了する前のコンソールログを調べることが可能です。
- 今回は、以下のログが出力されており、ステータスチェックに失敗したエラーが確認できました。

- 以下、エラーメッセージの抜粋です。「/dev/mapper/vg_root-lv_root does not exist」と出力されており、ブートディスクが見つからなかったことが分かります。
EC2ステータスチェックに失敗した原因
- 今回、ステータスチェックに失敗した原因は、旧世代(C4インスタンス)で取得したAMI であったため、現行世代(C5インスタンス)で起動した場合に、ブートディスクのドライバが異なっており、ブートディスクのデバイスが認識できなかったため、OSの起動に失敗しました。
- 現行世代(C5インスタンス)は、NVMeを標準搭載するNitroベースのインスタンスのため、旧世代(C4インスタンス)でインストールされたOSイメージには、ドライバが組み込まれておりません。
- 無事、EC2インスタンス(type: c4.large)を起動し直すことで、ステータスチェックに成功して、OSが起動できました。以下、コンソールより、EC2ステータスチェックが確認可能です。
