ここではOracleから提供されているVirtualBoxについて記す。
Guest Additionsを追加でインストールしておくと、ホストキーでホストOS、ゲストOSの間を切り替えることなく透過的にマウスが移動できる、ホストOS、ゲストOS間でクリップボードの内容がやりとりできるなどの付加機能が使えるようになる。
VirtualBox上のFedora系OS(RedHat,CentOSなど)で、Guest Additionsをインストールすると、そのままでは失敗するよう(CentOS 6では失敗した)。パス設定に関する環境変数値の問題らしい[4]。
$ su - # yum install gcc kernel-devel kernel-headers (前略) Dependencies Resolved ============================================================== Package Arch Version Repository Size ============================================================== Installing: gcc i686 4.4.4-13.el6 base 8.1 M kernel-devel i686 2.6.32-71.29.1.el6 updates 6.4 M kernel-headers i686 2.6.32-71.29.1.el6 updates 991 k Installing for dependencies: cloog-ppl i686 0.15.7-1.2.el6 base 93 k cpp i686 4.4.4-13.el6 base 3.4 M glibc-devel i686 2.12-1.7.el6_0.5 updates 961 k glibc-headers i686 2.12-1.7.el6_0.5 updates 600 k mpfr i686 2.4.1-6.el6 base 153 k ppl i686 0.10.2-11.el6 base 1.3 M Transaction Summary ============================================================== Install 9 Package(s) Upgrade 0 Package(s) Total download size: 22 M Installed size: 56 M Is this ok [y/N]: y Downloading Packages: (1/9): cloog-ppl-0.15.7-1.2.el6.i686.rpm | 93 kB 00:00 (2/9): cpp-4.4.4-13.el6.i686.rpm | 3.4 MB 00:00 (3/9): gcc-4.4.4-13.el6.i686.rpm | 8.1 MB 00:00 (4/9): glibc-devel-2.12-1.7.el6_0.5.i686.rpm | 961 kB 00:00 (5/9): glibc-headers-2.12-1.7.el6_0.5.i686.rpm | 600 kB 00:00 (6/9): kernel-devel-2.6.32-71.29.1.el6.i686.rpm | 6.4 MB 00:00 (7/9): kernel-headers-2.6.32-71.29.1.el6.i686.rpm | 991 kB 00:00 (8/9): mpfr-2.4.1-6.el6.i686.rpm | 153 kB 00:00 (9/9): ppl-0.10.2-11.el6.i686.rpm | 1.3 MB 00:00 ------------------------------------------------------------------ Total 8.8 MB/s | 22 MB 00:02 (後略) ※なぜか下記パッケージもインストールしないとうまくいかない。 Guest Additionsインストール時にこのコマンドが表示されるが実行できていないよう # yum install kernel-devel-2.6.32-71.el6.i686 (前略) Installed: kernel-devel.i686 0:2.6.32-71.el6 Complete!
# ls /usr/src/kernels 2.6.32-71.29.1.el6.i686 2.6.32-71.el6.i686 # KERN_DIR="/usr/src/kernels/2.6.32-71.29.1.el6.i686" # export KERN_DIR # printenv KERN_DIR /usr/src/kernels/2.6.32-71.29.1.el6.i686
# /media/VBOXADDITIONS_4.1.2_73507/VBoxLinuxAdditions.run Verifying archive integrity... All good. Uncompressing VirtualBox 4.1.2 Guest Additions for Linux........ VirtualBox Guest Additions installer Removing installed version 4.1.2 of VirtualBox Guest Additions... Removing existing VirtualBox DKMS kernel modules [ OK ] Removing existing VirtualBox non-DKMS kernel modules [ OK ] Building the VirtualBox Guest Additions kernel modules Building the main Guest Additions module [ OK ] Building the shared folder support module [ OK ] Building the OpenGL support module [ OK ] Doing non-kernel setup of the Guest Additions [ OK ] Starting the VirtualBox Guest Additions Installing the Window System drivers Installing X.Org Server 1.7 modules [ OK ] Setting up the Window System to use the Guest Additions [ OK ] You may need to restart the hal service and the Window System (or just restart the guest system) to eneble the Guest Additions. Installing graphics libraries and desktop services componen[ OK ]
設定-ストレージ-IDEコントローラ→CD/DVDの追加→空のドライブ 属性右のディスクアイコン→ドライブ名選択 パススルーチェックON
【例】容量1.44MBの空のフロッピーディスクイメージ作成[3] $ mkfs.msdos -C ~/fd.img 1440
ゲストOSのディスク(パーティション)容量が少なくなっても、ホストOSの環境が許せばディスクとパーティションを拡張して容量不足を解消することができる[5][8][9]。
仮想ディスクのサイズをいきなり拡張してもよいが、バックアップを残しておく意味で複製を作ってそちらを操作する。なお、スナップショットを作っていると拡張しても拡張前の容量しか認識しないので、この場合はスナップショットを削除するかあるいは複製を利用することになる[10]。
複製操作はVirtualBoxの仮想メディアマネージャで、[ハードディスク(D)]タブを選択し、拡張対象ディスクを選択して[Copy]ボタンをクリック。または端末上で以下のコマンドを実行。
$ VBoxManage clonehd 仮想ディスク名
端末で以下のコマンドを実行する[1 Chap.8 VBoxManage modifyhd]。
【書式】指定した仮想ディスクのサイズを指定値(MB単位)に変更 VBoxManage modifyhd 仮想ディスクファイル名 --resize 数値 【書式】指定した仮想ディスクのサイズを指定値(バイト単位)に変更 VBoxManage modifyhd 仮想ディスクファイル名 --resizebyte 数値
【例】25GB(25600MB)に拡張 $ VBoxManage modifyhd pc-xp.vdi --resize 25600 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
通常、ゲストOS上でゲストOSのブートパーティションを編集することはできないので、パーティション編集ツールgpartedのディスクイメージからgpartedを起動し、パーティションを編集する。
仮想マシンの設定の[ストレージ]で、拡張したディスクをストレージツリー(S)のSATAなどに、gpartedのisoイメージをIDEなどに追加。
ただ、最新のgparted(2014/04/06現在、0.18.0-1)では最初のメニューは出るものの、その後の起動が進まない。0.10.0-3だと動作した。
仮想マシンを他のホストに移動(コピー)する際、単に仮想ディスクファイルをコピーするだけではだめらしく、仮想ディスクを複製する必要がある?[7]
Android 4.4インストールCDのISOイメージを使って、VirtualBox仮想マシンにAndroidをインストールすることができる。詳細は仮想マシン - Android関係。
Ubuntu 14.04 64bit環境にてビルドしたものをインストール[13]
$ sudo apt-get install git-core gitk git-gui subversion curl
depot_toolsを取得 $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git depot_toolsをPATHを追加 $ export PATH=`pwd`/depot_tools:"$PATH"
$ cd /tmp $ cat > ./sudo_editor <<EOF #!/bin/sh echo Defaults \!tty_tickets > \$1 # Entering your password in one shell affects all shells echo Defaults timestamp_timeout=180 << \$1 # Time between re-requesting your password, in minutes EOF chmod +x ./sudo_editor sudo EDITOR=./sudo_editor visudo -f /etc/sudoers.d/relax_requirements
Windows 7 Enterprise上でWindows 8 EnterpriseへのUpgradeを実行したところ、失敗してWindows 7に戻ってしまった。Windows8のアップグレードアシスタントでチェックすると。問題点の一つに「プロセッサがNXをサポートするよう設定されていない。このままだとUpgradeを行ってもWindow7にロールバックされてしまう」との情報が出た。VirtualBox仮想マシンでNXを有効化するには、仮想マシン右クリック[設定]で設定を開き、[システム]の[プロセッサ(P)]タブで「拡張機能:PAE/NXを有効化(E)」のチェックボックスをONにする。
それでもまだ失敗。Upgrade途中「パーソナル設定」が表示され配色を選択待ちしている画面が表示されている時、VitrualBox仮想マシン画面をアクティブにしてマウスポインタを仮想画面内に入れるとブルースクリーン画面となった。「DRIVER IRQL NOT LESS OR EQUAL」というメッセージが表示されていて自動的に再起動がかかる、ということが数度繰り返され、最終的には「自動修復でPCを修復できませんでした [詳細オプション]を押してその他のオプションでPCの修復を試すか、[シャットダウン]を押してPCの電源を切ってください。 ログ ファイル: D:¥Windows¥System32¥Logfiles¥Srt¥SrtTrail.txt」と記載されたブルースクリーン画面になった。[詳細オプション]に進み、[続ける]をクリックすると再び同じ事が繰り返された。
[詳細オプション]で[電源を切る]を選択して仮想マシンOFF。仮想マシン右クリック[設定]で設定画面を開き、[一般]でOSの選択を[Windows7]から[Windows8]に変更。しかし、状況は変わらず。
(前項実施前後で変わらなかったのかも知れないが)今度はマウスポインタを仮想マシン画面内に入れないようにして、アクセスキー(Alt + キー)でインストールを進めた。今度はインストール自体は成功したらしい。デスクトップ画面が出るようになった。しかし、マウスポインタを画面内に入れた途端ブルースクリーン画面になる状況は同じ。
以下のように「USBサブシステムのアクセスに失敗した」こと示す警告ダイアログが表示された場合、を現在ログイン中ユーザをvboxusersグループに追加する[6]。
# vboxusrsグループが存在するか確認 $ grep vboxusers /etc/group vboxusers:x:131: # もしvboxusrsグループがなければ作る $ sudo groupadd vboxusers # VirtualBoxを使うユーザをvboxusrsグループ追加 $ sudo usermod -G vboxusers VirtualBoxを使うユーザ # または $ sudo gpasswd -a vboxusers VirtualBoxを使うユーザ # vboxusrsグループに追加されたことを確認 $ grep vboxusers /etc/group vboxusers:x:131:VirtualBoxを使うユーザ
ホストOSの領域をゲストOSで共有する設定を行った時、ゲストOS一般ユーザでアクセスできるようにしようと思ってユーザホーム領域配下にマウントをかけようとしたが、「/sbin/mount.vboxsf: mounting failed with the error: Protocol error」というエラーがでてマウントできなかって件の対処方法について(参考:[11])。
ホスト:Windows7 Pro. SP1 64bit ゲスト:Ubuntu 12.04 32bit VirtualBox:4.3.12 r93733 共有フォルダ名:kudou マウント先:/home/kudou/Shared ユーザのuid、gidを調べる root@ubuntu:~# grep kudou/etc/passwd kudou:x:1000:1000:kudou,,,:/home/kudou:/bin/bash マウント実行 root@ubuntu:~# mount -t vboxsf -o defaults,uid=1000,gid=1000 kudou /home/kudou/Shared /sbin/mount.vboxsf: mounting failed with the error: Protocol error
VirtualBoxの共有フォルダ設定で、「自動マウント」がONになっていたことが原因とのこと。ゲストOSを一旦シャットダウンし、OFFにしてから起動し再実行したらマウントできた。fstabに書いてmount -a
でもOK。
kudou /home/kudou/Shared vboxsf defaults,uid=1000,gid=1000 0 0
Ubunbu を12.04から14.04にUpgradeしたらマウントできなくなった。「自動マウント」をONにすると、/media/sf_共有フォルダ名
に自動マウントされるので、それからユーザホームにシンボリックリンクを張ればいいとの情報[12]があったのでやってみたが、作ったシンボリックリンクにアクセスしようとすると、「許可がありません」と出た。sudo付けてやってみたが、「〜が作成できません。プロトコルエラー」と出るのは変わらず。