このトピックでは、Elastic Compute Service (ECS) インスタンスのLinuxオペレーティングシステムが起動に失敗し、UEFI-Interactive-Shellエラーが報告される問題の原因と解決策について説明します。
問題の説明
Linux ECSインスタンスを起動すると、インスタンスのオペレーティングシステムが起動できません。 Virtual Network Computing (VNC) を使用してインスタンスに接続すると、UEFI-Interactive-Shellエラーが報告されます。
発生原因
Linux ECSインスタンスがUnified Extensible Firmware Interface (UEFI) モードで起動できないため、UEFI-Interactive-Shellエラーが発生します。 この問題は、次の理由で発生する可能性があります。
Linux ECSインスタンスのイメージは、UEFIブートモードをサポートしていません。 ただし、イメージのブートモードはUEFIに設定されています。 設定エラーはカスタムイメージに存在する可能性があります。 この問題を解決するには、イメージのブートモードをBIOSに設定します。 詳細については、このトピックの「イメージのブートモードをBIOSに設定する」をご参照ください。
インスタンスのイメージはUEFIをサポートしています。 ただし、イメージのUEFIファームウェアが破損しています。 この問題を解決するには、UEFIファームウェアを修復します。 詳細については、このトピックの「UEFIファームウェアの修復」をご参照ください。
ソリューション
上記の問題を解決するには、イメージのブートモードを変更するか、UEFIファームウェアを修復します。
イメージのブートモードをBIOSに設定する
UEFIブートモードを使用しない場合、またはイメージがUEFIブートモードをサポートしていない場合は、イメージのブートモードをBIOSに設定し、イメージから新しいインスタンスを作成します。
障害のあるLinux ECSインスタンスをリリースします。
詳細については、「インスタンスのリリース」をご参照ください。
イメージのブートモードをBIOSに設定します。
詳細については、「ECSインスタンスのブートモードのベストプラクティス」をご参照ください。
イメージからLinux ECSインスタンスを作成します。
詳細については、「カスタムイメージを使用したインスタンスの作成」をご参照ください。
Linux ECSインスタンスに接続します。 Linux ECSインスタンスに接続でき、UEFI-Interactive-Shellエラーが発生しない場合、上記の問題は解決されます。
詳細については、「接続方法の概要」をご参照ください。
UEFIファームウェアの修復
インスタンスタイプとイメージがUEFIブートモードをサポートしており、Linux ECSインスタンスをUEFIモードで起動する場合は、次の手順を実行してUEFIファームウェアを修復します。
障害のあるLinux ECSインスタンスからシステムディスクをデタッチし、正常なLinux ECSインスタンスにデータディスクとして接続します。
で説明されているステップ1からステップ3を実行します。システムのディスクデータを復元する方法? トピックを使用します。
必要なすべてのExtensible Firmware Interface (EFI) パッケージが障害のあるLinux ECSインスタンスにインストールされており、必要なすべてのEFIファームウェアパッケージが
/boot/efi/EFI/centos
ディレクトリにあるかどうかを確認します。次のコマンドを実行して、必要なすべてのEFIパッケージが障害のあるLinux ECSインスタンスにインストールされているかどうかを確認します。
rpm -qa | grep -i efi
次のコマンド出力が表示されます。
障害のあるLinux ECSインスタンスと同じディストリビューションを実行する正常なLinux ECSインスタンスを見つけ、正常なLinux ECSインスタンスにインストールされているEFIパッケージに対してコマンド出力を確認します。
コマンド出力に含まれるEFIパッケージが、正常なLinux ECSインスタンスにインストールされているEFIパッケージと同じ場合は、手順2.bに進みます。
正常なLinux ECSインスタンスにインストールされているEFIパッケージがコマンド出力に含まれていない場合は、
sudo yum install
コマンドを実行して、障害のあるLinux ECSインスタンスにEFIパッケージをインストールします。たとえば、次のコマンドを実行してgrub2-efi-x64パッケージをインストールします。
sudo yum install grub2-efi-x64-2.02-0.87.el7.centos.6.x86_64
次のコマンドを実行して、必要なすべてのEFIファームウェアパッケージが
/boot/efi/EFI/centos
ディレクトリに存在するかどうかを確認します。cd /boot/efi/EFI/centos && ll
次のコマンド出力が表示されます。
障害のあるLinux ECSインスタンスと同じディストリビューションを実行する正常なLinux ECSインスタンスを見つけ、正常なLinux ECSインスタンスにインストールされているEFIファームウェアパッケージに対してコマンド出力を確認します。
コマンド出力に含まれるEFIファームウェアパッケージが、正常なLinux ECSインスタンスにインストールされているEFIファームウェアパッケージと同じ場合は、手順3に進みます。
正常なLinux ECSインスタンスにインストールされているEFIファームウェアパッケージがコマンド出力に含まれていない場合は、
sudo yum install
コマンドを実行して、障害のあるLinux ECSインスタンスにEFIファームウェアパッケージをインストールします。次のコマンドを実行して、grub2-efi-x64パッケージを再インストールすることを推奨します。
sudo yum install grub2-efi-x64-2.02-0.87.el7.centos.6.x86_64
障害のあるLinux ECSインスタンスにシステムディスクを再接続します。
で説明されているステップ5の実行システムのディスクデータを復元する方法? トピックを使用します。
Linux ECSインスタンスに接続します。 Linux ECSインスタンスに接続でき、UEFI-Interactive-Shellエラーが発生しない場合、上記の問題は解決されます。
詳細については、「接続方法の概要」をご参照ください。