「VirtualBox」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
12行目: 12行目:
 
[[ru:VirtualBox]]
 
[[ru:VirtualBox]]
 
[[zh-CN:VirtualBox]]
 
[[zh-CN:VirtualBox]]
{{Related articles start (日本語)}}
+
{{Related articles start}}
 
{{Related4|PhpVirtualBox}}
 
{{Related4|PhpVirtualBox}}
 
{{Related4|Moving an existing install into (or out of) a virtual machine}}
 
{{Related4|Moving an existing install into (or out of) a virtual machine}}
19行目: 19行目:
 
'''VirtualBox''' は [[VMware]] に似た仮想 PC エミュレータです。継続的に開発が行われており、新しい機能が日夜追加されています。例えば、バージョン 2.2 では Linux と Solaris をゲストにした OpenGL 3D アクセラレーションがサポートされました。VirtualBox には仮想マシンを管理するために [[Qt]] による GUI インターフェースや、[[Wikipedia:ja:SDL|SDL]] によるコマンドラインツールが用意されています。ゲスト OS によっては ''guest additions'' を使って、ファイルやクリップボードの共有・ビデオアクセラレーション・"シームレス"なウィンドウ統合モードなどのゲスト・ホストを統合する機能を使うことができます。
 
'''VirtualBox''' は [[VMware]] に似た仮想 PC エミュレータです。継続的に開発が行われており、新しい機能が日夜追加されています。例えば、バージョン 2.2 では Linux と Solaris をゲストにした OpenGL 3D アクセラレーションがサポートされました。VirtualBox には仮想マシンを管理するために [[Qt]] による GUI インターフェースや、[[Wikipedia:ja:SDL|SDL]] によるコマンドラインツールが用意されています。ゲスト OS によっては ''guest additions'' を使って、ファイルやクリップボードの共有・ビデオアクセラレーション・"シームレス"なウィンドウ統合モードなどのゲスト・ホストを統合する機能を使うことができます。
   
{{Wikipedia (日本語)|VirtualBox}}
+
{{Wikipedia|VirtualBox}}
   
 
== ホストとしてインストール ==
 
== ホストとしてインストール ==
25行目: 25行目:
 
=== コアパッケージのインストール ===
 
=== コアパッケージのインストール ===
   
まず、GPL ライセンス版の VirtualBox のセットは[[Official Repositories (日本語)|公式リポジトリ]]にある {{Pkg|virtualbox}} パッケージで[[pacman (日本語)|インストール]]できます。SDL とヘッドレスのコマンドラインツールが入っています。{{Pkg|virtualbox}} パッケージには依存パッケージとして {{Pkg|virtualbox-host-modules}} が付いてきます。
+
まず、GPL ライセンス版の VirtualBox のセットは[[Official Repositories|公式リポジトリ]]にある {{Pkg|virtualbox}} パッケージで[[pacman|インストール]]できます。SDL とヘッドレスのコマンドラインツールが入っています。{{Pkg|virtualbox}} パッケージには依存パッケージとして {{Pkg|virtualbox-host-modules}} が付いてきます。
   
[[Qt (日本語)|Qt]] による、グラフィカルインターフェース ({{ic|VirtualBox}} コマンド) を使うには、{{Pkg|qt4}} パッケージもインストールしてください。シンプルな SDL の GUI ({{ic|VBoxSDL}} コマンド) や {{ic|VBoxHeadless}} コマンドを使う場合 qt は必要ありません。
+
[[Qt|Qt]] による、グラフィカルインターフェース ({{ic|VirtualBox}} コマンド) を使うには、{{Pkg|qt4}} パッケージもインストールしてください。シンプルな SDL の GUI ({{ic|VBoxSDL}} コマンド) や {{ic|VBoxHeadless}} コマンドを使う場合 qt は必要ありません。
   
 
=== VirtualBox カーネルモジュールのインストール ===
 
=== VirtualBox カーネルモジュールのインストール ===
35行目: 35行目:
 
カーネルモジュールのバイナリ互換はモジュールがコンパイルされたカーネルの API に依存しています。問題はこれらのインターフェイスが他のバージョンのカーネルと異なる可能性があることです。互換性の問題によってやっかいなバグが出ないように、Linux カーネルを更新した時は毎回、そのインストールした Linux カーネルでカーネルモジュールを再コンパイルすることが推奨されています。これは VirtualBox カーネルモジュールのパッケージで Arch Linux のパッケージ作成者が実際にやっていることです: 新しい Arch Linux カーネルがリリースされる度に、Virtualbox は更新されるようになっています。
 
カーネルモジュールのバイナリ互換はモジュールがコンパイルされたカーネルの API に依存しています。問題はこれらのインターフェイスが他のバージョンのカーネルと異なる可能性があることです。互換性の問題によってやっかいなバグが出ないように、Linux カーネルを更新した時は毎回、そのインストールした Linux カーネルでカーネルモジュールを再コンパイルすることが推奨されています。これは VirtualBox カーネルモジュールのパッケージで Arch Linux のパッケージ作成者が実際にやっていることです: 新しい Arch Linux カーネルがリリースされる度に、Virtualbox は更新されるようになっています。
   
従って、[[公式リポジトリ]]のカーネルを使っているかカスタムカーネル (自分でコンパイルもしくは [[AUR (日本語)|AUR]] からインストールしたカーネル) を使っているかで、インストールするカーネルモジュールのパッケージは変わってきます。
+
従って、[[公式リポジトリ]]のカーネルを使っているかカスタムカーネル (自分でコンパイルもしくは [[AUR|AUR]] からインストールしたカーネル) を使っているかで、インストールするカーネルモジュールのパッケージは変わってきます。
   
 
==== ホストで公式カーネルを使っている場合 ====
 
==== ホストで公式カーネルを使っている場合 ====
53行目: 53行目:
 
{{Pkg|virtualbox-host-dkms}} パッケージはコンパイルを必要とするので、あなたの使っているカスタムカーネルに対応するカーネルヘッダーがインストールされていることを確認してください。インストールしていないと {{ic|Your kernel headers for kernel ''your custom kernel version'' cannot be found at /usr/lib/modules/''your custom kernel version''/build or /usr/lib/modules/''your custom kernel version''/source}} というエラーが発生します。
 
{{Pkg|virtualbox-host-dkms}} パッケージはコンパイルを必要とするので、あなたの使っているカスタムカーネルに対応するカーネルヘッダーがインストールされていることを確認してください。インストールしていないと {{ic|Your kernel headers for kernel ''your custom kernel version'' cannot be found at /usr/lib/modules/''your custom kernel version''/build or /usr/lib/modules/''your custom kernel version''/source}} というエラーが発生します。
 
