インポートされたLinuxイメージでのシリアル・コンソール・アクセスの有効化
コンピュート・サービスのシリアル・コンソール機能を使用する接続をサポートするように、カスタムLinuxイメージを構成できます。
シリアル・コンソール接続の詳細、およびイメージの起動後にネットワーク接続の問題があるかどうかをトラブルシューティングするステップは、インスタンス・コンソール接続を使用したインスタンスのトラブルシューティングを参照してください。
Oracle Cloud Infrastructureのシリアル・コンソール接続は、VMの最初のシリアル・ポートであるttyS0を使用します。入力と出力の両方でコンソール・ターミナルとしてttyS0を使用するようにブート・ローダーとオペレーティング・システムを構成する必要があります。
ブート・ローダーの構成
入力と出力両方のコンソール・ターミナルとしてttyS0を使用するようにブート・ローダーを構成するステップは、GRUBバージョンによって異なります。オペレーティング・システムで次のコマンドを実行して、GRUBのバージョンを確認します:
grub-install --version
'grub' not found
というエラーが表示された場合は、次のコマンドを実行します:grub2-install --version
返されるバージョン番号が2.xの場合は、ステップを使用してGRUB 2を構成します。以前のバージョンの場合は、ステップを使用してGRUBを構成します。
-
次のコマンドを実行して、GRUB構成ファイルを変更します:
sudo vi /etc/default/grub
-
構成ファイルに次の内容が含まれていることを確認します:
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200" GRUB_TERMINAL="serial console"
-
GRUB_CMDLINE_LINUX
行の最後に次を追加します:console=tty1 console=ttyS0,115200
GRUB_CMDLINE_LINUX
が存在しない場合、GRUB_CMDLINE_OUTPUT
をテンプレートとして使用して、この行を作成します。 -
次のコマンドを使用して、GRUB2構成を再生成します:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
GRUB 2のベータ・バージョンがある場合は、かわりに次のコマンドを使用します:
sudo grub-mkconfig -o /boot/grub/grub.cfg
-
次のコマンドを実行して、GRUB構成ファイルを変更します:
sudo vi /boot/grub/grub.conf
-
timeout
を含む行の後に次を追加します:serial --unit=0 --speed=115200 terminal --timeout=5 serial console
-
各
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
このステップはオペレーティング・システムによって異なるため、イメージのオペレーティング・システムのドキュメントを参照してください。