2017年5月4日木曜日

Linux上にVirtualBoxをインストールする

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

Linux上にVirtualBoxをインストール
Linux上に、VirtualBoxをインストールする方法をまとめておく。VirtualBoxをインストールすると、仮想マシンを作成しLinux上でWindowsや、他のディストリビューションのLinuxを使えるようになる。

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

インストール環境
  • 仮想環境: VirtualBox
  • ホストOS: Arch Linux x86_64

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やUSB 3.0機器をつなぐ場合、エクステンションパックが必要になる。エクステンションパックには、その他、プロプライエタリなドライバ群が入っている。
$ packer -S virtualbox-ext-oracle


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


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

VirtualBoxの起動
以上で、VirtualBoxのインストールは完了。デスクトップ環境として、GNOMEを使用していれば「アクティビティ」から起動できる。


VirtualBoxの起動に成功すると、VirtualBoxが立ち上がる。



ゲストOSのインストール
ゲストOSとしてWindows 10を使用して、仮想マシン上にインストールしてみた。インストールの方法は、「VirtualBoxにWindows 10をインストール | 普段使いのArch Linux」の記事にまとめた。


参考:
[1]VirtualBox - ArchWiki

スポンサーリンク

スポンサーリンク

0 件のコメント:

コメントを投稿