* 自分でコンパイルしたカーネルを使っていて {{ic|make modules_install}} でモジュールをインストールする場合、フォルダ {{ic|/usr/lib/modules/''your custom kernel version''/build}} と {{ic|(...)/source}} にはあなたのカーネルソースへのシンボリックリンクが作成されます。これらは必要なカーネルヘッダーとして扱われます。カーネルソースを削除していない場合は、することはありません。
 
* 自分でコンパイルしたカーネルを使っていて {{ic|make modules_install}} でモジュールをインストールする場合、フォルダ {{ic|/usr/lib/modules/''your custom kernel version''/build}} と {{ic|(...)/source}} にはあなたのカーネルソースへのシンボリックリンクが作成されます。これらは必要なカーネルヘッダーとして扱われます。カーネルソースを削除していない場合は、することはありません。
* [[AUR (日本語)|AUR]] のカスタムカーネルを使う場合は、{{Pkg|linux-headers}} パッケージをインストールしてください。
+
* [[AUR|AUR]] のカスタムカーネルを使う場合は、{{Pkg|linux-headers}} パッケージをインストールしてください。
   
 
{{Pkg|virtualbox-host-dkms}} をインストールしたら、次のコマンドを実行してあなたのカスタムカーネルのためのカーネルモジュールを生成します:
 
{{Pkg|virtualbox-host-dkms}} をインストールしたら、次のコマンドを実行してあなたのカスタムカーネルのためのカーネルモジュールを生成します:
67行目: 67行目:
 
このサービスを有効にしない場合 {{Pkg|virtualbox-host-dkms}} パッケージが更新されても、VirtualBox モジュールは更新されないため上の {{ic|dkms install}} コマンドを手動で実行して最新の Virtualbox カーネルモジュールをコンパイルする必要があります。{{ic|dkms}} サービスが起動時に自動的にロードされるようになっていれば、再起動するだけで VirtualBox モジュールは再コンパイルされます。
 
このサービスを有効にしない場合 {{Pkg|virtualbox-host-dkms}} パッケージが更新されても、VirtualBox モジュールは更新されないため上の {{ic|dkms install}} コマンドを手動で実行して最新の Virtualbox カーネルモジュールをコンパイルする必要があります。{{ic|dkms}} サービスが起動時に自動的にロードされるようになっていれば、再起動するだけで VirtualBox モジュールは再コンパイルされます。
   
それでも、このデーモンを無効にしておきたいときは、[[mkinitcpio (日本語)|initramfs のフック]]を使って起動時に上の {{ic|dkms install}} コマンドを自動的に実行するよう設定することができます。VirtualBox モジュールを再コンパイルするには再起動が必要になります。このフックを有効にするには、[[Arch User Repository (日本語)|AUR]] から {{AUR|vboxhost-hook}} パッケージをインストールして {{ic|/etc/mkinitcpio.conf}} の HOOKS 行に {{ic|vboxhost}} を追加してください。もちろん、新しいカーネルの linux ヘッダーが存在しないとコンパイルは失敗します。
+
それでも、このデーモンを無効にしておきたいときは、[[mkinitcpio|initramfs のフック]]を使って起動時に上の {{ic|dkms install}} コマンドを自動的に実行するよう設定することができます。VirtualBox モジュールを再コンパイルするには再起動が必要になります。このフックを有効にするには、[[Arch User Repository|AUR]] から {{AUR|vboxhost-hook}} パッケージをインストールして {{ic|/etc/mkinitcpio.conf}} の HOOKS 行に {{ic|vboxhost}} を追加してください。もちろん、新しいカーネルの linux ヘッダーが存在しないとコンパイルは失敗します。
   
 
{{Tip|{{ic|dkms}} コマンドと同じように、VirtualBox モジュールの再コンパイル中に何か問題が起こると {{ic|vboxhost}} フックは通知を行います。}}
 
{{Tip|{{ic|dkms}} コマンドと同じように、VirtualBox モジュールの再コンパイル中に何か問題が起こると {{ic|vboxhost}} フックは通知を行います。}}
   
 
=== カーネルモジュールのロード ===
 
