Linux

Virtualbox + CentOS7 + シリアル接続してみる

Virutalbox上でLinuxを動かす際に起動ログやカーネルパニック時の画面ログを取りたい時があります。

調べると仮想シリアルポートを組み合わせることでVritualbox上の仮想マシンとシリアル接続が可能らしい。

イメージはこんな感じ。

f:id:segmentation-fault:20180404213905p:plain

ということで早速やってみました。

Windos7のVirtualbox上でCentOS7を起動しTeratermからシリアル接続して起動ログが表示されるか確認します。

仮想シリアルポートの導入

まずは、Windows側にここからソフトをダウンロードしてインストールします。

インストール後、Teratermを起動してCOMポートが2つ増えていればOKです。

f:id:segmentation-fault:20180404214732p:plain

動作確認としてTeratermを2つ起動し、各COMポート(上絵ではCOM4,COM5)を開いて片方の端末から入力した文字がもう一方の端末に表示されるか確認してみます。

動作確認がとれたら、Virutualboxの設定でシリアルポートにインストールしたCOMポート(今回の例ではCOM4)を割り当てます。

TeratermでCOMポートを開いているとエラーになるので事前に開放しておくこと。

f:id:segmentation-fault:20180404220357p:plain

ホスト側の設定は以上です。

grub2の設定ファイルを編集

続いてゲスト側の設定です。

シリアルの準備が出来たら、次はCentOS7を起動しgrub2の設定ファイル(/etc/default/grub)を開いて、画面ログをコンソールに出力するように編集します。

GRUB_CMDLINE_LINUXの行の”rhgb quiet”を消すと起動時のログが省略されずに画面に出力されるようになり、console=xxxで出力先のデバイスとボーレートを指定します。



ファイルを修正したら下記コマンドでgrub2を更新します。

これで準備が整いました。

実行結果

Teratermを起動しシリアルポート(今回の例ではCOM5)を開きます。

ゲストOSを再起動してTeraterm上に画面ログが出力すれば成功です。

f:id:segmentation-fault:20180404220849p:plain

無事シリアルにログが表示されました。

シリアル端末からログイン、コマンド入力等の操作も問題なく行えます。