【VirtualBox】 Windows XP on VirtualBox on ubuntu

家の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のインストールをするだけ。
↓こーんな感じになります。
Screenshot

でも、ここでちょっと問題が発生。
ネットワークが繋がらない…

ネットワークが接続できない問題を解決
(参考サイト:http://superlinux.blog50.fc2.com/blog-entry-19.html
(参考サイト:http://blog.s21g.com/articles/942

  1. brigde-utilsをインストール
  2. /etc/network/interfacesを編集
  3. ブリッジポートを作成
  4. 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.0

auto eth0
iface eth0 inet static
address 0.0.0.0

auto 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のライセンス余らすのも勿体ないので、ちょうど良かったですな。

Author: kan
初めてプログラムらしきものを作ったのは幼稚園の時。それから約40年経ち、現在はデジタル回路設計から信号処理、機械学習まで幅広い経験を活かしてシステムアーキテクトとして活動中。超並列処理、デジタル回路とソフトウェアのバランス設計が得意分野。 Linux/Mac/Windows使い。 C/C++を主要言語として、Unity、Qtなどのフレームワーク興味あり。UI/UXデザイン、STL拡張など。 音声処理、画像処理、技術コンサルは仕事でも請け負います。 一般ソフトウェア開発プロセス、医療機器ソフトウェア開発プロセス作成も進行中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください