家のPC環境をLinuxに移行して快適PC生活なのだけど、やはり世の中はWindowsでないと成り立たない物もあるわけです。Windows版しかないアプリとか著作権保護されたコンテンツとか…。という事で仕方ないのでubuntu上にVirtualBoxをインストールしてそれでWindows XPを動かす事にしてみたわけです。
今のところWindowsでないと困る事は以下の事位かな。
- GyaoとかDRM対応のストリーミングサイト
- SDオーディオ(Panasonic SD-Jukebox)
- IEでないと見れないサイト
- PaSoRi(Edyリーダ)
- Microsoft Money
- TANITA InnerScan
DRM対応のストリーミングはどうしようもないですね。そもそもWindows Media Playerを前提に作られているからこればっかしは仕方がない。SDオーディオはCPRMなんで、これもやっぱり仕方がない。IEでしか見れないサイトはそんなん作るのが悪いんだが、まぁテストとか大変やろうから仕方がない。とは言え、Firefox on ubuntuでも十分なんで、それほど不満はないかな。Microsoft MoneyとTANITA InnerScanはWindows版しかないんで、これも仕方がない。当たり前だけど…[E:coldsweats01]
ubuntu 8.04 LTSにはVirtualBox 1.5.6 OSEのパッケージが提供されていて、Synapticパッケージ・マネージャからインストールできるのだけど、このOSE版はUSBに対応していないのです。USBに対応しているのは2.xのOSE(Open Source Edition)でないバージョンしかないので、これをインストールする必要があります。
VirtualBox 2.1 for ubuntu 8.04 LTS (Hardy)のインストール方法
(参考サイト:http://www.howtoforge.com/installing-virtualbox-2.0.0-on-ubuntu-8.04-desktop)
http://www.virtualbox.org/wiki/Linux_Downloads
上記サイトでubuntu 8.04 LTS (Hardy Heron)を選択。
使用しているCPUによって正しいパッケージを選んでください。
ウチはIntel Core2 E6600なので、i386版をインストールしました。
Firefoxでアクセスすれば自動的にubuntuのインストール情報(.deb)を引っ張ってくれるので、そのまま進めればすんなりできるはず。
後は仮想マシンの設定をしていつも通りWindows XPのインストールディスクをセットして起動すればOKなんだけど、ちょっとだけコツが必要かも。
まず仮想マシンの設定は以下のような感じにしました。
OSタイプ Windows XP
メインメモリ 512MB
ビデオメモリ 32MB
起動順序 CD/DVD-ROM、ハードディスク
ACPI 有効
IO APIC 無効
VT-x/AMD-V 有効
PAE/NX 無効
3Dアクセラレーション 有効
メインメモリはWindows XPなら1GBは必要なのですが、クリーンインストールして常駐アプリも少なく上記の用途だけであれば、512MBでも問題なく動作します。そもそもVT-xを有効にしてもネイティブCore2上で動作させた時よりも遥に重くなるので、メモリがボトルネックにはならないです。一応試してはみたのですが、768MB位までは動作が軽くなった感じがしたけど、それ以上だと変わらなかったです。まぁ、仮想マシンはシングルコアで動作するんでこんなもんでしょうね。
この状態でインストールディスクをセットして仮想マシンを起動すれば良いのですが、起動後に仮想マシンウィンドウの「デバイス」からディスクをセットしたドライブをマウントするようにしましょう。そうしないと起動ディスクが見つからないとか何とか…[E:sweat01]
この後ちょっとトラブルが…
仮想マシンを起動しようとするとACCESS_DENIEDとかで起動しない。
これはどうやらvboxdrvが起動していない事とVirtualBoxを起動するユーザがvboxusersグループに参加していない事が原因らしい。vboxdrvはsysv-rc-confを使って起動可能なんだけど、そのためにはまずsysv-rc-confをSynapticパッケージ・マネージャからインストールする。その後ターミナルで
sudo sysv-rc-conf
SysV Runlevel Configでvboxdrvのサービスをrunlevel 3〜5まで起動すればOK。念のためubuntuを再起動して、後は普通にWindows XPのインストールをするだけ。
↓こーんな感じになります。
でも、ここでちょっと問題が発生。
ネットワークが繋がらない…
ネットワークが接続できない問題を解決
(参考サイト:http://superlinux.blog50.fc2.com/blog-entry-19.html)
(参考サイト:http://blog.s21g.com/articles/942)
- brigde-utilsをインストール
- /etc/network/interfacesを編集
- ブリッジポートを作成
- VirtualBoxでホストインタフェースを設定
結局やっている事は、ゲストからホストのネットワークインタフェースにつないで、それを外部ネットワークにブリッジ接続するという事ですな。VMwareとかVirtualPCだったら自動的にやってくれるのだけど、VirtualBoxの場合は自分でしなければならないからちょっと面倒。で、Linuxでのブリッジ接続の設定方法ですが、通常ネットワークポートが1ポートの場合、eth0に接続されていると思います。この状態だと、ループバックデバイス(通常lo)と外部ポート(eth0)の2種類だけが見えるのですが、今回はここにブリッジ用ポート(br0)を新規に作るわけです。で、eth0の中身はクリアしてbr0に接続してあげればホスト側はOK。ゲスト側も新しいインタフェース(上記サイトの例だとvbox0)を作って、br0に接続してあげると…。
う〜む、賢いですな。
結果、我が家の/etc/network/interfacesは以下のようになりました。
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0auto eth0
iface eth0 inet static
address 0.0.0.0auto br0
iface br0 inet static
address xxx.xxx.xxx.xxx
netmask 255.255.255.0
gateway xxx.xxx.xxx.xxx
bridge_ports eth0
IPアドレスの所は伏せ字になっています。各自の環境に合わせて正しい値をいれてください。
あとハマったのは、VirtualBox 2.xはOpen Sourceではないので、VBoxAddIFスクリプトがないという事[E:sweat02]結局OSE版のパッケージから探して持ってきました。面倒だったら、一旦VirtualBox 1.56 OSEをインストールして仮想マシン用のインタフェースを作成した上でアンインストールすれば良いのではないかと思われまする。
参考サイトにも書かれているのだけど、この状態でも/dev/net/tunのパーミッションの問題で毎回エラーが出て気になる人もいるはず。そんな時はchmod 666 /dev/net/tunをサービスかセッション起動時に実行しておけば良いです。
VirtualBox 2.xならUSBのフィルタ設定をしておけば自動的にゲストOSにもマウントされるので便利です。TANITA InnerScanのUSBとか登録しときました。
ちなみに、ここまでの処置を行ってもSD-Jukeboxは正しく動作しなかったです。CPRM対応のカードリーダはやはりデバイス認証で失敗するようで、マウントできませんでした。残念!でも、それ以外は全部OK。Windowsのライセンス余らすのも勿体ないので、ちょうど良かったですな。