2016年4月17日日曜日

VirtualBoxでLinuxマシンにWindowsをインストール

VirtualBox仮想マシンにWindowsをインストール
仮想マシンインストール関連記事
仮想環境の関連記事は、「Linuxマシン上でWindowsを使う」のページにまとてあります。

はじめに
Linux環境にVirtualBoxをインストールし仮想マシンを作成し、ゲストOSをインストールする方法をまとめておく。ゲストOSとしては、Windowsをインストールした。

Windows環境のエミュレータとしてWineがあるが、動作しないソフトも多い。Linuxを使っていて、どうしてもWindows向けのソフトを使わなければならない時がある。そこで、Linux上の仮想マシンにWindowsをインストールし、Linuxマシン上でWindowsを使えるようにした。

今回インストールするVirtualBoxは、Oracleが提供する仮想マシン作成ソフト。他に有名な仮想マシンエミュレータとして、VMwareがある。VMwareがプロプライエタリであるのに対して、VirtualBoxはGNUライセンスでソースが配布されている。VirtualBoxは、Linux、MacやWindowsなどのOS上で動作する。

また、QEMU/KVMと違い、VirtualBoxは仮想マシン作成ソフトウェアとして単独で動作するため、インストールが簡単である。一方で、今回試した環境ではUSBで大きなファイルが送れないなどの不具合もあった。QEMU/KVM環境では、問題なくUSBを使うことができるので、USBで接続する機器を仮想マシン上で使いたい場合は、QEMU/KVMがオススメ。

環境
  • 仮想環境: VirtualBox
  • ゲストOS: Windows XP Home Edition 32 bit
  • ホストOS: Arch Linux x86_64
VirtualBoxを使っていれば、ホストOSはUbuntu、Windows、Macなどを使っても手順は同じになる。

CPUのサポート確認とBIOSの設定
CPUの仮想化支援の確認
64bitのゲストOSやマルチコアCPUの機能を使うためには、CPUが仮想化支援に対応している必要がある。Intel製であれば、Intel VT-x (Virtualization Technology)、AMD製であればAMD-V (AMD Virtualization) と呼ばれる機能が必要である。

確認はターミナルからできる。次のコマンドで何か表示されれば、対応していることになる。64bitのゲストOSやマルチコアCPUの機能を使用しなければ、Intel VT-xやAMD-Vは必要ない。
$ grep -E "(vmx|svm|0xc0f)" --color=always /proc/cpuinfo

flags  : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush 
dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts 
rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl 
vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes 
xsave avx f16c rdrand lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid 
fsgsbase smep erms xsaveopt
...

またメーカーのウェブページからも確認できる。インテル バーチャライゼーション・テクノロジー リストまたは、AMD 公式ページから確認する。

BIOSの設定
CPUがIntel VT-xまたは、AMD-Vに対応していたとしても、BIOSの設定でこの機能が無効にされていることがある。ASUS P8Z77-M PROの場合、買ったときから設定を変更した覚えはないが、確認したら無効になっていた。以下の手順でIntel VT-xを有効にした。それぞれのマザーボードで項目の名称等が変わっているかもしれないが、取説等を見れば設定箇所が載っている。AMD-VはBIOSで無効にできないので、常に有効になっているらしい。

パソコン起動時に、Delキーを押してBIOS(UEFI BIOS)画面を起動する。 Advanced Modeをクリックして、Advanced Modeに入る。



Advancedのタブから「CPU Configuration」をクリック。


Intel Virtualization Technologyの項目がDisableになっているので、クリックしてEnableに変更する。


Exitをクリックして、さらにSave Changes & Resetを選択する。


これで、CPUの仮想化支援機能が有効になる。

VirtualBoxのインストール
パッケージマネージャーから、virtualboxをインストールする。Arch Linuxでは、pacmanからvirtualboxをインストールできる。virtualboxの関連モジュールのパッケージも、合わせてインストールする。

もし、qt4がインストールされていなかったら、qt4もインストールする。Arch Linuxのデフォルトのカーネルを使っていない場合は、virtualbox-guest-modules-archの代わりに、virtualbox-host-dkmsをインストールする。
# pacman -S virtualbox virtualbox-guest-modules-arch

...

PCを再起動すると、VirtualBox関連のモジュールが読み込まれる。lsmodで確認すると、以下のようにvboxdrv及び関連モジュールが読み込まれていることが確認できる。もし、読み込まれていなかったら、VirtualBox使用前に手動で、modprobeコマンドで読み込む。
$ lsmod | grep  vbox

vboxnetflt             28672  0
vboxnetadp             28672  0
vboxpci                24576  0
vboxdrv               385024  3 vboxnetadp,vboxnetflt,vboxpci


モジュール関連のアップデート
Arch Linuxの標準のカーネルを使っていれば、特に設定の必要はない。VirtualBox関連のモジュールは、カーネルがアップグレードされると自動で更新されるようになっている。カーネルがアップグレードされると、以下のようにPre/Post Transactionで、dkmsコマンドが実行される。
# pacman -Syu

