インポートされたLinuxイメージでのシリアル・コンソール・アクセスの有効化

コンピュート・サービスのシリアル・コンソール機能を使用する接続をサポートするように、カスタムLinuxイメージを構成できます。

シリアル・コンソール接続の詳細、およびイメージの起動後にネットワーク接続の問題があるかどうかをトラブルシューティングするステップは、インスタンス・コンソール接続を使用したインスタンスのトラブルシューティングを参照してください。

Oracle Cloud Infrastructureのシリアル・コンソール接続は、VMの最初のシリアル・ポートであるttyS0を使用します。入力と出力の両方でコンソール・ターミナルとしてttyS0を使用するようにブート・ローダーとオペレーティング・システムを構成する必要があります。

ブート・ローダーの構成

入力と出力両方のコンソール・ターミナルとしてttyS0を使用するようにブート・ローダーを構成するステップは、GRUBバージョンによって異なります。オペレーティング・システムで次のコマンドを実行して、GRUBのバージョンを確認します:

grub install --version

返されるバージョン番号が2.xの場合は、GRUB 2のステップを使用します。それよりも前のバージョンの場合は、GRUBのステップを使用してください。

GRUB2を構成するには
  1. 次のコマンドを実行して、GRUB構成ファイルを変更します:

    sudo vi /etc/default/grub
  2. 構成ファイルに次の内容が含まれていることを確認します:

    GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200"
    							GRUB_TERMINAL="serial console"
  3. GRUB_CMDLINE_LINUX行の最後に次を追加します:

    console=tty1 console=ttyS0,115200

    GRUB_CMDLINE_LINUXが存在しない場合、GRUB_CMDLINE_OUTPUTをテンプレートとして使用して、この行を作成します。

  4. 次のコマンドを使用して、GRUB2構成を再生成します:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg

    GRUB 2のベータ・バージョンがある場合は、かわりに次のコマンドを使用します:

    sudo grub-mkconfig -o /boot/grub/grub.cfg
GRUBを構成するには
  1. 次のコマンドを実行して、GRUB構成ファイルを変更します:

    sudo vi /boot/grub/grub.conf
  2. timeoutを含む行の後に次を追加します:

    serial --unit=0 --speed=115200
    terminal --timeout=5 serial console
  3. kernel行に次を追加します:

    console=tty1 console=ttyS0,115200

オペレーティング・システムの構成

オペレーティング・システムは、入力と出力の両方でコンソール・ターミナルとしてttyS0を使用するようにすでに構成されている場合があります。確認するには、次のコマンドを実行します:

sudo vi /etc/securetty

ファイルでttyS0を調べます。見つからない場合は、ttyS0をファイルの最後に追加します。

シリアル・コンソール・アクセスの検証

イメージへのシリアル・コンソール・アクセスを有効にするステップを完了した後は、仮想環境のシリアル・コンソールを使用してイメージをテストして、シリアル・コンソール・アクセスが機能していることを検証する必要があります。これを行うステップは、仮想環境のドキュメントを参照してください。ブート出力がシリアル・コンソール出力に表示されること、およびイメージの起動後に対話型の入力があることを確認します。

シリアル・コンソールのトラブルシューティング

シリアル・コンソールに出力が表示されない場合は、仮想環境の構成でシリアル・コンソール・デバイスが最初のシリアル・ポートに接続されていることを確認してください。

シリアル・コンソールに出力が表示されるが、対話型入力がない場合は、ttyS0ポートでターミナル・プロセスがリスニングしていることを確認します。これを行うには、次のコマンドを実行します:

ps aux | grep ttyS0

このコマンドによって、ttyS0ポートでリスニングしているターミナル・プロセスが出力されます。たとえば、システムでgettyが使用されている場合には、次の出力が表示されます:

/sbin/getty ttyS0

この出力が表示されない場合、シリアル・コンソール接続用のログイン・プロセスが構成されていない可能性があります。これを解決するには、起動時にターミナル・プロセスがttyS0をリスニングするように、初期化設定を有効にします。

たとえば、システムでgettyが使用されている場合、システム起動時に実行する初期化設定に次のコマンドを追加します:

getty -L 9600 ttyS0 vt102

このステップはオペレーティング・システムによって異なるため、イメージのオペレーティング・システムのドキュメントを参照してください。