シリアル コンソールを使用して GRUB とシングル ユーザー モードにアクセスする
適用対象: ✔️ Linux VM
Note
この記事で参照されている CentOS は Linux ディストリビューションであり、EOL (End Of Life) に到達します。 適宜、使用と計画を検討してください。 詳細については、「 CentOS End Of Life ガイダンスを参照してください。
GRand Unified Bootloader (GRUB) は、仮想マシン (VM) を起動したときにおそらく最初に表示されるものです。 GRUB は、オペレーティング システムが起動する前に表示されるため、SSH からはアクセスできません。 GRUB ではさまざまな設定ができ、シングル ユーザー モードで起動するようにブート構成を変更することができます。
シングル ユーザー モードは、最小限の機能を持つ最小限の環境です。 ブートの問題やファイル システムの問題、ネットワークの問題を調査するのに役立ちます。 バックグラウンドで実行されるサービスが少なくなり、実行レベルによっては、ファイル システムが自動的にマウントされないこともあります。
シングル ユーザー モードはまた、サインインに SSH キーのみを受け入れるように VM が構成される状況でも役立ちます。 この場合は、パスワード認証を使用するアカウントを作成するためにシングル ユーザー モードを使用することができます。
Note
シリアル コンソール サービスでは、"共同作成者" レベル以上のアクセス許可を持つユーザーのみが、VM のシリアル コンソールにアクセスできます。
シングル ユーザー モードを開始するには、VM の起動時に GRUB に入り、GRUB でブート構成を変更します。 次のセクションで、GRUB に入る詳細な手順を説明します。 一般的に、VM が GRUB を表示するように構成されている場合は、VM のシリアル コンソール内の再起動ボタンを使用して VM を再起動し、GRUB を表示できます。
GRUB の一般的なアクセス
GRUB にアクセスするには、シリアル コンソール ウィンドウが開いている状態で VM を再起動します。 一部のディストリビューションでは GRUB を表示するのにキーボード入力が必要ですが、それ以外のディストリビューションでは数秒間 GRUB が自動的に表示されるので、ユーザーがキーボード入力を行うと、タイムアウトをキャンセルできます。
シングル ユーザー モードにアクセスできるようにするには、VM 上で GRUB を確実に有効にする必要があります。 ディストリビューションによっては、GRUB を確実に有効にするために設定作業が必要になる場合があります。 ディストリビューション固有の情報については、次のセクションを参照してください。
シリアル コンソールで VM を再起動して GRUB にアクセスする
シリアル コンソール内で VM を再起動するには、[再起動] ボタンをポイントし、[VM の再起動] を選択します。 再起動に関する通知がウィンドウの下部に表示されます。
SysRq が有効になっている場合は、SysRq "b" コマンドを実行して VM を再起動することもできます。 再起動したときに GRUB でどのようなことができるかについては、以降のディストリビューションに固有の手順のセクションを参照してください。
シングル ユーザー モードの一般的なアクセス
パスワード認証を使用してアカウントを構成していない場合は、シングル ユーザー モードへの手動アクセスが必要になる可能性があります。 シングル ユーザー モードを手動で開始するには、GRUB 構成を変更します。 これを完了したら、その後の手順については「シングル ユーザー モードを使用してパスワードをリセットまたは追加する」セクションを参照してください。
VM を起動できない場合、ユーザーを自動的にシングル ユーザー モードまたは緊急モードにするディストリビューションが多くあります。 しかしながら、それ以外のディストリビューションでは、ユーザーを自動的にシングル ユーザー モードまたは緊急モードにするにはその前に root パスワードの設定など、追加のセットアップが必要です。
シングル ユーザー モードを使用してパスワードをリセットまたは追加する
シングル ユーザー モードになったら、以下の手順に従って sudo 特権を持つ新しいユーザーを追加します。
useradd <username>
を実行してユーザーを追加します。sudo usermod -a -G sudo <username>
を実行して新しいユーザーに root 特権を付与します。passwd <username>
を使用して新しいユーザーのパスワードを設定します。 これで、新しいユーザーとしてサインインできます。
Red Hat Enterprise Linux (RHEL) へのアクセス
RHEL を正常に起動できない場合、自動的にシングル ユーザー モードに切り替わります。 しかしながら、シングル ユーザー モード用に root アクセス権を設定していないと、root パスワードがないため、サインインできません。 回避策はあります (「RHEL のシングル ユーザー モードを手動で開始する」セクションを参照してください)。ただし、最初に root アクセス権を設定することをお勧めします。
RHEL での GRUB アクセス
RHEL には GRUB が付属しており、すぐに使用できます。 GRUB に入るには、sudo reboot
を実行して VM を再起動し、任意のキーを押します。 GRUB ウィンドウが表示されるはずです。 表示されない場合は、次の行が確実に GRUB ファイル (/etc/default/grub
) に存在しているようにします。
RHEL 8 の場合
Note
Red Hat では、Grubby を使用し、RHEL 8+ のカーネル コマンド ライン パラメーターを構成することを推奨しています。 現在のところ、Grubby を使用し、GRUB のタイムアウトとターミナルのパラメーターを更新することはできません。 すべてのブート エントリに対して GRUB_CMDLINE_LINUX 引数を更新するには、grubby --update-kernel=ALL --args="console=ttyS0,115200 console=tty1 console=ttyS0 earlyprintk=ttyS0"
を実行します。 詳細はこちらをご覧ください。
GRUB_TIMEOUT=5
GRUB_TERMINAL="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0"
RHEL 7 の場合
GRUB_TIMEOUT=5
GRUB_TERMINAL_OUTPUT="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 net.ifnames=0"
Note
また、Red Hat には、レスキュー モード、緊急モード、またはデバッグ モードでの起動、および root パスワードのリセットを実行するためのドキュメントが用意されています。 手順については、ブート中のターミナル メニューの編集に関するページを参照してください。
RHEL でシングル ユーザー モードの root アクセス権を設定する
ルート ユーザーは既定では無効です。 RHEL のシングル ユーザー モードを使用するには、ルート ユーザーを有効にする必要があります。 シングル ユーザー モードを有効にする必要がある場合は、次の手順のようにします。
- SSH を使って Red Hat システムにサインインします。
- ルートに切り替えます。
- 次の手順を実行して、ルート ユーザーのパスワードを有効にします。
passwd root
を実行します (強力な root パスワードを設定します)。
- 次の手順を行って、ルート ユーザーが確実に ttyS0 経由でのみサインインできるようにします。a.
vi /etc/ssh/sshd_config
を実行し、PermitRootLogIn を確実にno
に設定します。 b.vi /etc/securetty file
を実行して、ttyS0 経由のサインインのみを許可します。
これで、システムがシングル ユーザー モードで起動した場合、root パスワードを使用してサインインできます。
RHEL 7.4 以降または 6.9 以降の場合、代わりの方法として、GRUB プロンプトでシングル ユーザー モードを有効にできます。シングル ユーザー モードでブートするに関するページを参照してください。
RHEL でシングル ユーザー モードを手動で開始する
前述の手順を使用して GRUB と root アクセス権を設定した場合は、次の手順に従ってシングル ユーザー モードにすることができます。
GRUB に入るには、VM を再起動するときに Esc キーを押します。
GRUB で E キーを押して、ブート先の OS を編集します。 OS は通常、最初の行に表示されます。
カーネル行を見つけます。 Azure では、 linux または linux16 で始まります。
Ctrl キーを押しながら E キーを押して行末に移動します。
行の末尾に、"systemd.unit=rescue.target" を追加します。
この操作により、シングル ユーザー モードで起動されます。 緊急モードを使用する場合は、"systemd.unit=emergency.target" ("systemd.unit=rescue.target" ではなく) を行の末尾に追加します。
Ctrl キーを押しながら X キーを押して終了し、適用された設定で再起動します。
シングル ユーザー モードを開始するには、管理者パスワードの入力を求められます。 このパスワードは、前の手順で作成したものです。
RHEL で root アカウントを有効にせずにシングル ユーザー モードを開始する
前の手順に従ってルート ユーザーを有効にしなかった場合でも、次の手順に従って root パスワードをリセットできます。
Note
SELinux を使用している場合は、root パスワードをリセットするときに、Red Hat のドキュメントに記載されている追加の手順に従ってください。
GRUB に入るには、VM を再起動するときに Esc キーを押します。
GRUB で E キーを押して、ブート先の OS を編集します。 OS は通常、最初の行に表示されます。
カーネル行を見つけます。 Azure では、"linux16" で始まります。
行の末尾に "rd.break" を追加します。 カーネル行と "rd.break" の間にスペースを入れます。
この操作により、Red Hat のドキュメントで説明されているように、コントロールが
initramfs
からsystemd
に渡される前に起動プロセスが中断されます。Ctrl キーを押しながら X キーを押して終了し、適用された設定で再起動します。
再起動すると、読み取り専用のファイル システムで緊急モードが開始されます。
シェルで
mount -o remount,rw /sysroot
と入力して、読み取り/書き込みアクセス許可でルート ファイル システムを再マウントします。シングル ユーザー モードで起動したら、
chroot /sysroot
と入力してsysroot
jail に切り替えます。これで根本から、システムの問題のトラブルシューティングを開始できます。
RHEL では、SELinux 適用モードによって OS が変更から保護されます。
touch /.autorelabel
を実行して、パスワードの変更後にファイル システムにラベルを付け直すことができます。完了したら、
reboot -f
と入力して再起動します。
Note
前述の手順を行うと、緊急シェルが開始されるので、fstab
の編集などのタスクも実行できます。 しかしながら通常は、root パスワードをリセットしてシングル ユーザー モードの開始に使用することをお勧めします。
CentOS へのアクセス
Red Hat Enterprise Linux と同様に、CentOS でシングル ユーザー モードを使用するには、GRUB が必要であり、ルート ユーザーを有効にする必要があります。
CentOS での GRUB アクセス
CentOS には GRUB が付属しており、すぐに使用できます。 GRUB に入るには、sudo reboot
を入力して VM を再起動し、任意のキーを押します。 この操作により、GRUB ウィンドウが表示されます。
CentOS でのシングル ユーザー モード
CentOS でシングル ユーザー モードを有効にするには、前述の RHEL の手順を行います。
Ubuntu へのアクセス
Ubuntu イメージでは、root パスワードは必要ありません。 システムがシングル ユーザー モードで起動した場合、資格情報を追加指定しなくても使用できます。
Ubuntu での GRUB アクセス
GRUB にアクセスするには、VM の起動中に Esc キーを長押しします。
既定では、Ubuntu イメージは GRUB ウィンドウに自動的に表示されません。 設定を変更するには、次の手順を行います。
テキスト エディターで、"/etc/default/grub.d/50-cloudimg-settings.cfg" ファイルを開きます。
GRUB_TIMEOUT
値を 0 以外の値に変更します。テキスト エディターで、"/etc/default/grub" を開きます。
GRUB_HIDDEN_TIMEOUT=1
の行をコメント アウトします。GRUB_TIMEOUT_STYLE=menu
の行があることを確認します。sudo update-grub
を実行します。
Ubuntu でのシングル ユーザー モード
Ubuntu を正常に起動できない場合、自動的にシングル ユーザー モードに切り替わります。 シングル ユーザー モードを手動で開始するには、次の手順を行います。
- GRUB で、E キーを押してブート エントリ (Ubuntu エントリ) を編集します。
- "linux" で始まる行を探し、次に "ro" を探します。
- "ro" の後に "single" を追加し、"single" の前後にスペースがあるようにします。
- Ctrl キーを押しながら X キーを押してこれらの設定で再起動し、シングル ユーザー モードを開始します。
GRUB を使用して Ubuntu で bash を呼び出す
前述の手順を試してみた後でも、Ubuntu VM でシングル ユーザー モードにまだアクセスできない場合があります (root パスワードを忘れた場合など)。 また、init として、システム init ではなく /bin/bash
が実行されるようにカーネルに指示することもできます。 この操作により、bash シェルを利用して、システムのメンテナンスができるようになります。 次の手順を実行してください。
GRUB で、E キーを押してブート エントリ (Ubuntu エントリ) を編集します。
"linux" で始まる行を探し、次に "ro" を探します。
"ro" を "rw init=/bin/bash" に置き換えます。
この操作により、ファイル システムが読み取り/書き込み可能としてマウントされ、init プロセスとして
/bin/bash
が使用されます。Ctrl キーを押しながら X キーを押してこれらの設定で再起動します。
CoreOS へのアクセス
CoreOS でシングル ユーザー モードを使用するには、GRUB を有効にする必要があります。
CoreOS での GRUB アクセス
GRUB にアクセスするには、VM の起動中に任意のキーを押します。
CoreOS でのシングル ユーザー モード
CoreOS を正常に起動できない場合、自動的にシングル ユーザー モードに切り替わります。 シングル ユーザー モードを手動で開始するには、次の手順を行います。
GRUB で、E キーを押してブート エントリを編集します。
"linux$" で始まる行を探します。 この行の 2 つのインスタンスが存在し、それぞれが、異なる "if...else" 句の中に含まれている必要があります。
"coreos.autologin=ttyS0" を各 "linux$" 行の末尾に追加します。
Ctrl キーを押しながら X キーを押してこれらの設定で再起動し、シングル ユーザー モードを開始します。
SUSE SLES へのアクセス
SLES 12 SP3 以降の新しいイメージでは、システムが緊急モードで起動している場合、シリアル コンソールを使ってアクセスできます。
SUSE SLES での GRUB アクセス
SLES での GRUB アクセスには、YaST を使用してブートローダーを構成する必要があります。 この構成を作成するには、次の操作を行います。
SSH を使用して SLES VM にサインインし、
sudo yast bootloader
を実行します。 Tab キーを押して Enter キーを押し、方向キーを使用してメニュー内を移動します。[カーネル パラメーター] に移動し、[Use serial console]\(シリアル コンソールを使用する\) チェック ボックスを選択します。
Console 引数に
serial --unit=0 --speed=9600 --parity=no
を追加します。F10 キーを押して設定を保存し、終了します。
GRUB に入るには、VM を再起動し、起動シーケンス中に任意のキーを押して GRUB ウィンドウを表示したままにします。
GRUB の既定のタイムアウトは 1 秒です。 この設定を変更するには、"/etc/default/grub" ファイルの
GRUB_TIMEOUT
変数を変更します。
SUSE SLES でのシングル ユーザー モード
SLES が正常に起動できない場合は、自動的に緊急シェルに切り替わります。 緊急シェルを手動で開始するには、次の手順を行います。
GRUB で、E キーを押してブート エントリ (SLES エントリ) を編集します。
"linux$" で始まるカーネル行を探します。
"systemd.unit=emergency.target" をカーネル行の末尾に追加します。
Ctrl キーを押しながら X キーを押してこれらの設定で再起動し、緊急シェルを開始します。
Note
この操作により、読み取り専用のファイル システムで緊急シェルが開始されます。 ファイルを編集するには、読み取り/書き込みアクセス許可を使用してファイル システムを再マウントします。 これを行うには、シェルに
mount -o remount,rw /
と入力します。
Oracle Linux へのアクセス
Red Hat Enterprise Linux と同様に、Oracle Linux でシングル ユーザー モードを使用するには、GRUB が必要であり、ルート ユーザーを有効にする必要があります。
Oracle Linux での GRUB アクセス
Oracle Linux には GRUB が付属しており、すぐに使用できます。 GRUB に入る場合は、 sudo reboot
を実行して VM を再起動し、Esc キーを押します。この操作により、GRUB ペインが表示されます。 GRUB ウィンドウが表示されない場合は、GRUB_TERMINAL
行の値に "serial console" (GRUB_TERMINAL="serial console"
) が含まれることを確保します。 grub2-mkconfig -o /boot/grub/grub.cfg
を使用して GRUB を再構築します。
Oracle Linux でのシングル ユーザー モード
Oracle Linux でシングル ユーザー モードを有効にするには、前述の RHEL の手順を行います。
次のステップ
シリアル コンソールの詳細については、以下を参照してください。
- Linux シリアル コンソールのドキュメント
- シリアル コンソールを使用してさまざまなディストリビューションで GRUB を有効にする
- NMI および SysRq 呼び出しにシリアル コンソールを使用する
- Windows VM 用シリアル コンソール
- ブート診断
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。