Vagrant (VirtualBox) でシリアルコンソールに繋ぐ というエントリを書いたその続き
VirtualBox のシリアル通信?のオプションである --uartmode を今一度調べたら コンソールログをファイルとしてもホストOSに書き出せるようになっていました。
$ /Applications/VirtualBox.app/Contents/MacOS/VBoxManage -h // ... 略 [--uartmode<1-N> disconnected| server <pipe>| client <pipe>| file <file>| <devicename>]
Vagrantfile の書き方
--uartmode1 に file を渡しているのがミソです
config.vm.provider :virtualbox do |vb| vb.gui = true vb.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"] vb.customize ["modifyvm", :id, "--uartmode1", "file", "/tmp/vagrant-ttyS0.log"] end
ゲストOS (この例では CentOS6 ) の e/etc/grub.conf に下記の行を足しておきます
console=ttyS0,9600
ゲストOSが起動後 /tmp/vagrant-ttyS0.log にずるずるとコンソールのログが出ます。ログがでるだけで対話側の操作はできません。
--uartmodeN server の場合はホストOSから何かしらのクライアントで繋いでおかないととログが見れませんが、 --uartmodN file は常にログがでていますし、後から追うのも楽そうです。
用途に応じて使い分けるとよさそうですね
参考にしたサイト
- http://inuits.eu/blog/vagrant-and-virtualbox-debugging-story
- ほぼ同じことが書かれています