Vagrant (VirtualBox) でシリアルコンソールに繋ぐ

Vagrant というか VirtualBox ですが、シリアルコンソールに繋ぐ方法調べたので書いときます。ゲストOS が Linux の時に Oops のログを全部取りたくて調べてたのでした。

で、シリアルコンソールの設定

Vagarntfile は下記の通りに書いときます

# http://en.wikipedia.org/wiki/COM_(hardware_interface)

config.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"]
  vb.customize ["modifyvm", :id, "--uartmode1", "server", "/tmp/vagrant-ttyS0.sock"]
end

/tmp/vagrant-ttyS0.sock のパスで ホストOSに UNIXドメインソケットが生えます。( ホストOSが Windows の場合はちょっとわかりません。すいません )


ゲストOS (CentOS6) の /etc/grub.conf のオプションに以下を追加しておく

# 速度の指定ってどう決めるのがセオリーなんでしょうか? 
console=ttyS0,9600


で、おもむろに vagrant reload 。ゲストOSが起動後、ホストOS (自分はMac) から nc で繋ぐ

# -U は UNIX Domain Socket を指定するオプションとのこと
$ nc -U /tmp/vagrant-ttyS0.sock


これでよい感じに Oops のログがとれました