memo.xight.org

日々のメモ

カテゴリ : VirtualBox

1ページ目 / 全1ページ

VirtualBox + sparsebundle

Summary

VirtualBox + sparsebundle[2016-02-23-1]
VBoxManageのコマンドが変更になった。

VirtualBoxの仮想ディスクを圧縮する[2015-08-26-3] と合わせ技

SDelete.exe, または dd で0埋めしてから
VBoxManage list hdds
VBoxManage modifymedium PATH/TO/TARGET.vdi --compact
hdiutil eject /dev/diskXsX
hdiutil compact PATH/TO/TARGET.sparsebundle

VirtualBoxのインストール中、「VirtualBox.pkgを検証中」で止まる問題

Summary

VirtualBoxをインストールしている途中、
「VirtualBox.pkgを検証中」で止まってしまう。
Verifying "VirtualBox.pkg"...

環境は, VirtualBox 5.1.4, OS X El Capitan 10.11.6

対策

sudo installer -package /Volumes/VirtualBox/VirtualBox.pkg -target /


Reference

virtualbox.org - View topic - [INSTALL] Verifying "VirtualBox.pkg"... never clears -- El Cap 10.11.4
https://forums.virtualbox.org/viewtopic.php?f=8&t=77122

via

Qiita - verytired - 2016-06-02 - VirtualBoxをインストール中、「VirtualBox.pkgを検証中」から進まない時の対応
http://qiita.com/verytired/items/20fcb447709945496fcd

VirtualBox + sparsebundle

Summary

TimeMachine で仮想ディスクをバックアップすると、
仮想ディスクを一部変更しただけでバックアップし直しになる。
バックアップの時間がかかるし、TimeMachineのディスク使用効率が悪い。

sparsebundle ファイルを利用すれば、
サイズが大きいファイルを小さなブロック単位で扱えるようになるので、
仮想ディスクの差分バックアップが取れるようになる。
バックアップの時間短縮になるし、TimeMachineのディスク使用効率が良くなる。

sparsebundle ファイルの作成

Disk Utility.app で Blank Imageを作成する。
Image Format で sparse bundle disk image を指定して sparsebundle ファイルを作成。
作成した sparsebundle ファイルをマウントする。
/Volume/XXXXX に仮想ディスクファイルをコピー。

VirtualBoxのVirtual Media Managerで仮想ディスクファイルをRelease, Remove

UUIDが重複している旨のエラーが発生するため、
VirtualBoxのVirtual Media Managerで仮想ディスクファイルをRelease, Removeする。
仮想マシンの Setting... -> Storage から HDDをマウントし直し。

動作確認と元ファイル削除

sparsebundle 側の仮想ディスクで仮想マシンが動作することを確認し、
元の仮想ディスクファイルを削除

sparsebundleファイルをコンパクトにする

実使用容量と sparsebundleファイルのサイズに差がでてきたら、
hdiutil を使ってコンパクトにする。

hdiutil compact TARGET.sparsebundle


VirtualBoxの仮想ディスクを圧縮する[2015-08-26-3] と合わせ技

SDelete.exe, または dd で0埋めしてから
VBoxManage modifyhd list
VBoxManage modifyhd PATH/TO/TARGET.vdi --compact
hdiutil eject /dev/diskXsX
hdiutil compact PATH/TO/TARGET.sparsebundle


Reference

404 Blog Not Found - 2011-07-07 - Sparse Bundle Image ノススメ
http://blog.livedoor.jp/dankogai/archives/51704256.html

Macな小心者のタウンロード - 2012-04-24 - dmgファイルについてのまとめと、「.sparseimage」と「.sparsebundle」について
http://ipodtouchmtb.blogspot.jp/2012/04/dmgdmgsparseimagesparsebundle.html

VirtualBoxの仮想ディスクを圧縮する

Summary

VirtualBox の肥大化する仮想ディスクの圧縮方法。

1. ゲストOS上で仮想ディスクの空きスペースを0埋め
2. ホストOS上でVBoxManageを使って圧縮

1. 仮想ディスクの空きスペースを0埋め


ゲストOSがWindowsの場合は SDelete を使う

> sdelete.exe -z c:


ゲストOSがLinuxの場合は dd を使う

$ dd if=/dev/zero of=zero bs=4k; \rm zero


2. ホストOS上でVBoxManageを使って圧縮

-- HDDのUUDIを取得
$ VBoxManage list hdds


HDDを指定して圧縮

$ VBoxManage modifyhd [UUID] --compact


Reference

SDelete
https://technet.microsoft.com/ja-jp/sysinternals/bb897443(en-us).aspx