=== カーネルモジュールのロード ===
VirtualBox が使っている[[Kernel modules (日本語)|カーネルモジュール]]の中には {{ic|vboxdrv}} と呼ばれる必須モジュールがあり、仮想マシンを起動する前にロードする必要があります。Arch Linux 起動時に自動でロードすることも、必要なときだけ手動でロードすることもできます。
+
VirtualBox が使っている[[カーネルモジュール]]の中には {{ic|vboxdrv}} と呼ばれる必須モジュールがあり、仮想マシンを起動する前にロードする必要があります。Arch Linux 起動時に自動でロードすることも、必要なときだけ手動でロードすることもできます。
   
 
dkms でモジュールを使う場合、最初に、''modprobe'' によって使用されたカーネルモジュールの依存関係データベースを {{ic|depmod -a}} でアップデートしてください。DKMS パッケージ (e.g. {{Pkg|virtualbox-host-modules}}, {{Pkg| virtualbox-host-modules-lts}},...) を使わないユーザーはこのコマンドを実行する必要はありません、データベースは[https://projects.archlinux.org/svntogit/community.git/tree/trunk/virtualbox-host-modules.install?h=packages/virtualbox-modules インストール時に更新されるためです]。
 
dkms でモジュールを使う場合、最初に、''modprobe'' によって使用されたカーネルモジュールの依存関係データベースを {{ic|depmod -a}} でアップデートしてください。DKMS パッケージ (e.g. {{Pkg|virtualbox-host-modules}}, {{Pkg| virtualbox-host-modules-lts}},...) を使わないユーザーはこのコマンドを実行する必要はありません、データベースは[https://projects.archlinux.org/svntogit/community.git/tree/trunk/virtualbox-host-modules.install?h=packages/virtualbox-modules インストール時に更新されるためです]。
79行目: 79行目:
 
# modprobe vboxdrv
 
# modprobe vboxdrv
   
起動時に VirtualBox ドライバをロードするには、{{ic|/etc/[[Kernel modules (日本語)#ロード|modules-load.d]]}} ディレクトリにロードが必要なモジュールを全て含めた {{ic|*.conf}} ファイル (例: ''virtualbox.conf'') を追加してください:
+
起動時に VirtualBox ドライバをロードするには、{{ic|/etc/[[カーネルモジュール#ロード|modules-load.d]]}} ディレクトリにロードが必要なモジュールを全て含めた {{ic|*.conf}} ファイル (例: ''virtualbox.conf'') を追加してください:
   
 
{{hc|/etc/modules-load.d/virtualbox.conf|
 
{{hc|/etc/modules-load.d/virtualbox.conf|
96行目: 96行目:
 
=== ユーザー名を vboxusers グループに追加 ===
 
=== ユーザー名を vboxusers グループに追加 ===
   
利用するユーザー名を '''vboxusers''' [[Users and Groups (日本語)|グループ]]に追加してください。追加しなくても問題なく動作しますが、共有フォルダなどの任意機能を動かすためには必要です。新しいグループは自動では現在のセッションに適用されません; ユーザーは一度ログインしなおすか {{Ic|newgrp}} や {{Ic|sudo -u $USER -s}} などのコマンドで新しい環境を始める必要があります。現在のユーザーを {{ic|vboxusers}} グループに追加するには、次を入力してください:
+
利用するユーザー名を '''vboxusers''' [[ユーザーとグループ|グループ]]に追加してください。追加しなくても問題なく動作しますが、共有フォルダなどの任意機能を動かすためには必要です。新しいグループは自動では現在のセッションに適用されません; ユーザーは一度ログインしなおすか {{Ic|newgrp}} や {{Ic|sudo -u $USER -s}} などのコマンドで新しい環境を始める必要があります。現在のユーザーを {{ic|vboxusers}} グループに追加するには、次を入力してください:
   
 
# gpasswd -a $USER vboxusers
 
# gpasswd -a $USER vboxusers
106行目: 106行目:
 
=== エクステンションパック ===
 
=== エクステンションパック ===
   
VirtualBox 4.0 から、GPL ではないコンポーネントはアプリケーションから分割されるようになりました。フリーでない、'''個人利用においてのみ利用可能'''なライセンスでリリースされていますが、[https://www.virtualbox.org/manual/ch01.html#intro-installing 追加機能]が入っている Oracle エクステンションパックに興味をひかれるかもしれません。手動でインストールする代わりに、[[AUR (日本語)|AUR]] には {{aur|virtualbox-ext-oracle}} パッケージが存在します。
+
VirtualBox 4.0 から、GPL ではないコンポーネントはアプリケーションから分割されるようになりました。フリーでない、'''個人利用においてのみ利用可能'''なライセンスでリリースされていますが、[https://www.virtualbox.org/manual/ch01.html#intro-installing 追加機能]が入っている Oracle エクステンションパックに興味をひかれるかもしれません。手動でインストールする代わりに、[[AUR|AUR]] には {{aur|virtualbox-ext-oracle}} パッケージが存在します。
   
 
伝統的な手動のインストールをしたい場合: エクステンションを手動でインストールして GUI (''Settings > Extensions'') または {{ic|VBoxManage extpack install <.vbox-extpack>}} でインストールしてください。VirtualBox に特権アクセスを与えるためのツールキット ([[Polkit]] や gksu など) が必須です。このエクステンションのインストールには [https://www.virtualbox.org/ticket/8473 root 権限が必要になります]。
 
伝統的な手動のインストールをしたい場合: エクステンションを手動でインストールして GUI (''Settings > Extensions'') または {{ic|VBoxManage extpack install <.vbox-extpack>}} でインストールしてください。VirtualBox に特権アクセスを与えるためのツールキット ([[Polkit]] や gksu など) が必須です。このエクステンションのインストールには [https://www.virtualbox.org/ticket/8473 root 権限が必要になります]。
124行目: 124行目:
 
仮想マシンを作成する方法は [https://www.virtualbox.org/manual VirtualBox マニュアル]を参照してください。
 
仮想マシンを作成する方法は [https://www.virtualbox.org/manual VirtualBox マニュアル]を参照してください。
   
{{Warning|仮想ディスクイメージを [[Btrfs (日本語)|Btrfs]] ファイルシステムに保存する場合は、イメージを作成する前に、イメージを保存するディレクトリの [[Btrfs (日本語)#コピーオンライト_.28CoW.29|Copy-on-Write]] を無効にすると良いでしょう。}}
+
{{Warning|仮想ディスクイメージを [[Btrfs|Btrfs]] ファイルシステムに保存する場合は、イメージを作成する前に、イメージを保存するディレクトリの [[Btrfs#コピーオンライト_.28CoW.29|Copy-on-Write]] を無効にすると良いでしょう。}}
   
 
== Arch Linux をゲストにする ==
 
== Arch Linux をゲストにする ==
134行目: 134行目:
 
==== EFI モードでインストール ====
 
==== EFI モードでインストール ====
   
VirtualBox の中に EFI モードで Arch Linux をインストールしたい場合、仮想マシンの設定で、''Settings'' タブから ''Enable EFI (special OSes only)'' のチェックを入れて下さい。Arch Linux のインストールメディアを起動すると Arch Linux の標準の [[Gummiboot (日本語)|Gummiboot]] メニューが素早く表示されます:
+
VirtualBox の中に EFI モードで Arch Linux をインストールしたい場合、仮想マシンの設定で、''Settings'' タブから ''Enable EFI (special OSes only)'' のチェックを入れて下さい。Arch Linux のインストールメディアを起動すると Arch Linux の標準の [[Gummiboot|Gummiboot]] メニューが素早く表示されます:
 
{{bc|
 
{{bc|
 
Arch Linux archiso x86_64 UEFI USB
 
Arch Linux archiso x86_64 UEFI USB
143行目: 143行目:
 
最初のアイテムを選択してカーネルをロードした後、メディアは1分30秒ほど止まった後、通常通りにカーベルの起動に進みます。絶望しないで待機して下さい。
 
最初のアイテムを選択してカーネルをロードした後、メディアは1分30秒ほど止まった後、通常通りにカーベルの起動に進みます。絶望しないで待機して下さい。
   
[[GRUB (日本語)|Grub]] や [[Gummiboot (日本語)|Gummiboot]] を使うなら、デフォルトの ''EFI Hard Drive'' エントリが完璧に動作します。起動時に {{ic|F2}} キーを押すことで使える、VirtualBox Boot Manager を使用しないで下さい: 起動時に手動で追加した、もしくは {{Pkg|efibootmgr}} による EFI エントリは再起動しても残りますが [https://www.virtualbox.org/ticket/11177 VM をシャットダウンすると消えます]。
+
[[GRUB|Grub]] や [[Gummiboot|Gummiboot]] を使うなら、デフォルトの ''EFI Hard Drive'' エントリが完璧に動作します。起動時に {{ic|F2}} キーを押すことで使える、VirtualBox Boot Manager を使用しないで下さい: 起動時に手動で追加した、もしくは {{Pkg|efibootmgr}} による EFI エントリは再起動しても残りますが [https://www.virtualbox.org/ticket/11177 VM をシャットダウンすると消えます]。
   
 
=== Guest Additions をインストール ===
 
=== Guest Additions をインストール ===
151行目: 151行目:
 
Arch の外で、2つの方法でインストールできます:
 
Arch の外で、2つの方法でインストールできます:
   
* Virtualbox マニュアルに記述されている標準のインストールプロセスに従う (ホスト側で、Virtualbox メニューから "Install Guest Additions" をクリックして、{{ic|/mnt}} に cdrom を手動でマウントし、{{ic|/mnt/VBoxLinuxAdditions.run}} を実行します)。{{Note|この方法を最初に試行した場合、2番目の方法は[[Pacman (日本語)#Q: アップデートでこんなエラーが出ました: "file exists in filesystem"|ファイル衝突]]で失敗します: {{ic|/usr/bin/VBox*}} と {{ic|/usr/lib/VBox* exists in filesystem}}。問題のファイルを削除して ({{ic|/opt}} へのシンボリックリンク)、インストールをやり直して下さい。}}
+
* Virtualbox マニュアルに記述されている標準のインストールプロセスに従う (ホスト側で、Virtualbox メニューから "Install Guest Additions" をクリックして、{{ic|/mnt}} に cdrom を手動でマウントし、{{ic|/mnt/VBoxLinuxAdditions.run}} を実行します)。{{Note|この方法を最初に試行した場合、2番目の方法は[[Pacman#Q: アップデートでこんなエラーが出ました: "file exists in filesystem"|ファイル衝突]]で失敗します: {{ic|/usr/bin/VBox*}} と {{ic|/usr/lib/VBox* exists in filesystem}}。問題のファイルを削除して ({{ic|/opt}} へのシンボリックリンク)、インストールをやり直して下さい。}}
   
 
* ディストリビューションの公式リポジトリからインストールできるパッケージを使う。
 
* ディストリビューションの公式リポジトリからインストールできるパッケージを使う。
204行目: 204行目:
   
 
上記の systemd サービスを使いたくない場合は、代わりに2つの方法が存在します:
 
上記の systemd サービスを使いたくない場合は、代わりに2つの方法が存在します:
* [[デスクトップ環境]]を使っている場合、チェックボックスを有効にするか {{ic|/usr/sbin/VBoxClient-all}} を DE 設定の自動起動セクションに追加します (DE は {{ic|~/.config/autostart}} の ''.desktop'' ファイルにフラグを設定します。詳しくは[[Autostarting (日本語)#デスクトップアプリケーションの自動起動|自動起動]]セクションを見て下さい)。
+
* [[デスクトップ環境]]を使っている場合、チェックボックスを有効にするか {{ic|/usr/sbin/VBoxClient-all}} を DE 設定の自動起動セクションに追加します (DE は {{ic|~/.config/autostart}} の ''.desktop'' ファイルにフラグを設定します。詳しくは[[自動起動#デスクトップアプリケーションの自動起動|自動起動]]セクションを見て下さい)。
 
* [[デスクトップ環境]]を使っていない場合、次の行を {{ic|~/.xinitrc}} (存在しない場合は {{ic|/etc/skel/.xinitrc}} からファイルをコピー) の一番上に追加してください:
 
* [[デスクトップ環境]]を使っていない場合、次の行を {{ic|~/.xinitrc}} (存在しない場合は {{ic|/etc/skel/.xinitrc}} からファイルをコピー) の一番上に追加してください:
 
{{hc|~/.xinitrc|
 
{{hc|~/.xinitrc|
250行目: 250行目:
 
共有フォルダが自動でマウントされない場合、[https://bbs.archlinux.org/viewtopic.php?id=70780 手動でマウント]するか次のセクションを読んで下さい。
 
共有フォルダが自動でマウントされない場合、[https://bbs.archlinux.org/viewtopic.php?id=70780 手動でマウント]するか次のセクションを読んで下さい。
   
[[systemd (日本語)|systemd]] を使うと起動時に問題が起こる時は、{{ic|/etc/fstab}} に {{ic|1=comment=systemd.automount}} を加えて下さい。こうすると、スタートアップ時ではなくマウントポイントにアクセスしたときに共有フォルダがマウントされます。さもなければカーネルアップデート後にシステムが使えなくなるかもしれません(guest additions を手動でインストールした場合)。
+
[[systemd|systemd]] を使うと起動時に問題が起こる時は、{{ic|/etc/fstab}} に {{ic|1=comment=systemd.automount}} を加えて下さい。こうすると、スタートアップ時ではなくマウントポイントにアクセスしたときに共有フォルダがマウントされます。さもなければカーネルアップデート後にシステムが使えなくなるかもしれません(guest additions を手動でインストールした場合)。
   
 
desktop /media/desktop vboxsf uid=user,gid=group,rw,dmode=700,fmode=600,comment=systemd.automount 0 0
 
desktop /media/desktop vboxsf uid=user,gid=group,rw,dmode=700,fmode=600,comment=systemd.automount 0 0
330行目: 330行目:
 
=== マウント失敗によるスタートアップ時の問題 ===
 
=== マウント失敗によるスタートアップ時の問題 ===
   
カーネルをアップグレードした後、[[systemd (日本語)]] セットアップで問題が発生したら、システムを起動するときに ''init=/bin/bash'' (緊急シェルが動かない場合) を付ける必要があります。
+
カーネルをアップグレードした後、[[systemd]] セットアップで問題が発生したら、システムを起動するときに ''init=/bin/bash'' (緊急シェルが動かない場合) を付ける必要があります。
   
 
root=/dev/mapper/vg_main-lv_root ro vga=792 resume=/dev/mapper/vg_main-lv_swap init=/bin/bash
 
root=/dev/mapper/vg_main-lv_root ro vga=792 resume=/dev/mapper/vg_main-lv_swap init=/bin/bash

2015年1月12日 (月) 23:26時点における版

関連記事

VirtualBoxVMware に似た仮想 PC エミュレータです。継続的に開発が行われており、新しい機能が日夜追加されています。例えば、バージョン 2.2 では Linux と Solaris をゲストにした OpenGL 3D アクセラレーションがサポートされました。VirtualBox には仮想マシンを管理するために Qt による GUI インターフェースや、SDL によるコマンドラインツールが用意されています。ゲスト OS によっては guest additions を使って、ファイルやクリップボードの共有・ビデオアクセラレーション・"シームレス"なウィンドウ統合モードなどのゲスト・ホストを統合する機能を使うことができます。

この項目について詳しくは Wikipedia の記事を見て下さい: VirtualBox

目次

ホストとしてインストール

コアパッケージのインストール

まず、GPL ライセンス版の VirtualBox のセットは公式リポジトリにある virtualbox パッケージでインストールできます。SDL とヘッドレスのコマンドラインツールが入っています。virtualbox パッケージには依存パッケージとして virtualbox-host-modules が付いてきます。

Qt による、グラフィカルインターフェース (VirtualBox コマンド) を使うには、qt4 パッケージもインストールしてください。シンプルな SDL の GUI (VBoxSDL コマンド) や VBoxHeadless コマンドを使う場合 qt は必要ありません。

VirtualBox カーネルモジュールのインストール

次に、VirtualBox がゲスト環境を仮想化できるようにするために、ホストのカーネルにカーネルモジュールを追加する必要があります。

カーネルモジュールのバイナリ互換はモジュールがコンパイルされたカーネルの API に依存しています。問題はこれらのインターフェイスが他のバージョンのカーネルと異なる可能性があることです。互換性の問題によってやっかいなバグが出ないように、Linux カーネルを更新した時は毎回、そのインストールした Linux カーネルでカーネルモジュールを再コンパイルすることが推奨されています。これは VirtualBox カーネルモジュールのパッケージで Arch Linux のパッケージ作成者が実際にやっていることです: 新しい Arch Linux カーネルがリリースされる度に、Virtualbox は更新されるようになっています。

従って、公式リポジトリのカーネルを使っているかカスタムカーネル (自分でコンパイルもしくは AUR からインストールしたカーネル) を使っているかで、インストールするカーネルモジュールのパッケージは変わってきます。

ホストで公式カーネルを使っている場合

ホストでカスタムカーネルを使っている場合

自分でソースからコンパイルしたカーネルを使う場合、VirtualBox は仮想化モジュール (例: virtuo, kvm,...) を必要としないことを知っておく必要があります。VirtualBox カーネルモジュールは VirtualBox を正しく動作させるために必要なもの全てを提供します。そのため Xen, KVM, QEMU などの他のハイパーバイザーを使わないときはカーネルの .config ファイルで仮想化モジュールを無効にすることができます。

virtualbox-host-modules パッケージは Arch Linux の標準カーネルと同じバージョンのカスタムカーネル (linux-ckAUR など) では問題なく動作します。virtualbox-host-modules には依存パッケージとして公式 Arch Linux カーネル (linux) が付いてくるため、このカーネルを使わない場合、代わりに virtualbox-host-dkms をインストールしてください。

Arch Linux の標準カーネルと違うバージョンのカスタムカーネルを使う場合は、virtualbox-host-dkms もインストールする必要があります。このパッケージには VirtualBox カーネルモジュールのソースが同梱されており、あなたのカーネル用のモジュールを生成するようコンパイルされます。

virtualbox-host-dkms パッケージはコンパイルを必要とするので、あなたの使っているカスタムカーネルに対応するカーネルヘッダーがインストールされていることを確認してください。インストールしていないと Your kernel headers for kernel your custom kernel version cannot be found at /usr/lib/modules/your custom kernel version/build or /usr/lib/modules/your custom kernel version/source というエラーが発生します。

  • 自分でコンパイルしたカーネルを使っていて make modules_install でモジュールをインストールする場合、フォルダ /usr/lib/modules/your custom kernel version/build(...)/source にはあなたのカーネルソースへのシンボリックリンクが作成されます。これらは必要なカーネルヘッダーとして扱われます。カーネルソースを削除していない場合は、することはありません。
  • AUR のカスタムカーネルを使う場合は、linux-headers パッケージをインストールしてください。

virtualbox-host-dkms をインストールしたら、次のコマンドを実行してあなたのカスタムカーネルのためのカーネルモジュールを生成します:

# dkms install vboxhost/virtualbox-host-source version -k your custom kernel version/your architecture
ヒント: 上のコマンドを使いたくない場合は、オールインワンのコマンドを代わりに使って下さい:
# dkms install vboxhost/$(pacman -Q virtualbox|awk {'print $2'}|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')

ソースが更新されたときに (つまり virtualbox-host-dkms パッケージが更新された際) 上の dkms install コマンドを手動で再入力する手間を省いて VirtualBox カーネルモジュールが自動的に再コンパイルされるように、次のコマンドで dkms サービスを有効にします:

# systemctl enable dkms.service

このサービスを有効にしない場合 virtualbox-host-dkms パッケージが更新されても、VirtualBox モジュールは更新されないため上の dkms install コマンドを手動で実行して最新の Virtualbox カーネルモジュールをコンパイルする必要があります。dkms サービスが起動時に自動的にロードされるようになっていれば、再起動するだけで VirtualBox モジュールは再コンパイルされます。

それでも、このデーモンを無効にしておきたいときは、initramfs のフックを使って起動時に上の dkms install コマンドを自動的に実行するよう設定することができます。VirtualBox モジュールを再コンパイルするには再起動が必要になります。このフックを有効にするには、AUR から vboxhost-hookAUR パッケージをインストールして /etc/mkinitcpio.conf の HOOKS 行に vboxhost を追加してください。もちろん、新しいカーネルの linux ヘッダーが存在しないとコンパイルは失敗します。

ヒント: dkms コマンドと同じように、VirtualBox モジュールの再コンパイル中に何か問題が起こると vboxhost フックは通知を行います。

カーネルモジュールのロード

VirtualBox が使っているカーネルモジュールの中には vboxdrv と呼ばれる必須モジュールがあり、仮想マシンを起動する前にロードする必要があります。Arch Linux 起動時に自動でロードすることも、必要なときだけ手動でロードすることもできます。

dkms でモジュールを使う場合、最初に、modprobe によって使用されたカーネルモジュールの依存関係データベースを depmod -a でアップデートしてください。DKMS パッケージ (e.g. virtualbox-host-modules, virtualbox-host-modules-lts,...) を使わないユーザーはこのコマンドを実行する必要はありません、データベースはインストール時に更新されるためです

手動でモジュールをロード:

# modprobe vboxdrv

起動時に VirtualBox ドライバをロードするには、/etc/modules-load.d ディレクトリにロードが必要なモジュールを全て含めた *.conf ファイル (例: virtualbox.conf) を追加してください:

/etc/modules-load.d/virtualbox.conf
vboxdrv

次のモジュールは任意ですが、高度な設定をするときは面倒くさいことにならないようにロードすることを推奨します: vboxnetadp, vboxnetflt, vboxpci

  • vboxnetadpvboxnetflt はどちらも "ホストオンリーネットワーク" 機能を使うときに必要になります。正確に言えば、vboxnetadp は VirtualBox のグローバル設定でホストインターフェイスを作成するのに必要で、vboxnetflt はそのネットワークインターフェイスを使って仮想マシンを起動するのに必要です。
  • vboxpci は仮想マシンでホストの PCI デバイスをパススルーするときに必要になります。
ノート: モジュールを更新したときにカーネルに VirtualBox カーネルモジュールがロードされていた場合、更新された新しいバージョンを使うためには手動でリロードしなくてはなりません。

最後に、上記の "ホストオンリーネットワーク" 機能を使う場合、net-tools がインストールされていることを確認してください。VirtualBox は ifconfigroute を使って IP を割り当て VBoxManage hostonlyif や GUI の Settings > Network > Host-only Networks > Edit host-only network (space) > Adapter で設定されたホストインターフェイスに接続します。

ユーザー名を vboxusers グループに追加

利用するユーザー名を vboxusers グループに追加してください。追加しなくても問題なく動作しますが、共有フォルダなどの任意機能を動かすためには必要です。新しいグループは自動では現在のセッションに適用されません; ユーザーは一度ログインしなおすか newgrpsudo -u $USER -s などのコマンドで新しい環境を始める必要があります。現在のユーザーを vboxusers グループに追加するには、次を入力してください:

# gpasswd -a $USER vboxusers

Guest additions ディスク

VirtualBox を動かすホスト側 (Arch Linux) には、virtualbox-guest-iso もインストールすることが推奨されています。これはゲスト OS に guest additions をインストールするために使われるディスクイメージです。

エクステンションパック

VirtualBox 4.0 から、GPL ではないコンポーネントはアプリケーションから分割されるようになりました。フリーでない、個人利用においてのみ利用可能なライセンスでリリースされていますが、追加機能が入っている Oracle エクステンションパックに興味をひかれるかもしれません。手動でインストールする代わりに、AUR には virtualbox-ext-oracleAUR パッケージが存在します。

伝統的な手動のインストールをしたい場合: エクステンションを手動でインストールして GUI (Settings > Extensions) または VBoxManage extpack install <.vbox-extpack> でインストールしてください。VirtualBox に特権アクセスを与えるためのツールキット (Polkit や gksu など) が必須です。このエクステンションのインストールには root 権限が必要になります

適切なフロントエンドの使用

これで、VirtualBox を使う準備はできました。おめでとうございます。

複数のフロントエンドが存在しており、デフォルトでは2つが利用可能です:

  • コマンドライン内だけで VirtualBox を使いたい場合 (起動と既存の仮想マシンの設定変更だけ)、VBoxSDL コマンドが使えます。VBoxSDL はメニューやコントロールがない、ピュアな仮想マシンだけを含んだシンプルなウィンドウのみを表示します。
  • GUI を (サーバーなどで) 実行せずにコマンドラインで VirtualBox を使って仮想マシンを作成・起動・設定したい場合、ホスト側で全く目に見える出力を行わなず VRDP データだけを送信する VBoxHeadless を使います。

任意の依存パッケージとして qt4 をインストールした場合、マウスで使える見た目の良い GUI インターフェイスが使えます。

また、PhpVirtualBox を使えばウェブインターフェイスで仮想マシンを管理することが可能です。

仮想マシンを作成する方法は VirtualBox マニュアルを参照してください。

警告: 仮想ディスクイメージを Btrfs ファイルシステムに保存する場合は、イメージを作成する前に、イメージを保存するディレクトリの Copy-on-Write を無効にすると良いでしょう。

Arch Linux をゲストにする

仮想マシンの中に Arch Linux をインストール

仮想マシンの仮想ドライブを使って Arch のインストールメディアを起動します。そして、ビギナーズガイドインストールガイドに書かれている方法に従って Arch のインストールを完了してください。グラフィックドライバーのインストールはしません: 次のステップで VirtualBox のグラフィックドライバーをインストールします。

EFI モードでインストール

VirtualBox の中に EFI モードで Arch Linux をインストールしたい場合、仮想マシンの設定で、Settings タブから Enable EFI (special OSes only) のチェックを入れて下さい。Arch Linux のインストールメディアを起動すると Arch Linux の標準の Gummiboot メニューが素早く表示されます:

Arch Linux archiso x86_64 UEFI USB
UEFI Shell x86_64 v1
UEFI Shell x86_64 v2
EFI Default Loader

最初のアイテムを選択してカーネルをロードした後、メディアは1分30秒ほど止まった後、通常通りにカーベルの起動に進みます。絶望しないで待機して下さい。

GrubGummiboot を使うなら、デフォルトの EFI Hard Drive エントリが完璧に動作します。起動時に F2 キーを押すことで使える、VirtualBox Boot Manager を使用しないで下さい: 起動時に手動で追加した、もしくは efibootmgr による EFI エントリは再起動しても残りますが VM をシャットダウンすると消えます

Guest Additions をインストール

ゲストシステムのインストールが完了した後は、ゲストオペレーティングシステムを最適化するドライバーとアプリケーションが含まれている VirtualBox Guest Additions をインストールします。

Arch の外で、2つの方法でインストールできます:

  • Virtualbox マニュアルに記述されている標準のインストールプロセスに従う (ホスト側で、Virtualbox メニューから "Install Guest Additions" をクリックして、/mnt に cdrom を手動でマウントし、/mnt/VBoxLinuxAdditions.run を実行します)。
    ノート: この方法を最初に試行した場合、2番目の方法はファイル衝突で失敗します: /usr/bin/VBox*/usr/lib/VBox* exists in filesystem。問題のファイルを削除して (/opt へのシンボリックリンク)、インストールをやり直して下さい。
  • ディストリビューションの公式リポジトリからインストールできるパッケージを使う。

Arch Linux ゲストでは、最初の方法は動作せずに Unable to determine your Linux distribution エラーになります。そのため、2番目の方法を使って virtualbox-guest-utils をインストールしてください、依存パッケージとして virtualbox-guest-modules が入っています。

virtualbox-guest-utils パッケージをインストールします:

VirtualBox ゲストカーネルモジュールをインストール

ゲストで公式カーネルを使っている場合

ゲストでカスタムカーネルを使っている場合

上で説明しているホストの Vitualbox カーネルモジュールのセクションとほとんどインストールの手順は同じです。そのセクションを参照して virtualbox-host-modules, virtualbox-host-dkms, vboxhost-hookAURvirtualbox-guest-modules, virtualbox-guest-dkms, vboxguest-hookAUR で置き換えて下さい。

Virtualbox カーネルモジュールをロード

手動でモジュールをロードするには、次のコマンドを入力:

# modprobe -a vboxguest vboxsf vboxvideo

起動時に VirtualBox モジュールをロードさせるには、カーネルモジュール#ロード を参照して以下の内容で /etc/modules-load.d/*.conf ファイルを作成してください (例: virtualbox.conf):

/etc/modules-load.d/virtualbox.conf
vboxguest
vboxsf
vboxvideo

VirtualBox ゲストサービスを起動

VirtualBox カーネルモジュールのインストールが終わったら、ゲストサービスを起動する必要があります。ゲストサービスは VBoxClient という名前のバイナリ実行ファイルであり X Window System と対話を行います。VBoxClient は以下の機能を管理します:

  • 共有クリップボードとホストとゲスト間のドラッグアンドドロップ。
  • シームレスウィンドウモード。
  • ゲストのウィンドウサイズに自動的にゲストの表示をリサイズ。
  • VirtualBox ホストバージョンのチェック。

これらの機能は全てフラグを使って個別・手動で有効にすることができます。

# VBoxClient --clipboard --draganddrop --seamless --display --checkhostversion

ゲストサービスには他の機能もあります:

  • ホストとゲスト間での時刻同期。
  • ホストとゲスト間での読み取り専用・自動マウントの共有フォルダ。

今のところドキュメントになっていませんが VirtualBox には X11 サーバーが実際に動作中かどうか確認して全ての機能を自動的に有効にする Bash スクリプト VBoxClient-all が入っています。

# VBoxClient-all

システムが起動した時に自動的にスクリプトを実行するには root で以下のコマンドを実行してください:

# systemctl enable vboxservice

上記の systemd サービスを使いたくない場合は、代わりに2つの方法が存在します:

  • デスクトップ環境を使っている場合、チェックボックスを有効にするか /usr/sbin/VBoxClient-all を DE 設定の自動起動セクションに追加します (DE は ~/.config/autostart.desktop ファイルにフラグを設定します。詳しくは自動起動セクションを見て下さい)。
  • デスクトップ環境を使っていない場合、次の行を ~/.xinitrc (存在しない場合は /etc/skel/.xinitrc からファイルをコピー) の一番上に追加してください:
~/.xinitrc
/usr/bin/VBoxClient-all

これで、Arch Linux ゲストが動くようになったはずです。おめでとうございます。

ホストと Arch Linux ゲスト間でフォルダを共有したい場合は、次のセクションを読んで下さい。

共有サービスの起動

上記の通り virtualbox-guest-utils をインストールした後、VBoxClient-all を使ってクリップボード共有、画面リサイズなどのサービスを起動してください。

  • GNOME や KDE など、/etc/xdg/autostart/vboxclient.desktop を実行するものを使っている場合、なにもなさらなくて結構です。
  • .xinitrc を使って実行する場合、.xinitrc で WM を起動する前に次の行を追加してください。
# VBoxClient-all &

USB ウェブカメラ/マイクロフォン を使う

ノート: 以下の作業をする前に VirtualBox 拡張パックをインストールする必要があります。詳しくは VirtualBox_Extras#Extension_pack を見て下さい。
  1. 仮想マシンを止め、ウェブカメラ/マイクロフォンが使われていないのを確認します。
  2. メイン VirtualBox ウィンドウを立ち上げ Arch マシンの設定に行き、USB セクションを見ます。
  3. "Enable USB Controller" を選択します。それから "Enable USB 2.0 (EHCI) Controller" を選択します。
  4. "Add filter from device" ボタンをクリック ('+' アイコンとケーブル)。
  5. リストから USB ウェブカメラ/マイクロフォンデバイスを選択する。
  6. OK をクリックして VM を起動。

ゲスト側の Arch Linux の共有フォルダ

共有フォルダはホスト側にある VirtualBox によって管理されます。共有フォルダが追加されると、自動でマウントされ読み込み専用になります。 VirtualBox から共有フォルダを作成すると /media/sf_SHAREDFOLDERNAME の中にとフォルダが設置されます。この時、ゲスト側の Arch の中のフォルダを使うには設定が必要になります。ゲスト側の Arch に共有フォルダを作成するには、pacman で Guest Additions パッケージをインストールした後、コマンドラインで以下を実行してください:

# groupadd vboxsf
# gpasswd -a $USER vboxsf
ノート: 自動マウントを機能させるには、vboxservice サービスを有効にする必要があります。次のセクションの説明を見て下さい。

望むなら、シンボリックを作って home ディレクトリにアクセスしやすくすることができます。例として、"Dropbox" という名の共有フォルダがホスト側の VirtualBox の中に作成されている場合、/media/sf_Dropbox をゲスト側に自動で作成するには次のようにしてください:

$ ln -s /media/sf_Dropbox/* ~/dropbox

Guest Additions iso が提供している .run スクリプトでも同じことができますが、Arch はこれを使うことを推奨しません、手動で行うべきだからです。このことについての提言はここで見られます: (pastebin: [1]) .

共有フォルダが自動でマウントされない場合、手動でマウントするか次のセクションを読んで下さい。

systemd を使うと起動時に問題が起こる時は、/etc/fstabcomment=systemd.automount を加えて下さい。こうすると、スタートアップ時ではなくマウントポイントにアクセスしたときに共有フォルダがマウントされます。さもなければカーネルアップデート後にシステムが使えなくなるかもしれません(guest additions を手動でインストールした場合)。

desktop   /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,comment=systemd.automount 0 0

nofail オプションをテストするのにも時間を取ってください。mount.vboxsf はこれを管理できません (2012-08-20)。

desktop   /media/desktop    vboxsf  uid=user,gid=group,rw,dmode=700,fmode=600,nofail 0 0

ゲストの時刻をホストに同期させる

時刻を同期させるには、まずホスト側に virtualbox-guest-utils をインストールする必要があります(前のセクションを見て下さい)。それから次を実行して次のブート時にサービスを有効にします

# systemctl enable vboxservice.service

今すぐサービスを開始するには

# systemctl start vboxservice.service

共有フォルダの自動マウント機能を使うときにもこのデーモンを起動する必要があります。

トラブルシューティング

modprobe Exec フォーマットエラー

あなたのシステムを最新状態にしてください:

pacman -Syu

VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)

これは VM を正常終了しないと発生することがあります。VM をアンロックしてください:

VBoxManage controlvm nArch poweroff

USB サブシステムがホスト側もしくはゲスト側で動かない

時々 usb サブシステムが自動で検知されずホスト側の USB ドライブが表示されなかったりエラーが出ることがあります (例: Could not load the Host USB Proxy service: VERR_NOT_FOUND)。これはユーザーが vboxusers グループになっていても起こります。詳しくは [2] を見て下さい。

~/.bashrc に以下を加え再起動するか新しいインスタンスを開始すれば USB サブシステムが動作します。

VBOX_USB=usbfs

また、あなたのユーザーを storage グループのメンバーに追加してください。

ホストオンリーのネットワークインターフェースを作成できない

Host-Only Network Adapter や Bridged Network Adapter を作るためには、カーネルモジュールの vboxnetadpvboxnetflt をロードする必要があります。また、net-tools パッケージがインストールされているか確認してください。これらのカーネルモジュールを手動でロードするには:

# modprobe -a vboxnetadp vboxnetflt

起動時に自動でロードするには /etc/modules-load.d/virtualbox.conf にモジュール毎に新しい行を追加してください:

vboxdrv
vboxnetadp
vboxnetflt
ノート: These used to be added to the MODULES array in /etc/rc.conf. This is now deprecated.

このトピックについて詳しい情報がここにあります。

WinXP: ビット深度を 16 より上げることができない

16-ビット色深度で動作させている場合、アイコンの見た目が毛羽立ったりむらがでるかもしれません。しかし、色深度をもっと高く変えようとすると、システムの解像度が低くなってしまったり、もしくは全く深度が変えられないかもしれません。これを修正するには、regedit を起動し次のキーをゲスト側の Windows XP レジストリに追加します:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"ColorDepth"=dword:00000004

それからデスクトップのプロパティウィンドウから色深度を変えてください。何も怒らない場合、強制的に画面を再描写させてください(つまり、Host+F で再描写するか、フルスクリーンにしてください)。

.vdi イメージのマウント

以下の方法では静的なサイズの vdi イメージしか動きません!動的なサイズのイメージは簡単にはマウントできません!まず .vdi イメージの情報が必要です:

$ VBoxManage internalcommands dumphdinfo Arch_64min.vdi |grep offData
Header: offBlocks=4096 offData=69632

ここで、offData に 32256 を加算してください。例: 32256 + 69632 = 101888

そして vdi イメージをマウントします:

# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 Arch_64min.vdi /mnt/

マウント失敗によるスタートアップ時の問題

カーネルをアップグレードした後、systemd セットアップで問題が発生したら、システムを起動するときに init=/bin/bash (緊急シェルが動かない場合) を付ける必要があります。

root=/dev/mapper/vg_main-lv_root ro vga=792 resume=/dev/mapper/vg_main-lv_swap init=/bin/bash

それから root-ファイルシステムを書き込み権限付きでマウントします:

# mount / -o remount,rw

#ゲスト側の Arch Linux の共有フォルダ に合わせて /etc/fstab を変更します。そして bash シェルから systemd を exec します:

# exec /bin/systemd

ゲスト側の Arch Linux でコピーアンドペーストが機能しない

virtualbox-guest-additions がバージョン 4.2.0-2 にアップデートされてからホスト OS からゲスト側の Arch Linux へのコピーアンドペーストができなくなりました。VBoxClient-allroot 権限が必要なったためだと思われます。以前のバージョンでは VBoxClient-all &~/.xinitrc に追加しておけばコピーアンドペーストが機能していました。~/.xinitrcsudo VBoxClient-all & にして , NOPASSWD: /usr/bin/VBoxClient-all を sudoers ファイルのあなたのユーザ名のところに追加してください。これでまた動くはずです。sudoers ファイルの行はこのようになるはずです:

 # Allow sudo for user 'you' and let him run VBoxClient-all without requiring a password
 you ALL = PASSWD: ALL, NOPASSWD: /usr/bin/VBoxClient-all
ノート: sudoers を編集する時は visudo を使って下さい。保存するときに構文エラーをチェックします。

ゲスト OS でシリアルポートを使う

シリアルポートのパーティションを確認してください:

$ /bin/ls -l /dev/ttyS*
crw-rw---- 1 root uucp 4, 64 Feb  3 09:12 /dev/ttyS0
crw-rw---- 1 root uucp 4, 65 Feb  3 09:12 /dev/ttyS1
crw-rw---- 1 root uucp 4, 66 Feb  3 09:12 /dev/ttyS2
crw-rw---- 1 root uucp 4, 67 Feb  3 09:12 /dev/ttyS3

それからユーザーを uucp グループに追加して:

# gpasswd -a $USER uucp 

ログインしなおして下さい。

レジュームが失敗する

レジュームを失敗させるバグが報告されています: https://www.virtualbox.org/ticket/11289。回避方法はシンプルです: VM を終了するときにはいつも Host+q かメニューを使って下さい。

System Images in Btrfs

In 2010 there were reports that OS disk images would not start if they were attached via a virtual SATA device. It was reportedly fixed, and seemed to be. But as of around March 2013, that particular bug report has been repoened. This can be fixed by enabling the use of the host I/O cache, which is disabled by default with virtual SATA interfaces.

vagrant up の問題

最新バージョンの Virtualbox(4.2.14-1) では vagrant up コマンドは以下のように失敗します:

Command: ["import", 
"/Users/username/.vagrant.d/boxes/precise32/virtualbox/box.ovf"]
Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interpreting 
/Users/username/.vagrant.d/boxes/precise32/virtualbox/box.ovf...
OK.
0%...
Progress object failure: NS_ERROR_CALL_FAILED

修正がリリースに入るまで、回避対策を取るか VirtualBox をダウングレードする必要があります。

Workaround by creating manifests for each box in ~/.vagrant.d/boxes/BoxName/virtualbox:

openssl sha1 *.vmdk *.ovf > box.mf

You can downgrade Virtualbox. If you have the old package file inside your cache just downgrade it via:

sudo pacman -U /var/cache/pacman/pkg/virtualbox-4.2.12-3-x86_64.pkg.tar.xz

This error seems to appear on all platforms: http://www.marshut.com/pzisi/progress-object-failure-ns-error-call-failed-when-running-vagrant-up-in-getting-started-guide.html#qhihz

It's unclean for the moment. It could be regression inside Virtualbox or a issue inside Vagrant. When you delete the cache you can downgrade via ArchLinux downgrader (I didn't test it correctly, but I assume this works, else check the wiki page for downgrading: https://wiki.archlinux.org/index.php/Downgrading_Packages)

For more Information, check the issue page on github Clean install on OS X 10.8.4 w/ latest VirtualBox not working

According to the Vagrant creator on Twitter, this is a VirtualBox bug. On 2013-06-25, he said that they fixed the bug in SVN, and he's waiting on a release. Also, I can confirm that this is a multi-platform issue, 4.2.14 was broken for me on Win7.

This issue has been solved inside the virtualbox release virtualbox-4.2.16-1

外部リンク