GRUB を使用して Linux インスタンスをトラブルシューティングする
GNU GRUB (GNU GRand Unified Bootloader の略。一般に GRUB と呼ばれます) は、ほとんどの Linux オペレーティングシステムのデフォルトのブートローダーです。GRUB メニューから、起動先のカーネルを選択したり、メニューエントリを変更してカーネルの起動方法を変更したりできます。これは、障害が発生したインスタンスをトラブルシューティングする際に役立ちます。
GRUB メニューは、ブートプロセス中に表示されます。通常の SSH ではメニューにアクセスできませんが、EC2 シリアルコンソールからアクセスできます。
GRUB を使用できるようにするには、シリアルコンソールへのアクセス権付与と GRUB の設定を含む、前提条件を完了する必要があります。
GRUB を使用する
GRUB を設定したら、シリアルコンソールに接続し、reboot コマンドを使用してインスタンスを再起動します。再起動中は、GRUB メニューが表示されます。GRUB メニューが表示されたら、任意のキーを押してブートプロセスを停止し、GRUB メニューを操作できるようにします。
トピック
シングルユーザーモード
シングルユーザーモードでは、カーネルを低めの実行レベルで起動します。例えば、ファイルシステムをマウントしても、ネットワークをアクティブ化しない場合があり、インスタンスの修正に必要なメンテナンスを実行することができます。
シングルユーザーモードで起動するには
-
インスタンスのシリアルコンソールに接続します。
-
次のコマンドを実行して、インスタンスを再起動します。
[ec2-user ~]$
sudo reboot
-
再起動時に GRUB メニューが表示されたら、任意のキーを押してブートプロセスを停止します。
-
GRUB メニューで、矢印キーを使用して起動先のカーネルを選択し、キーボードの
e
を押します。 -
矢印キーを使用して、カーネルを含む行にカーソルを置きます。行は、インスタンスの起動に使用された AMI に応じて、
linux
またはlinux16
のいずれかで始まります。Ubuntu の場合、2 つの行はlinux
で始まります。どちらも次のステップで変更する必要があります。 -
行の最後に、単語
single
を追加します。Amazon Linux 2 の例を次に示します。
linux /boot/vmlinuz-4.14.193-149.317.amzn2.aarch64 root=UUID=d33f9c9a-\ dadd-4499-938d-ebbf42c3e499 ro console=tty0 console=ttyS0,115200n8 net.ifname\ s=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.she\ ll=0 single
-
シングルユーザーモードで起動するには、Ctrl+X キーを押します。
-
login
プロンプトで、前に設定したパスワードベースのユーザーのユーザー名を入力し、Enter キーを押します。 -
Password
プロンプトで、パスワードを入力し、Enter キーを押します。
緊急モード
緊急モードはシングルユーザーモードと似ていますが、カーネルは可能な限り低い実行レベルで実行される点が異なります。
緊急モードで起動するには、前のセクションの シングルユーザーモード の手順に従います。ただし、ステップ 6 では、single
の代わりに emergency
という単語を追加します。