VirtualBox Mania - 仮想ディスクの圧縮
http://vboxmania.net/content/%E4%BB%AE%E6%83%B3%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%81%AE%E5%9C%A7%E7%B8%AE

vmdkファイルをvdiファイルに変換する

Summary

複数に分割されている vmdk ファイルを 1つのvdiファイルに変換する方法。

/Applications/VirtualBox.app/Contents/MacOS/VBoxManage を利用する
Macbook Air (Mid 2011) で 22GBを変換するのに10分位かかった。
$ VBoxManage clonehd --format VDI /path/to/disk.vmdk /tmp/disk.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'VDI'. UUID: ffffffff-ffff-ffff-ffff-ffffffffffff


Reference

Namareba食べたい - 2013-04-24 - VMDKからVDIへの変換
http://namareba.hatenablog.com/entry/2013/04/24/040656

VMWare Fusion から VirtualBox に移行

Summary

VMWare Fusion 8 がリリースされた。
仮想環境を VirtualBoxに一本化したいので、
VMWare Fusion 7.1.2 から VirtualBox 5.0.2 に移行する。

手順

1. VirtualBoxの導入
2. VirtualBoxにExtensionをインストール
3. VMwareの仮想マシンでHDDをSCSIからIDEへ変更する
4. 仮想マシンをovftoolを使ってova形式で書き出し
5. ova形式の仮想マシンをVirtualBoxへインポート
6. 仮想WindowsマシンへGuest Additionsをインストール
7. 仮想Windowsマシンのライセンス認証の取り直し
8. 仮想Windowsマシンの VMware Toolsをアンインストール

1. VirtualBoxの導入

$ brew cask install virtualbox


2. VirtualBoxにExtensionをインストール

$ brew cask install virtualbox-extension-pack
[/src]

extension-packがインストールされなかったら…

$ sudo VBoxManage extpack install --replace /opt/homebrew-cask/Caskroom/virtualbox-extension-pack/5.0.2-102096/Oracle_VM_VirtualBox_Extension_Pack-5.0.2-102096.vbox-extpack


4. 仮想マシンをovftoolを使ってova形式で書き出し

/Applications/VMware\ Fusion.app/Contents/Library/VMware\ OVF\ Tool/ovftool を利用する
Macbook Air (Mid 2011) で 22GBの仮想ディスクを変換するのに約16分かかった。

$ ovftool --acceptAllEulas /path/to/example.vmwarevm/example.vmx /tmp/example.ova


エラーでインポートできず

Failed to import appliance /Users/yoshiki/windows10.ova.

Error reading "/Users/yoshiki/windows10.ova": Host resource of type "Other Storage Device (20)" is supported with SATA AHCI controllers only, line 47.

Result Code: VBOX_E_FILE_ERROR (0x80BB0004)
Component: ApplianceWrap
Interface: IAppliance {8398f026-4add-4474-5bc3-2f9f2140b23e}


OVAファイルの展開とOVFファイルの編集

OVAファイルは tarアーカイブなので、展開する。

$ tar xvf windows10.ova
$ windows10.ovf
$ windows10.mf
$ windows10-disk1.vmdk


OVFファイルの編集

47行目でエラーが発生していたので、コメントアウト。
<!--
  <Item>
    <rasd:Address>0</rasd:Address>
    <rasd:Description>SATA Controller</rasd:Description>
    <rasd:ElementName>sataController0</rasd:ElementName>
    <rasd:InstanceID>3</rasd:InstanceID>
    <rasd:ResourceSubType>vmware.sata.ahci</rasd:ResourceSubType>
    <rasd:ResourceType>20</rasd:ResourceType>
  </Item>
-->


SHA1ハッシュの取得と .mf ファイルの更新

これをやっておかないと、仮想ディスクイメージを
インポートする時間待たされたあとにがエラーが発生する。

SHA1ハッシュの取得

$ sha1sum windows10.ovf
8f5a3bd15ea17829ac76cbbcdb57c9a4ee3a7ab5  windows10.ovf


.mf ファイルの更新

SHA1(windows10.ovf)= <.ovfのSHA1ハッシュ>
SHA1(windows10-disk1.vmdk)= <.vmdkのSHA1ハッシュ> 


5. ova形式の仮想マシンをVirtualBoxへインポート

VBoxManage を利用してインポート
GUIからインポートも可能だが、CUIからもインポート可能
$ CBoxManage import windows10.ovf


6. 仮想WindowsマシンへGuest Additionsをインストール

仮想Windowsマシンに光学ディスクをインストールしてから。