:: Synchronizing package databases...
...
 linux-4.5-1-x86_64                      58.0 MiB  6.41M/s 00:09 [####################################] 100%
...
:: Running pre-transaction hooks...
(1/1) Remove DKMS modules
==> dkms -q remove -q -m vboxhost -v 5.0.16_OSE -k 4.4.5-1-ARCH
...
:: Running post-transaction hooks...
(1/1) Install DKMS modules
==> dkms -q install -m vboxhost -v 5.0.16_OSE -k 4.5.0-1-ARCH

カスタムカーネルを使っている場合は、モジュールのアップデートの設定が必要になる。詳しくは、「VirtualBox - ArchWiki」を参照する。

その他の設定
VirtualBoxを使うユーザーをvboxusersグループに追加する。「ユーザー名」は使っているユーザー名に変える。追加が終わったら、OSを再起動しておく。
# gpasswd -a ユーザー名 vboxusers

Guest additionsディスクをインストールする。このイメージファイルは、後でゲストOSからインストールすることになる。
# pacman -S virtualbox-guest-iso

エクステンションパックも、インストールしておく。USB 2.0機器をつなぐ場合、エクステンションパックが必要になる。エクステンションパックには、その他、プロプライエタリなドライバ群が入っている。
$ packer -S virtualbox-ext-oracle


VirtualBoxの「ファイル」→「環境設定」→「拡張機能」を選択すると、正しくインストールできていることが確認できる。


もし、インストールされていなかったら「VirtualBoxでエクステンションパックがインストールされない時の対処法 | 普段使いのArch Linux」に従って、エクステンションパックをインストールする。

仮想マシンにWindowsをインストール
ゲストOSのインストール
VirtualBoxがインストールできたら、ゲストOSのWindows XPをインストールする。まず、アクティビティ等からVirtualBoxを起動する。VirtualBoxが起動したら、「新規」をクリックする。


「仮想マシンの作成」ウィンドウが開くので、インストールしたいOSの「タイプ」と「バージョン」を選択。さらに、「名前」を適当に入力して、「次へ」をクリック。


適当なメモリーサイズを割り当てて、「次へ」をクリック。


新規に仮想マシンを作成するので、「仮想ハードディスクを作成する」にチェックして「作成」をクリック。


VirtualBoxオリジナルの形式の「VDI」を選択して、「次へ」をクリック。


「固定サイズ」を選択して、「次へ」をクリック。「可変サイズ」では使用したスペースの分だけ、ゲストOSのイメージファイルのサイズが大きくなるため、ディスク領域を節約できる。しかし、動作が重くなることがあるとのことなので、ここでは「固定サイズ」を選択した。


適当な仮想ディスクのサイズを割り当てる。「固定サイズ」を選択しているので、ここで割り当てたサイズのファイルが作成される。長期間ゲストOSを使用する予定であれば、割当サイズは大きめにしておいたほうが良い。


「作成」を選択すると、仮想ハードディスクのファイルが作成される。


これで、仮想マシンのイメージファイルの作成が完了。次に、ゲストOSのWindows XPをインストールする。
左のカラムで作成した仮想マシンが青く選択された状態で、「設定」をクリック。


設定ウィンドウで、「ストレージ」を選択し、ストレージツリーから「空」を選択。


CDのマークをクリックして、PCに接続している光学ドライブ(ここでは「ホストドライブ PIONEER BD-RW BDR-207M (sr0)」)を選択し、「OK」。


ストレージのペインで、光学ドライブが追加されていることが確認できる。


次に、光学ドライブにWindowsのインストーラーCDを入れ、VirtualBoxのウィンドウの「起動」をクリックする。インストーラーCDが読み込まれ、Windowsのインストールが始まる。


インストーラーの指示に従って、インストールを進める。NTFSでフォーマットを行った。


さらに、インストールを進める。


プロダクトキーの入力やライセンス認証、ユーザー名の入力等を行うとWindows XPが起動する。


ゲストOSのWindowsが起動したら、Guest Addition Discのインストールを行う。VirtualBoxのウィンドウ上のメニューバーの「デバイス」をクリックして、出てきたメニューの中の「Guest Additions CD イメージの挿入」を選択する。



以下のように、ウィザードが起動するので「Next」をクリック。


デフォルトのインストール先のまま、「Next」。


「3D Support」は選択せず、「Install」をクリック。


いくつか警告画面が出てくるが、すべて「続行」を選択。


「Reboot now」を選択したまま「Finish」をクリックすれば、Guest Additions Discのインストールが、完了する。


これで、VirtualBox上にWindows XPがインストールされた。通常のWindows XPと同様に、必要に応じてService Packの適用や、Windows Updateを行う。



参考:
[1]VirtualBox - ArchWiki
[2]Dynamic Kernel Module Support - ArchWiki

スポンサーリンク

スポンサーリンク

0 件のコメント:

コメントを投稿