Guest Additionsをインストールすると、
ディスプレイの解像度で1920x1080が設定可能になる。
Mouse Integraion, Auto Scaling が可能になる。
Shared Folderの設定が可能になる。

Reference

身の回り4畳半近辺の日記 - 2014-10-19 - VMware Fusion 5からVirtualBox 4.3への移行
http://d.hatena.ne.jp/b3g/20141019

Stack Overflow - Export VM as a OVF file from VMware Fusion
http://stackoverflow.com/questions/20530464/export-vm-as-a-ovf-file-from-vmware-fusion

Qiita - vmware - CD/DVDデバイスが原因でESXiへのデプロイに失敗するOVA/OVFファイルの修正方法
http://qiita.com/orangain/items/59202b48809468004bea

VirtualBox の Shared folder のアクセス権設定

Summary

VirtualBox の Shared folder を設定すると、
/media/sf_FOOBAR にマウントされる。

owner が root:vboxsf なので、そのままだと、一般ユーザはアクセスできない。
以下コマンドで、ユーザを vboxsf グループに所属させれば、ディレクトリ内の読み書きが可能

$ sudo usermod -aG vboxsf $(whoami)


via

linux - Permission denied when accessing VirtualBox shared folder when member of the vboxsf group - Super User
https://superuser.com/questions/307853/permission-denied-when-accessing-virtualbox-shared-folder-when-member-of-the-vbo

vagrant の Shared folder が共有できない

Summary

vagrant up の際、以下メッセージが表示される。
そして、vagrant の Shared folder が共有できない。

The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mkdir -p /vagrant

Stdout from the command:



Stderr from the command:

sudo: no tty present and no askpass program specified

vbox の問題のようなので、 vbox をリビルドする。

# aptitude install build-essential module-assistant
# aptitude install linux-headers-amd64
# export KERN_DIR=/usr/src/linux-headers-X.X.X-X-amd64
# /etc/init.d/vboxadd setup
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.

Building the main Guest Additions module ...done.
Building the shared folder support module ...done.
Building the OpenGL support module ...done.
Doing non-kernel setup of the Guest Additions ...done.
You should restart your guest to make sure the new modules are actually used

しかし、改善されない。
未解決...

Reference

シドニーで働くプログラマーのBLOG - 2012-05-22 - Vagrantでmountエラーで、フォルダがShareされない
http://blog.mizoshiri.com/archives/1390

メモ超 - 2010-12-04 - CentOS5へのVBoxLinuxAdditionsインストール
http://d.hatena.ne.jp/calcul8/20101204/1291457686

VBoxGuestAdditions の update

Summary

VirtualBox と Guest Additions のバージョンに差異がある場合、
vagrant up 時に、以下の様なメッセージが表示される。

[default] The guest additions on this VM do not match the installed version of
VirtualBox! In most cases this is fine, but in rare cases it can
cause things such as shared folders to not work properly. If you see
shared folder errors, please update the guest additions within the
virtual machine and reload your VM.

Guest Additions Version: 4.1.8
VirtualBox Version: 4.2

/opt/VBoxGuestAdditions-4.1.8 と Guest Addtions のバージョンが古いようだ。
これを新しいバージョンに更新する。

ホスト側で VirtualBox.app 内の isoをマウント

/Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso をコピー

ゲスト側で VBoxGuestAdditions.iso をマウント

$ sudo mount /dev/cdrom /media/cdrom
[sudo] password for vagrant:
mount: block device /dev/sr0 is write-protected, mounting read-only

これで ゲスト側の /media/cdrom 内から VBoxGuestAdditions.iso が参照できる。

VBoxGuestAdditions の更新

$ cd /media/cdrom0
$ ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.2.18 Guest Additions for Linux............
This program must be run with administrator privileges.  Aborting
vagrant@debian:/media/cdrom0$ sudo ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.2.18 Guest Additions for Linux............
VirtualBox Guest Additions installer
Removing installed version 4.1.8 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.

Building the main Guest Additions module ...done.
Building the shared folder support module ...done.
Building the OpenGL support module ...done.
Doing non-kernel setup of the Guest Additions ...done.
You should restart your guest to make sure the new modules are actually used

Installing the Window System drivers ...fail!
(Could not find the X.Org or XFree86 Window System.)

VBoxGuestAdditions の更新確認

$ ls /opt
VBoxGuestAdditions-4.2.18
$ /opt/VBoxGuestAdditions-4.2.18/bin/VBoxControl --version
4.2.18r88780

VirtualBoxの再起動

ホスト側で vagrant halt または ゲスト側で sudo shutdown -h now
ホスト側で vagrant up

これで、 VBoxGuestAdditions が更新できた。