「VirtualBox」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) (→適切なフロントエンドの使用: タイトルを変更) |
Kusanaginoturugi (トーク | 投稿記録) (校正(でき・出来)) |
||
(2人の利用者による、間の72版が非表示) | |||
1行目: | 1行目: | ||
[[Category:ハイパーバイザ]] |
[[Category:ハイパーバイザ]] |
||
[[Category:Oracle]] |
[[Category:Oracle]] |
||
− | [[cs:VirtualBox]] |
||
[[de:VirtualBox]] |
[[de:VirtualBox]] |
||
− | [[el:VirtualBox]] |
||
[[en:VirtualBox]] |
[[en:VirtualBox]] |
||
[[es:VirtualBox]] |
[[es:VirtualBox]] |
||
− | [[fr:VirtualBox]] |
||
− | [[hu:VirtualBox]] |
||
− | [[it:VirtualBox]] |
||
− | [[pt:VirtualBox]] |
||
[[ru:VirtualBox]] |
[[ru:VirtualBox]] |
||
[[zh-hans:VirtualBox]] |
[[zh-hans:VirtualBox]] |
||
72行目: | 66行目: | ||
VirtualBox を動かすホスト側 (Arch Linux) には、{{Pkg|virtualbox-guest-iso}} もインストールすることが推奨されています。これはゲスト OS に guest additions をインストールするために使われるディスクイメージです。''.iso'' ファイルは {{ic|/usr/lib/virtualbox/additions/VBoxGuestAdditions.iso}} に配置され、仮想マシンの中から手動でマウントする必要があります。マウントしたら、ゲストの中で guest additions インストーラーを実行できます。 |
VirtualBox を動かすホスト側 (Arch Linux) には、{{Pkg|virtualbox-guest-iso}} もインストールすることが推奨されています。これはゲスト OS に guest additions をインストールするために使われるディスクイメージです。''.iso'' ファイルは {{ic|/usr/lib/virtualbox/additions/VBoxGuestAdditions.iso}} に配置され、仮想マシンの中から手動でマウントする必要があります。マウントしたら、ゲストの中で guest additions インストーラーを実行できます。 |
||
+ | |||
+ | === 無人テンプレート === |
||
+ | |||
+ | ゲストシステムを手動でインストールする必要をなくすために、一部の OS では ''無人インストール'' がサポートされています。これにより、ユーザーは、マシンを起動する前に、VirtualBox のインターフェイスにインストールされるようにシステムを構成できます。セットアッププロセスの最後に、それ以上のユーザー操作を必要とせずに OS がインストールされます。この機能には {{aur|virtualbox-unattended-templates}} パッケージが必要です。 |
||
=== 拡張パック === |
=== 拡張パック === |
||
86行目: | 84行目: | ||
* GUI を (サーバーなどで) 実行せずにコマンドラインで VirtualBox を使って仮想マシンを作成・起動・設定したい場合、ホスト側で全く目に見える出力を行わず VRDP データだけを送信する {{ic|VBoxHeadless}} を使います。 |
* GUI を (サーバーなどで) 実行せずにコマンドラインで VirtualBox を使って仮想マシンを作成・起動・設定したい場合、ホスト側で全く目に見える出力を行わず VRDP データだけを送信する {{ic|VBoxHeadless}} を使います。 |
||
+ | Wayland のセキュリティ機能 (つまり GDM を使用する場合) は VirtualBox がすべてのキーボード入力を取得することを禁止しています。これはゲスト OS にウィンドウマネージャのショートカットを渡したいときに厄介です。これは VirtualBox をホワイトリスト化することで回避できます。 |
||
− | A security feature in Wayland (i.e. when using GDM) disallows VirtualBox to grab all keyboard input. This is annoying when you want to pass window manager shortcuts to your guest OS. It can be bypassed by whitelisting VirtualBox: |
||
$ gsettings get org.gnome.mutter.wayland xwayland-grab-access-rules |
$ gsettings get org.gnome.mutter.wayland xwayland-grab-access-rules |
||
$ gsettings set org.gnome.mutter.wayland xwayland-grab-access-rules "['VirtualBox Machine']" |
$ gsettings set org.gnome.mutter.wayland xwayland-grab-access-rules "['VirtualBox Machine']" |
||
+ | 最初のコマンドは、他のアプリケーションがすでにホワイトリストに登録されているかどうかを表示します。もしあれば、'VirtualBox Machine'をそのリストに追加してください(唯一のリストにするのではありません)。 |
||
− | The first command will show if any other applications are already whitelisted. If so, add 'VirtualBox Machine' to that list, rather than having it as the only one. |
||
また、[[PhpVirtualBox]] を使えばウェブインターフェイスで仮想マシンを管理することが可能です。 |
また、[[PhpVirtualBox]] を使えばウェブインターフェイスで仮想マシンを管理することが可能です。 |
||
132行目: | 130行目: | ||
=== ディスクイメージフォーマットの変換 === |
=== ディスクイメージフォーマットの変換 === |
||
− | [https://www.virtualbox.org/manual/ch08.html#vboxmanage- |
+ | [https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonemedium VBoxManage clonemedium] を使うことで VDI, VMDK, VHD, RAW を相互に変換することができます。 |
− | $ VBoxManage |
+ | $ VBoxManage clonemedium disk ''inputfile'' ''outputfile'' --format ''outputformat'' |
例えば VDI を VMDK に変換するには: |
例えば VDI を VMDK に変換するには: |
||
− | $ VBoxManage |
+ | $ VBoxManage clonemedium disk ''source.vdi'' ''destination.vmdk'' --format VMDK |
==== QCOW ==== |
==== QCOW ==== |
||
186行目: | 184行目: | ||
==== VHD ==== |
==== VHD ==== |
||
+ | VDI と同様に、VHD イメージも [[QEMU]] の nbd モジュールでマウントできます。 |
||
− | Like VDI, VHD images can be mounted with [[QEMU]]'s nbd module: |
||
# modprobe nbd |
# modprobe nbd |
||
192行目: | 190行目: | ||
# mount /dev/nbd0p1 /mnt |
# mount /dev/nbd0p1 /mnt |
||
− | + | unmount は以下の通り。 |
|
# umount /mnt |
# umount /mnt |
||
225行目: | 223行目: | ||
:* [http://therightstuff.de/2009/02/14/ChkDskAll-ChkDsk-For-All-Drives.aspx こちら] の {{ic|FsckDskAll}} を使う。{{ic|chkdsk}} と基本的に同じソフトウェアですが、全てのドライブで繰り返し実行する必要がありません。 |
:* [http://therightstuff.de/2009/02/14/ChkDskAll-ChkDsk-For-All-Drives.aspx こちら] の {{ic|FsckDskAll}} を使う。{{ic|chkdsk}} と基本的に同じソフトウェアですが、全てのドライブで繰り返し実行する必要がありません。 |
||
− | [https://www.virtualbox.org/manual/ch08.html#vboxmanage- |
+ | [https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifymedium VBoxManage modifymedium] を使って ''.vdi'' からゼロ領域を削除: |
− | $ VBoxManage |
+ | $ VBoxManage modifymedium disk ''your_disk.vdi'' --compact |
{{Note|仮想マシンにスナップショットが存在する場合、存在する {{ic|.vdi}} ファイルごとに上記のコマンドを実行してください。}} |
{{Note|仮想マシンにスナップショットが存在する場合、存在する {{ic|.vdi}} ファイルごとに上記のコマンドを実行してください。}} |
||
234行目: | 232行目: | ||
==== 一般的な方法 ==== |
==== 一般的な方法 ==== |
||
− | 仮想マシンを作成したときに選択したハードドライブのサイズが小さすぎて、容量一杯まで使い切ってしまった場合、VirtualBox マニュアルでは [https://www.virtualbox.org/manual/ch08.html#vboxmanage- |
+ | 仮想マシンを作成したときに選択したハードドライブのサイズが小さすぎて、容量一杯まで使い切ってしまった場合、VirtualBox マニュアルでは [https://www.virtualbox.org/manual/ch08.html#vboxmanage-modifymedium VBoxManage modifymedium] を使うことが推奨されています。しかしながら、このコマンドは VDI と VHD ディスクで動的にサイズを割り当てているときしか機能しません。固定サイズの仮想ディスクのサイズを変更したい場合、以下の手順に従ってください。 |
まず、拡大したいディスクのとなりに新しく仮想ディスクを作成: |
まず、拡大したいディスクのとなりに新しく仮想ディスクを作成: |
||
− | $ VBoxManage |
+ | $ VBoxManage createmedium disk -filename ''new.vdi'' --size ''10000'' |
サイズは MiB で指定します。例えば 10000MiB ~= 10GiB です。''new.vdi'' は新しく作成するハードドライブの名前になります。 |
サイズは MiB で指定します。例えば 10000MiB ~= 10GiB です。''new.vdi'' は新しく作成するハードドライブの名前になります。 |
||
246行目: | 244行目: | ||
次に、古い仮想ディスクを新しい仮想ディスクに複製します (しばらく時間がかかります): |
次に、古い仮想ディスクを新しい仮想ディスクに複製します (しばらく時間がかかります): |
||
− | $ VBoxManage |
+ | $ VBoxManage clonemedium disk ''old.vdi'' ''new.vdi'' --existing |
古いハードドライブを取り外して新しいドライブを接続してください (斜体の引数は適当な文字列に置き換えてください): |
古いハードドライブを取り外して新しいドライブを接続してください (斜体の引数は適当な文字列に置き換えてください): |
||
287行目: | 285行目: | ||
仮想ディスクが VDI の場合、以下のコマンドを実行: |
仮想ディスクが VDI の場合、以下のコマンドを実行: |
||
− | $ VBoxManage |
+ | $ VBoxManage modifymedium disk ''your_virtual_disk.vdi'' --resize ''the_new_size'' |
実行したら上記と同じように Gparted を使ってパーティションのサイズを変更してください。 |
実行したら上記と同じように Gparted を使ってパーティションのサイズを変更してください。 |
||
307行目: | 305行目: | ||
}} |
}} |
||
− | {{Note|追加するドライブの GUID がわからない場合は、{{ic|VBoxManage showhdinfo ''file''}} を使用できます。 以前に {{ic|VBoxManage |
+ | {{Note|追加するドライブの GUID がわからない場合は、{{ic|VBoxManage showhdinfo ''file''}} を使用できます。 以前に {{ic|VBoxManage clonemedium}} を使用して仮想ディスクをコピー/変換した場合、このコマンドは、コピー/変換が完了した直後に GUID を出力するはずです。 ランダムなGUIDを使用しても機能しません。 [http://www.virtualbox.org/manual/ch05.html#cloningvdis UUID is stored inside each disk image].}} |
==== Linux ホストと他のホスト間で転送 ==== |
==== Linux ホストと他のホスト間で転送 ==== |
||
344行目: | 342行目: | ||
$ VBoxManage internalcommands sethduuid ''/path/to/disk.vdi'' |
$ VBoxManage internalcommands sethduuid ''/path/to/disk.vdi'' |
||
− | {{Tip|[http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage |
+ | {{Tip|[http://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevdi VBoxManage clonemedium] を使用する場合は手動で UUID を新しく割り当てる必要はありません。}} |
{{Note|上記のコマンドは [[#VirtualBox によってサポートされているフォーマット|VirtualBox によってサポートされている仮想ディスクフォーマット]]を全てサポートしています。}} |
{{Note|上記のコマンドは [[#VirtualBox によってサポートされているフォーマット|VirtualBox によってサポートされている仮想ディスクフォーマット]]を全てサポートしています。}} |
||
354行目: | 352行目: | ||
== トラブルシューティング == |
== トラブルシューティング == |
||
+ | === キーボードとマウスが仮想マシンにロックされる === |
||
− | === VERR_ACCESS_DENIED === |
||
+ | これは、仮想マシンがキーボードとマウスの入力をキャプチャしたことを意味します。右の {{ic|Ctrl}} キーを押すだけで、入力は再びホストを制御することができます。 |
||
− | windows ホストにある raw vmdk イメージにアクセスするには、管理者として VirtualBox GUI を起動してください。 |
||
+ | キーを押すことなくマウスでホストを行ったり来たりして仮想マシンを透過的にコントロールし、シームレスに統合するには、guest addtions をゲスト内にインストールします。[[VirtualBox/Arch Linux をゲストにする#Guest Additions をインストール]]を読んで下さい、あなたのゲストが Arch Linux ならば、公式の VirtualBox ヘルプを読んで下さい。 |
||
− | === pacstrap スクリプトが動作しない === |
||
+ | === 64ビット OS のクライアントオプションが表示されない === |
||
− | [[#Arch Linux をゲストにする|Arch Linux をゲストにする]]とき新しいゲストで起動する前に ''pacstrap'' を使って [[#Guest Additions をインストール|Guest Additions をインストール]]する場合、''pacstrap'' を実行する前に root で {{ic|umount -l /mnt/dev}} を実行する必要があります。 |
||
+ | VM クライアントを起動したときに、64ビットオプションが使えない場合、CPU の仮想化機能 ({{ic|VT-x}}) が BIOS で有効になっていることを確認してください。 |
||
− | === modprobe Exec フォーマットエラー === |
||
+ | Windows をホストとして使っている場合、Hyper-V を無効化する必要があります。Hyper-V が有効になっていると VirtualBox が VT-x を使えなくなります [https://www.virtualbox.org/ticket/12350]。 |
||
− | あなたのシステムを最新状態にしてください: |
||
− | pacman -Syu |
||
+ | === VirtualBox の GUI がホストの GTK テーマと一致しない === |
||
− | === VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) === |
||
+ | VirtualBox のような Qt ベースのアプリケーションのテーマ化に関する情報については、[[Qt と GTK アプリケーションの外観の統合]]を参照してください。 |
||
− | これは VM を正常終了しないと発生することがあります。VM をアンロックしてください: |
||
+ | |||
− | VBoxManage controlvm nArch poweroff |
||
+ | === Ctrl+Alt+Fn をゲストに送信できない === |
||
+ | |||
+ | ゲスト OS が GNU/Linux ディストリビューションで、{{ic|Ctrl+Alt+F2}} で新しい TTY シェルを開きたい、または {{ic|Ctrl+Alt+Backspace}} で現在の X セッションを終了したい場合、これらのキーボードショートカットを適応させずに入力すると、ゲストは入力を受け取らず、ホスト (GNU/Linux ディストリビューションの場合) はこれらのショートカットキーをインターセプトしてしまいます。例えば {{ic|Ctrl+Alt+F2}} をゲストに送るには、単にあなたの ''Host Key'' (通常は右の {{ic|Ctrl}} キー) と {{ic|F2}} を同時に押してください。 |
||
=== USB サブシステムがホスト側もしくはゲスト側で動かない === |
=== USB サブシステムがホスト側もしくはゲスト側で動かない === |
||
382行目: | 382行目: | ||
また、あなたのユーザーを '''storage''' グループのメンバーに追加してください。 |
また、あなたのユーザーを '''storage''' グループのメンバーに追加してください。 |
||
+ | === USB モデム === |
||
− | === ホストオンリーのネットワークインターフェースを作成できない === |
||
+ | USB モデムをゲスト OS で使っている場合、ゲスト OS を終了するとホスト環境からモデムが使えなくなることがあります。{{ic|VBoxSVC}} を終了・再起動すれば問題は解決します。 |
||
− | Host-Only Network Adapter や Bridged Network Adapter を作るためには、カーネルモジュールの {{ic|vboxnetadp}} と {{ic|vboxnetflt}} をロードする必要があります。また、{{pkg|net-tools}} パッケージがインストールされているか確認してください。これらのカーネルモジュールを手動でロードするには: |
||
+ | === USBデバイスがゲストをクラッシュさせる === |
||
− | # modprobe -a vboxnetadp vboxnetflt |
||
+ | USB デバイスをゲストに取り付けるとクラッシュやその他の異常な動作が発生する場合は、USB コントローラを USB 2 (EHCI)から USB 3 (xHCI)、またはその逆に切り替えてみてください。 |
||
− | 起動時に自動でロードするには {{ic|/etc/modules-load.d/virtualbox.conf}} にモジュール毎に新しい行を追加してください: |
||
+ | === 仮想マシン起動時にホストがフリーズする === |
||
− | vboxdrv |
||
− | vboxnetadp |
||
− | vboxnetflt |
||
+ | 一般的に、VirtualBox や Linux カーネルをアップグレードした後に、このような問題が発生することがあります。これらを以前のバージョンにダウングレードすると解決する場合があります。 |
||
− | {{Note|これらは、以前は {{ic|/etc/rc.conf}} の {{ic|MODULES}} 配列に追加されていましたが、現在は廃止されました。}} |
||
+ | === ゲストでアナログマイクロフォンが使えない === |
||
− | このトピックについて詳しい情報が[https://bbs.archlinux.org/viewtopic.php?id=130581 ここ]にあります。 |
||
+ | アナログマイクロフォンからの音声入力がホストでは上手くできるのに、ゲストでは音声が録音できない場合、ホストに [[PulseAudio]] などの[[サウンドシステム#サウンドサーバー|サウンドサーバー]]をインストールすることで問題は解決します。 |
||
− | === WinXP: ビット深度を 16 より上げることができない === |
||
+ | ==== アップグレード後に音声入力 (マイクロフォン) が使えなくなった ==== |
||
− | 16-ビット色深度で動作させている場合、アイコンの見た目が毛羽立ったりむらがでるかもしれません。しかし、色深度をもっと高く変えようとすると、システムの解像度が低くなってしまったり、もしくは全く深度が変えられないかもしれません。これを修正するには、{{ic|regedit}} を起動し次のキーをゲスト側の Windows XP レジストリに追加します: |
||
+ | 5.1.x バージョンには音声入力まわりに問題が存在しています [https://forums.virtualbox.org/viewtopic.php?f=7&t=78797]。 |
||
− | [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services] |
||
− | "ColorDepth"=dword:00000004 |
||
+ | VirtualBox を[[ダウングレード]]することで問題は解決します。 |
||
− | それからデスクトップのプロパティウィンドウから色深度を変えてください。何も怒らない場合、強制的に画面を再描写させてください(つまり、{{ic|Host+F}} で再描写するか、フルスクリーンにしてください)。 |
||
− | === |
+ | === ISO に変換されたイメージに関する問題 === |
+ | 一部のイメージ形式は、確実に ISO に変換できません。たとえば、{{Pkg|ccd2iso}} は .ccd および .sub ファイルを無視するため、破損したファイルを含むディスクイメージが作成される可能性があります。 |
||
− | カーネルをアップグレードした後、[[systemd]] セットアップで問題が発生したら、システムを起動するときに ''init=/bin/bash'' (緊急シェルが動かない場合) を付ける必要があります。 |
||
+ | この場合、VirtualBox 内で [[CDemu]] for Linux を使用するか、ディスク イメージのマウントに使用する他のユーティリティを使用する必要があります。 |
||
− | root=/dev/mapper/vg_main-lv_root ro vga=792 resume=/dev/mapper/vg_main-lv_swap init=/bin/bash |
||
+ | === ホストオンリーのネットワークインターフェースを作成できない === |
||
− | それから ''root''-ファイルシステムを書き込み権限付きでマウントします: |
||
+ | Host-Only Network Adapter や Bridged Network Adapter を作るためには、カーネルモジュールの {{ic|vboxnetadp}} と {{ic|vboxnetflt}} をロードする必要があります。また、{{pkg|net-tools}} パッケージがインストールされているか確認してください。これらのカーネルモジュールを手動でロードするには: |
||
− | # mount / -o remount,rw |
||
+ | # modprobe -a vboxnetadp vboxnetflt |
||
− | [[#ゲスト側の Arch Linux の共有フォルダ]] に合わせて /etc/fstab を変更します。そして bash シェルから systemd を exec します: |
||
+ | 起動時に自動でロードするには {{ic|/etc/modules-load.d/virtualbox.conf}} にモジュール毎に新しい行を追加してください: |
||
− | # exec /bin/systemd |
||
+ | vboxdrv |
||
− | === ゲスト側の Arch Linux でコピーアンドペーストが機能しない === |
||
+ | vboxnetadp |
||
+ | vboxnetflt |
||
+ | {{Note|これらは、以前は {{ic|/etc/rc.conf}} の {{ic|MODULES}} 配列に追加されていましたが、現在は廃止されました。}} |
||
− | {{ic|virtualbox-guest-additions}} がバージョン {{ic|4.2.0-2}} にアップデートされてからホスト OS からゲスト側の Arch Linux へのコピーアンドペーストができなくなりました。{{ic|VBoxClient-all}} に ''root'' 権限が必要なったためだと思われます。以前のバージョンでは ''VBoxClient-all &'' を ''~/.xinitrc'' に追加しておけばコピーアンドペーストが機能していました。''~/.xinitrc'' を {{ic|sudo VBoxClient-all &}} にして {{ic|, NOPASSWD: /usr/bin/VBoxClient-all}} を sudoers ファイルのあなたのユーザ名のところに追加してください。これでまた動くはずです。sudoers ファイルの行はこのようになるはずです: |
||
+ | このトピックについて詳しい情報が[https://bbs.archlinux.org/viewtopic.php?id=130581 ここ]にあります。 |
||
− | # Allow sudo for user 'you' and let him run VBoxClient-all without requiring a password |
||
− | you ALL = PASSWD: ALL, NOPASSWD: /usr/bin/VBoxClient-all |
||
+ | === Failed to insert module === |
||
− | {{Note|sudoers を編集する時は {{ic|visudo}} を使って下さい。保存するときに構文エラーをチェックします。}} |
||
+ | モジュールをロードしようとすると以下のような問題が発生する場合: |
||
− | === ゲスト OS でシリアルポートを使う === |
||
+ | Failed to insert 'vboxdrv': Required key not available |
||
− | シリアルポートのパーティションを確認してください: |
||
+ | モジュールが署名されていること、あるいはカーネルコンフィグで {{ic|CONFIG_MODULE_SIG_FORCE}} が無効になっていることを確認してください。 |
||
− | $ /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 |
||
+ | === VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) === |
||
− | それからユーザーを '''uucp''' グループに追加して: |
||
− | # gpasswd -a $USER uucp |
||
− | ログインしなおして下さい。 |
||
+ | これは VM を正常終了しないと発生することがあります。VM をアンロックしてください: |
||
− | === Windows 8.x Error Code 0x000000C4=== |
||
+ | VBoxManage controlvm nArch poweroff |
||
− | |||
− | OS Type で Win 8 を選んだのに、起動時に以下のエラーコードが表示される場合、{{ic|CMPXCHG16B}} CPU 命令を有効化してみてください: |
||
− | |||
− | $ vboxmanage setextradata ''virtual_machine_name'' VBoxInternal/CPUM/CMPXCHG16B 1 |
||
− | |||
− | === Windows 8, 8.1, 10 がインストール・起動できない、あるいは "ERR_DISK_FULL" エラーが表示される === |
||
− | ''Settings > Storage > Controller:SATA'' から "Use Host I/O Cache" にチェックを入れて VM の設定を更新してください。 |
||
− | |||
− | === Linux ゲストの音が遅い/早い === |
||
− | |||
− | Linux カーネルの AC97 ドライバーは Virtual Box の中で実行されたときに、クロック設定を間違って認識することがあり、それによって音が遅くなったり早回しになったりします。この問題を修正するには、以下の内容で {{ic|/etc/modprobe.d}} にファイルを作成してください: |
||
− | |||
− | options snd-intel8x0 ac97_clock=48000 |
||
− | |||
− | === Xorg の起動後にゲストがフリーズする === |
||
− | |||
− | 間違ったドライバーを使っている、あるいはドライバーが存在しない場合、Xorg の起動後にゲストはフリーズします。[https://bbs.archlinux.org/viewtopic.php?pid=1167838] や [https://bbs.archlinux.org/viewtopic.php?id=156079] を見てください。''Settings > Display'' から 3D アクセラレーションを無効化して、[[Xorg]] ドライバーが全てインストールされていることを確認してください。 |
||
=== "NS_ERROR_FAILURE" が表示されメニューアイテムが表示されない === |
=== "NS_ERROR_FAILURE" が表示されメニューアイテムが表示されない === |
||
490行目: | 466行目: | ||
新しい仮想ディスクを作成するときに ''QCOW''/''QCOW2''/''QED'' ディスク形式を選択すると時々発生します。 |
新しい仮想ディスクを作成するときに ''QCOW''/''QCOW2''/''QED'' ディスク形式を選択すると時々発生します。 |
||
+ | === 仮想化命令が使用できない場合の OpenBSD の使用不可 === |
||
− | === USB モデム === |
||
+ | OpenBSD は、仮想化命令 (VT-x AMD-V) が有効になっていない他のハイパーバイザー上では正常に動作すると報告されていますが、これらの命令がない VirtualBox 上で実行される OpenBSD 仮想マシンは、 多くのセグメンテーションフォールトを発生させて使用不能になるでしょう。VirtualBox を ''-norawr0'' 引数で起動すれば、[https://www.virtualbox.org/ticket/3947 この問題は解決するかも]しれません。このようにしてみてください。 |
||
− | USB モデムをゲスト OS で使っている場合、ゲスト OS を終了するとホスト環境からモデムが使えなくなることがあります。{{ic|VBoxSVC}} を終了・再起動すれば問題は解決します。 |
||
+ | |||
+ | $ VBoxSDL -norawr0 -vm ''name_of_OpenBSD_VM'' |
||
=== Windows ゲストで "The specified path does not exist. Check the path and then try again." エラー === |
=== Windows ゲストで "The specified path does not exist. Check the path and then try again." エラー === |
||
505行目: | 483行目: | ||
インターネット上には信頼されるサイトのリストに VBOXSVR を追加するように書かれていることもありますが、その方法は Windows 7 以上では上手く行きません。 |
インターネット上には信頼されるサイトのリストに VBOXSVR を追加するように書かれていることもありますが、その方法は Windows 7 以上では上手く行きません。 |
||
+ | === Windows 8.x Error Code 0x000000C4=== |
||
− | === 64ビット OS のクライアントオプションが表示されない === |
||
− | + | OS Type で Win 8 を選んだのに、起動時に以下のエラーコードが表示される場合、{{ic|CMPXCHG16B}} CPU 命令を有効化してみてください: |
|
+ | $ vboxmanage setextradata ''virtual_machine_name'' VBoxInternal/CPUM/CMPXCHG16B 1 |
||
− | Windows をホストとして使っている場合、Hyper-V を無効化する必要があります。Hyper-V が有効になっていると VirtualBox が VT-x を使えなくなります [https://www.virtualbox.org/ticket/12350]。 |
||
− | === |
+ | === Windows 8, 8.1, 10 がインストール・起動できない、あるいは "ERR_DISK_FULL" エラーが表示される === |
+ | ''Settings > Storage > Controller:SATA'' から "Use Host I/O Cache" にチェックを入れて VM の設定を更新してください。 |
||
+ | === WinXP: ビット深度を 16 より上げることができない === |
||
− | 原因と解決方法: |
||
− | * SMAP |
||
− | SMAP が有効になっているカーネルでは Intel Broadwell の大抵のチップセットで動作しないという既知の問題があります。問題は調査中ですが、問題を解決するとうたわれている様々な vboxhost モジュールが世に出回っています。これを書いている時点では、100% 完全に解決できるという方法は、[[カーネルパラメータ|カーネルブートコマンドライン]]に {{ic|nosmap}} オプションを追加して SMAP を無効にする方法しかありません。 |
||
− | * ハードウェア仮想化 |
||
− | ハードウェア仮想化 (VT-x/AMD-V) を無効化することで問題が解決する場合があります。 |
||
− | * 様々なカーネルバグ |
||
− | ** Fuse でマウントしたパーティション (ntfs など) [https://bbs.archlinux.org/viewtopic.php?id=185841], [https://bugzilla.kernel.org/show_bug.cgi?id=82951#c12] |
||
+ | 16-ビット色深度で動作させている場合、アイコンの見た目が毛羽立ったりむらがでるかもしれません。しかし、色深度をもっと高く変えようとすると、システムの解像度が低くなってしまったり、もしくは全く深度が変えられないかもしれません。これを修正するには、{{ic|regedit}} を起動し次のキーをゲスト側の Windows XP レジストリに追加します: |
||
− | 通常、上記のような問題は VirtualBox や Linux カーネルのアップデートで発生します。前のバージョンにダウングレードすることで解決するかもしれません。 |
||
+ | [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services] |
||
− | === 起動時に終了コード 1 (0x1) で仮想マシンが終了してしまう === |
||
+ | "ColorDepth"=dword:00000004 |
||
+ | それからデスクトップのプロパティウィンドウから色深度を変えてください。何も怒らない場合、強制的に画面を再描写させてください(つまり、{{ic|Host+F}} で再描写するか、フルスクリーンにしてください)。 |
||
− | 仮想マシンを起動すると、以下のようなエラーメッセージが表示される場合: |
||
+ | === Windows: 3D アクセラレーションが有効な場合の画面のちらつき === |
||
− | {{bc|The virtual machine has terminated unexpectedly during startup with exit code 1 (0x1) |
||
− | NS_ERROR_FAILURE 0x80004005 |
||
− | Component: MachineWrap |
||
− | Interface: IMachine}} |
||
+ | VirtualBox > 4.3.14 には、3D アクセラレーションを使用する Windows ゲストがちらつくリグレッションがあります。r120678 以降、[[環境変数]]の設定を認識するパッチが実装されているため、次のように VirtualBox を起動します。 |
||
− | 上記の問題は {{Pkg|virtualbox}} や {{Pkg|virtualbox-host-modules}}{{Broken package link|置換パッケージ: {{Pkg|virtualbox-host-modules-arch}}}} パッケージのアップデートによって引き起こされることがあります。{{ic|vboxdrv}} モジュールをリロードしてください: |
||
+ | $ CR_RENDER_FORCE_PRESENT_MAIN_THREAD=0 VirtualBox |
||
− | {{bc|# modprobe -r vboxdrv |
||
− | # modprobe vboxdrv |
||
− | }} |
||
− | |||
− | === ゲストでアナログマイクロフォンが使えない === |
||
+ | VirtualBox サービスがまだ実行されていないことを確認します。[https://www.virtualbox.org/ticket/13653 VirtualBox bug 13653] を参照してください。 |
||
− | アナログマイクロフォンからの音声入力がホストでは上手く出来るのに、ゲストでは音声が録音できない場合、ホストに [[PulseAudio]] などの[[サウンドシステム#サウンドサーバー|サウンドサーバー]]をインストールすることで問題は解決します。 |
||
− | |||
− | ==== アップグレード後に音声入力 (マイクロフォン) が使えなくなった ==== |
||
− | |||
− | 5.1.x バージョンには音声入力まわりに問題が存在しています [https://forums.virtualbox.org/viewtopic.php?f=7&t=78797]。 |
||
− | |||
− | VirtualBox を[[ダウングレード]]することで問題は解決します。 |
||
=== Wayland で VirtualBox を起動できない: Segmentation fault === |
=== Wayland で VirtualBox を起動できない: Segmentation fault === |
||
− | この問題は、Qt が Wayland を検出 |
+ | この問題は、Qt が Wayland を検出する (例えば、{{ic|1=XDG_SESSION_TYPE=wayland}})一方で、VirtualBox がまだ Wayland で動作しないために発生します。{{Bug|58761}} と [https://www.virtualbox.org/ticket/18679 upstream bug] を参照してください。 |
[[環境変数]] {{ic|1=QT_QPA_PLATFORM=xcb}} を設定することで、Qt のプラットフォーム検出を無効にし、Wayland 上で X11 を強制的に動作させることができます。他の Qt アプリケーション (通常は Wayland でうまく動作する) に影響を与えないように、{{ic|1=QT_QPA_PLATFORM=xcb}} は VirtualBox 起動時のみ設定されるべきです。 |
[[環境変数]] {{ic|1=QT_QPA_PLATFORM=xcb}} を設定することで、Qt のプラットフォーム検出を無効にし、Wayland 上で X11 を強制的に動作させることができます。他の Qt アプリケーション (通常は Wayland でうまく動作する) に影響を与えないように、{{ic|1=QT_QPA_PLATFORM=xcb}} は VirtualBox 起動時のみ設定されるべきです。 |
||
558行目: | 519行目: | ||
{{Note|Wayland でマウスやキーボードに問題がある場合は、上記の設定もお試しください。}} |
{{Note|Wayland でマウスやキーボードに問題がある場合は、上記の設定もお試しください。}} |
||
+ | === Intel グラフィックスを使用したゲストでのランダムフリーズ === |
||
− | === Random freezing in guests with intel graphics === |
||
+ | Intel CPU およびグラフィックスでは、ゲストに多くのプロセッサを割り当てるとレンダリングパフォーマンスが低下し、ランダムフリーズが発生する可能性があります。より少ないプロセッサまたは 1 つのプロセッサを割り当てることで解決できます。 |
||
− | With Intel cpu and graphics, allocating more processors for the guest can lower render performance, thus cause random freezing. Allocating less or one processor can help. |
||
=== フルスクリーンモードでゲストの画面が表示されない === |
=== フルスクリーンモードでゲストの画面が表示されない === |
||
+ | |||
ウィンドウマネージャによっては (例: [[i3]])、オーバーレイバーが原因で VirtualBox のフルスクリーンモードで問題が発生します。この問題を回避するには、"Guest Settings --> User Interface --> Mini ToolBar" から "Show in Full-screen/Seamless" オプションを無効にしてください。詳しくは [https://www.virtualbox.org/ticket/14323 上流のバグレポート] を参照。 |
ウィンドウマネージャによっては (例: [[i3]])、オーバーレイバーが原因で VirtualBox のフルスクリーンモードで問題が発生します。この問題を回避するには、"Guest Settings --> User Interface --> Mini ToolBar" から "Show in Full-screen/Seamless" オプションを無効にしてください。詳しくは [https://www.virtualbox.org/ticket/14323 上流のバグレポート] を参照。 |
||
+ | === Intel Tiger Lake チップセット搭載の Windows 10 ゲスト OS でランダムクラッシュが発生する === |
||
− | === Failed to insert module === |
||
+ | [[カーネルパラメータ]]に {{ic|1=split_lock_detect=off}} を追加して、スプリットロック検出を無効にする。 |
||
− | モジュールをロードしようとすると以下のような問題が発生する場合: |
||
+ | |||
− | Failed to insert 'vboxdrv': Required key not available |
||
+ | 詳細は VirtualBox の [https://www.virtualbox.org/ticket/20180/#comment:8 Ticket #20180] に記載されています。 |
||
− | モジュールが署名されていること、あるいはカーネルコンフィグで {{ic|CONFIG_MODULE_SIG_FORCE}} が無効になっていることを確認してください。 |
||
+ | |||
+ | === 第11世代Intel CPUでの仮想マシン起動時のフリーズ === |
||
+ | |||
+ | {{ic|1=traps: Missing ENDBR}} と {{ic|1=kernel BUG at arch/x86/kernel/traps.c}} というメッセージが [[journal]] に表示されたら、[[カーネルパラメータ]]として {{ic|1=ibt=off}} を追加してみるとよいでしょう。{{Bug|74891}} にリンクしているようです。 |
||
+ | |||
+ | === セキュアブートを有効にすると、設定の保存に失敗する === |
||
+ | |||
+ | VirtualBox 7.0.0 では、以前のバージョンの VirtualBox で作成された仮想マシンで Secure Boot を有効にすると、nondescript エラー ({{Bug|76234}}) が発生して失敗することがあります。 |
||
+ | |||
+ | Failed to save the settings. |
||
+ | |||
+ | 解決方法するには、''Enable Secure Boot'' チェックボックスのすぐ下にある ''Reset Keys to Default'' ボタンをクリックします。 |
||
== 参照 == |
== 参照 == |
||
* [http://www.virtualbox.org/manual/UserManual.html VirtualBox User Manual] |
* [http://www.virtualbox.org/manual/UserManual.html VirtualBox User Manual] |
||
+ | * [[Wikipedia:VirtualBox]] |
||
+ | |||
+ | {{TranslationStatus|Virtualbox|2022-10-20|753657}} |
2024年7月10日 (水) 20:31時点における最新版
VirtualBox は 既存のオペレーティングシステム上で仮想マシンと 呼ばれる特別な環境でオペレーティングシステムを実行するために使用される ハイパーバイザ です。VirtualBoxは常に開発されており、新機能は継続的に実装されています。Qt GUIインターフェイスに加えて、仮想マシンを管理および実行するためのヘッドレスおよび SDL コマンドラインツールが付属しています。
共有フォルダーやクリップボード、ビデオアクセラレーション、シームレスウィンドウ統合モードなど、ホストシステムの機能をゲストに統合するために、一部のゲストオペレーティングシステムにゲストの追加機能が提供されています。
目次
- 1 ホストとしてインストール
- 2 Arch Linux をゲストにする
- 3 仮想ディスクの管理
- 4 ヒントとテクニック
- 5 トラブルシューティング
- 5.1 キーボードとマウスが仮想マシンにロックされる
- 5.2 64ビット OS のクライアントオプションが表示されない
- 5.3 VirtualBox の GUI がホストの GTK テーマと一致しない
- 5.4 Ctrl+Alt+Fn をゲストに送信できない
- 5.5 USB サブシステムがホスト側もしくはゲスト側で動かない
- 5.6 USB モデム
- 5.7 USBデバイスがゲストをクラッシュさせる
- 5.8 仮想マシン起動時にホストがフリーズする
- 5.9 ゲストでアナログマイクロフォンが使えない
- 5.10 ISO に変換されたイメージに関する問題
- 5.11 ホストオンリーのネットワークインターフェースを作成できない
- 5.12 Failed to insert module
- 5.13 VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)
- 5.14 "NS_ERROR_FAILURE" が表示されメニューアイテムが表示されない
- 5.15 仮想化命令が使用できない場合の OpenBSD の使用不可
- 5.16 Windows ゲストで "The specified path does not exist. Check the path and then try again." エラー
- 5.17 Windows 8.x Error Code 0x000000C4
- 5.18 Windows 8, 8.1, 10 がインストール・起動できない、あるいは "ERR_DISK_FULL" エラーが表示される
- 5.19 WinXP: ビット深度を 16 より上げることができない
- 5.20 Windows: 3D アクセラレーションが有効な場合の画面のちらつき
- 5.21 Wayland で VirtualBox を起動できない: Segmentation fault
- 5.22 Intel グラフィックスを使用したゲストでのランダムフリーズ
- 5.23 フルスクリーンモードでゲストの画面が表示されない
- 5.24 Intel Tiger Lake チップセット搭載の Windows 10 ゲスト OS でランダムクラッシュが発生する
- 5.25 第11世代Intel CPUでの仮想マシン起動時のフリーズ
- 5.26 セキュアブートを有効にすると、設定の保存に失敗する
- 6 参照
ホストとしてインストール
Arch Linux 上で VirtualBox の仮想マシンを起動するには、以下のインストール手順に従いってください。
コアパッケージのインストール
virtualbox パッケージをインストールしてください。さらに、ホストモジュールのパッケージを選択してインストールしてください:
- linux カーネルを使用している場合 virtualbox-host-modules-arch を選択してください。
- 他のカーネルを使っている場合 virtualbox-host-dkms を選択してください。
virtualbox-host-dkms によって提供される virtualbox モジュールをコンパイルするには、インストールしているカーネルにあわせて適切なヘッダーパッケージをインストールする必要があります (例: linux-lts なら linux-lts-headers パッケージ、linux-zen なら linux-zen-headers パッケージ) [1]。VirtualBox かカーネルのどちらかがアップデートされると、DKMS の Pacman フックによって自動的にカーネルモジュールが再コンパイルされます。
モジュールに署名する
CONFIG_MODULE_SIG_FORCE
オプションを有効にしたカスタムカーネルを使っている場合、カーネルのコンパイル時に生成される鍵を使ってモジュールに署名する必要があります。
カーネルツリーのフォルダに移動して、以下のコマンドを実行してください:
# for module in `ls /lib/modules/$(uname -r)/kernel/misc/{vboxdrv.ko,vboxnetadp.ko,vboxnetflt.ko,vboxpci.ko}` ; do ./scripts/sign-file sha1 certs/signing_key.pem certs/signing_key.x509 $module ; done
カーネルモジュールのロード
virtualbox-host-modules-arch と virtualbox-host-dkms は systemd-modules-load
サービスを使用して起動時にモジュールをロードします。インストール後にモジュールをロードするには、再起動するか、モジュールを手動で一回ロードします。モジュールのリストは、/usr/lib/modules-load.d/virtualbox-host-modules-arch.conf
または /usr/lib/modules-load.d/virtualbox-host-dkms.conf
にあります。
VirtualBox が使っているカーネルモジュールの中には vboxdrv
と呼ばれる必須モジュールがあり、仮想マシンを起動する前にロードする必要があります。
手動でモジュールをロードするには:
# modprobe vboxdrv
次のモジュールは、高度な構成でのみ必要です。
vboxnetadp
とvboxnetflt
はどちらも "ホストオンリーネットワーク" 機能を使うときに必要になります。正確に言えば、vboxnetadp
は VirtualBox のグローバル設定でホストインターフェイスを作成するのに必要で、vboxnetflt
はそのネットワークインターフェイスを使って仮想マシンを起動するのに必要です。
ユーザー名を vboxusers グループに追加
利用するユーザー名を vboxusers グループに追加してください。追加しなくても問題なく動作しますが、共有フォルダなどの任意機能を動かすためには必要です。新しいグループは自動では現在のセッションに適用されません; ユーザーは一度ログインしなおすか newgrp
や sudo -u $USER -s
などのコマンドで新しい環境を始める必要があります。現在のユーザーを vboxusers
グループに追加するには、次を入力してください:
# gpasswd -a $USER vboxusers
Guest additions ディスク
VirtualBox を動かすホスト側 (Arch Linux) には、virtualbox-guest-iso もインストールすることが推奨されています。これはゲスト OS に guest additions をインストールするために使われるディスクイメージです。.iso ファイルは /usr/lib/virtualbox/additions/VBoxGuestAdditions.iso
に配置され、仮想マシンの中から手動でマウントする必要があります。マウントしたら、ゲストの中で guest additions インストーラーを実行できます。
無人テンプレート
ゲストシステムを手動でインストールする必要をなくすために、一部の OS では 無人インストール がサポートされています。これにより、ユーザーは、マシンを起動する前に、VirtualBox のインターフェイスにインストールされるようにシステムを構成できます。セットアッププロセスの最後に、それ以上のユーザー操作を必要とせずに OS がインストールされます。この機能には virtualbox-unattended-templatesAUR パッケージが必要です。
拡張パック
VirtualBox 4.0 から、GPL ではないコンポーネントはアプリケーションから分割されるようになりました。フリーでない、個人利用においてのみ利用可能なライセンスでリリースされていますが、追加機能が入っている Oracle Virtualbox 拡張パックに興味をひかれるかもしれません。手動でインストールする代わりに、AUR には virtualbox-ext-oracleAUR パッケージが存在します。ビルド済みのバージョンは seblu リポジトリにあります。
伝統的な手動のインストールをしたい場合: 拡張パックを手動でインストールして GUI (File > Preferences > Extensions) または VBoxManage extpack install <.vbox-extpack>
でインストールしてください。VirtualBox に特権アクセスを与えるためのツールキット (Polkit や gksu など) が必須です。このエクステンションのインストールには root 権限が必要になります。
フロントエンド
VirtualBox には複数のフロントエンドが存在しています:
- 普通の GUI で VirtualBox を使いたい場合は
VirtualBox
を使ってください。 - コマンドライン内だけで VirtualBox を使いたい場合 (起動と既存の仮想マシンの設定変更だけ)、
VBoxSDL
コマンドが使えます。VBoxSDL はメニューやコントロールがない、ピュアな仮想マシンだけを含んだシンプルなウィンドウのみを表示します。 - GUI を (サーバーなどで) 実行せずにコマンドラインで VirtualBox を使って仮想マシンを作成・起動・設定したい場合、ホスト側で全く目に見える出力を行わず VRDP データだけを送信する
VBoxHeadless
を使います。
Wayland のセキュリティ機能 (つまり GDM を使用する場合) は VirtualBox がすべてのキーボード入力を取得することを禁止しています。これはゲスト OS にウィンドウマネージャのショートカットを渡したいときに厄介です。これは VirtualBox をホワイトリスト化することで回避できます。
$ gsettings get org.gnome.mutter.wayland xwayland-grab-access-rules $ gsettings set org.gnome.mutter.wayland xwayland-grab-access-rules "['VirtualBox Machine']"
最初のコマンドは、他のアプリケーションがすでにホワイトリストに登録されているかどうかを表示します。もしあれば、'VirtualBox Machine'をそのリストに追加してください(唯一のリストにするのではありません)。
また、PhpVirtualBox を使えばウェブインターフェイスで仮想マシンを管理することが可能です。
仮想マシンを作成する方法は VirtualBox マニュアルを参照してください。
Arch Linux をゲストにする
VirtualBox/Arch Linux をゲストにする を参照してください。
仮想ディスクの管理
VirtualBox/ヒントとテクニック#VirtualBox の仮想マシンを他のハイパーバイザにインポート・エクスポートも参照。
VirtualBox によってサポートされているフォーマット
VirtualBox は以下の仮想ディスクフォーマットをサポートしています:
- VDI (Virtual Disk Image): VirtualBox で仮想マシンを作成したときにデフォルトで使用されるオープンなコンテナです。
- VMDK (Virtual Machine Disk): VMware によって開発されたフォーマットです。最初は仕様が公開されていませんでしたが、今では VirtualBox でサポートされるオープンなフォーマットになっています。VMDK では 2GB のファイルに分割することができます。巨大なファイルをサポートしていない環境に仮想マシンを保存したい場合に有用です。Parallels の HDD フォーマット以外で、このような機能を提供するフォーマットはありません。
- VHD (Virtual Hard Disk): Microsoft によって Windows Virtual PC や Hyper-V で使用されているフォーマットです。Microsoft 製品を使用する場合、このフォーマットを選択する必要があります。
- VHDX (読み取り専用): Microsoft によって開発された Virtual Hard Disk フォーマットの拡張版です。2012年9月4日に Windows Server 2012 に搭載された Hyper-V 3.0 と一緒にリリースされました。VHDX は (ブロックアライメントの改善により) パフォーマンスが向上しており、大きなブロックサイズとジャーナルをサポートしています。VirtualBox は読み取り専用で VHDX をサポートしています [2]。
- HDD (バージョン 2): Parallels Inc によって開発されている HDD フォーマットは Parallels Desktop for Mac などのハイパーバイザ製品で使われています。プロプライエタリなフォーマットで、ドキュメントがないために、新しいバージョンの HDD (バージョン 3 と 4) はサポートされていません。
- QED (QEMU Enhanced Disk): オープンソースのハイパーバイザである QEMU で使われていた古いファイルフォーマットです。2010年に設計されたフォーマットで、今では QCOW2 などに取って代わられています。特徴として完全な非同期 I/O パス、強力なデータ整合性、バッキングファイル、スパースファイルなどがあります。QED フォーマットは古いバージョンの QEMU で作成された仮想マシンとの互換性のためだけにサポートされています。
- QCOW (QEMU Copy On Write): QEMU の現行フォーマットです。QCOW フォーマットは zlib ベースの透過圧縮や暗号化をサポートしています (暗号化は問題があるため推奨されていません)。QCOW にはふたつのバージョンが存在します: QCOW と QCOW2 です。QCOW2 は QCOW よりも優れています。VirtualBox が完全にサポートしているのは QCOW です [3]。QCOW2 にはリビジョン違いがふたつあります: QCOW2 0.10 と QCOW2 1.1 になります (QEMU で仮想ディスクを作成した場合、後者がデフォルトです)。VirtualBox は QCOW2 をサポートしていません。
- OVF (Open Virtualization Format): 異なるハイパーバイザ間での仮想マシンの相互運用性を考えて設計されたオープンなフォーマットです。VirtualBox は VBoxManage のインポート・エクスポート機能によって OVF フォーマットをサポートしています [4]。ただし 既知の制限 が存在します。
- RAW: 特定のファイルフォーマットのコンテナに格納せず直接ディスクに仮想ディスクを配置するモードです。VirtualBox は複数の方法で RAW 機能をサポートしています: RAW ディスクを 特定のフォーマット に変換、ディスクを RAW にクローン、あるいは物理ディスクやファイルを指し示す VMDK ファイルを直接使用する [5]。
ディスクイメージフォーマットの変換
VBoxManage clonemedium を使うことで VDI, VMDK, VHD, RAW を相互に変換することができます。
$ VBoxManage clonemedium disk inputfile outputfile --format outputformat
例えば VDI を VMDK に変換するには:
$ VBoxManage clonemedium disk source.vdi destination.vmdk --format VMDK
QCOW
VirtualBox は QEMU の QCOW2 ディスクイメージフォーマットをサポートしていません。VirtualBox で QCOW2 ディスクイメージを使うには変換する必要があります。qemu の qemu-img
コマンドを使うことで変換できます。qemu-img
は QCOW を VDI, VMDK, VHDX, RAW などのフォーマットに変換します (qemu-img --help
を実行することで変換可能なフォーマットを確認できます)。
$ qemu-img convert -O output_fmt inputfile outputfile
例えば QCOW2 を VDI に変換するには:
$ qemu-img convert -O vdi source.qcow2 destination.vdi
QCOW2 には 0.10 と 1.1 がありますが、-o compat=revision
でどちらを使うか指定できます。
仮想ディスクのマウント
VDI
VDI イメージのマウントは容量固定のイメージ (静的イメージ) でしか使えません。動的 (動的容量割当) イメージのマウントは簡単にできません。
マウントするには (VDI 内の) パーティションのオフセットが必要です。それから offData
の値を 32256
に追加してください (例: 69632 + 32256 = 101888):
$ VBoxManage internalcommands dumphdinfo <storage.vdi> | grep "offData"
そうしたら以下のコマンドでマウントできます:
# mount -t ext4 -o rw,noatime,noexec,loop,offset=101888 <storage.vdi> /mntpoint/
mount.vdi スクリプトを使うこともできます (スクリプトを /usr/bin/
にインストールしてください):
# mount -t vdi -o fstype=ext4,rw,noatime,noexec vdi_file_location /mnt/
もしくは qemu のカーネルモジュールを使う方法もあります [6]:
# modprobe nbd max_part=16 # qemu-nbd -c /dev/nbd0 <storage.vdi> # mount /dev/nbd0p1 /mnt/dir/
アンマウントするには:
# umount /mnt/dir/ # qemu-nbd -d /dev/nbd0
パーティションノードが反映されない場合、partprobe /dev/nbd0
を使ってみてください。VDI パーティションは直接ノードにマッピングすることもできます: qemu-nbd -P 1 -c /dev/nbd0 <storage.vdi>
。
VHD
VDI と同様に、VHD イメージも QEMU の nbd モジュールでマウントできます。
# modprobe nbd # qemu-nbd -c /dev/nbd0 storage.vhd # mount /dev/nbd0p1 /mnt
unmount は以下の通り。
# umount /mnt # qemu-nbd -d /dev/nbd0
仮想ディスクの縮小
仮想ディスクの縮小は .vdi ファイルでしか行うことができません。
仮想マシンを起動して無駄なファイルを削除してください。bleachbit などのツールを使うことができます (Windows でも利用できます)。
空き領域をゼロ埋めするツールは複数存在します:
- Bleachbit を使用する場合、GUI で System > Free disk space にチェックを入れるか、CLI で
bleachbit -c system.free_disk_space
を使ってください。 - UNIX ベースの環境の場合、
dd
または dcflddAUR を使います (違いについては こちら を参照):
# dcfldd if=/dev/zero of=/fillfile bs=4M
fillfile
がパーティションの上限に達すると、1280 blocks (5120Mb) written.dcfldd:: No space left on device
というメッセージが表示されます。ユーザースペースと予約ブロック以外が全てゼロで埋められたということになります。全ての空きブロックを上書きするために root でコマンドを実行してください。ext ファイルシステムを使っている場合、デフォルトではファイルシステムブロックの数パーセントがスーパーユーザー用に予約されています (Ext4#予約ブロックを参照)。- ゼロ埋めが完了したら、作成された
fillfile
ファイルを削除してください。
- Windows の場合、以下のツールが存在します:
- Sysinternals Suite の
sdelete
を使う場合、仮想マシンに存在するドライブごとにsdelete -s -z c:
を実行してください。 - スクリプトを使いたい場合、PowerShell を使う方法 が存在します (全てのドライブで繰り返してください)。
PS> ./Write-ZeroesToFreeSpace.ps1 -Root c:\ -PercentFree 0
- Sysinternals Suite の
空きディスク領域を消去できたら、仮想マシンをシャットダウンしてください。
仮想マシンを起動したら、ファイルシステムのチェックを実行することを推奨します。
- UNIX ベースのシステムの場合、
fsck
を手動で使うことができます。
- カーネルパラメータを設定することで起動時に強制的にディスクチェックを行うことができます。
- Windows システムの場合:
chkdsk c: /F
を実行する (c:
はスキャンを行いたいディスクに置き換えてください)。- こちら の
FsckDskAll
を使う。chkdsk
と基本的に同じソフトウェアですが、全てのドライブで繰り返し実行する必要がありません。
VBoxManage modifymedium を使って .vdi からゼロ領域を削除:
$ VBoxManage modifymedium disk your_disk.vdi --compact
仮想ディスクの拡大
一般的な方法
仮想マシンを作成したときに選択したハードドライブのサイズが小さすぎて、容量一杯まで使い切ってしまった場合、VirtualBox マニュアルでは VBoxManage modifymedium を使うことが推奨されています。しかしながら、このコマンドは VDI と VHD ディスクで動的にサイズを割り当てているときしか機能しません。固定サイズの仮想ディスクのサイズを変更したい場合、以下の手順に従ってください。
まず、拡大したいディスクのとなりに新しく仮想ディスクを作成:
$ VBoxManage createmedium disk -filename new.vdi --size 10000
サイズは MiB で指定します。例えば 10000MiB ~= 10GiB です。new.vdi は新しく作成するハードドライブの名前になります。
次に、古い仮想ディスクを新しい仮想ディスクに複製します (しばらく時間がかかります):
$ VBoxManage clonemedium disk old.vdi new.vdi --existing
古いハードドライブを取り外して新しいドライブを接続してください (斜体の引数は適当な文字列に置き換えてください):
$ VBoxManage storageattach VM_name --storagectl SATA --port 0 --medium none $ VBoxManage storageattach VM_name --storagectl SATA --port 0 --medium new.vdi --type hdd
ストレージコントローラとポート番号を確認するには、VBoxManage showvminfo VM_name
コマンドを使います。以下のように出力されます (斜字に注目):
[...] Storage Controller Name (0): IDE Storage Controller Type (0): PIIX4 Storage Controller Instance Number (0): 0 Storage Controller Max Port Count (0): 2 Storage Controller Port Count (0): 2 Storage Controller Bootable (0): on Storage Controller Name (1): SATA Storage Controller Type (1): IntelAhci Storage Controller Instance Number (1): 0 Storage Controller Max Port Count (1): 30 Storage Controller Port Count (1): 1 Storage Controller Bootable (1): on IDE (1, 0): Empty SATA (0, 0): /home/wget/IT/Virtual_machines/GNU_Linux_distributions/ArchLinux_x64_EFI/Snapshots/{6bb17af7-e8a2-4bbf-baac-fbba05ebd704}.vdi (UUID: 6bb17af7-e8a2-4bbf-baac-fbba05ebd704) [...]
GParted live イメージ をダウンロードして仮想 CD/DVD ディスクファイルとしてマウントし、仮想マシンを起動して、パーティションを拡大・移動してください。そして GParted live をアンマウントして再起動してください。
最後に、VirtualBox から仮想ディスクの登録を解除してファイルを削除してください:
$ VBoxManage closemedium disk old.vdi $ rm old.vdi
VDI ディスクの容量を拡大
仮想ディスクが VDI の場合、以下のコマンドを実行:
$ VBoxManage modifymedium disk your_virtual_disk.vdi --resize the_new_size
実行したら上記と同じように Gparted を使ってパーティションのサイズを変更してください。
.vbox ファイルから仮想ディスクを手動で交換
GUI や VBoxManage
を使うよりも XML ファイルを編集するほうが簡単だという場合、仮想マシンの .vbox ファイルで仮想ディスクを交換(あるいは追加)することができます。GUID とフォーマットを必要に応じて置き換えるだけです:
ArchLinux_vm.vbox
<HardDisk uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}" location="ArchLinux_vm.vdi" format="VDI" type="Normal"/>
<StorageController>
のサブタグ <AttachedDevice>
の GUID も新しく置き換えてください:
ArchLinux_vm.vbox
<AttachedDevice type="HardDisk" port="0" device="0"> <Image uuid="{670157e5-8bd4-4f7b-8b96-9ee412a712b5}"/> </AttachedDevice>
Linux ホストと他のホスト間で転送
ハードディスクとスナップショットが保存されるパスの情報は .vbox 拡張子のファイルの <HardDisks> .... </HardDisks>
タグにあります。手動で編集したりスクリプトを使うことで必要な変更を行うことができます。
#!/bin/bash NewPath="${PWD}/" Snapshots="Snapshots/" Filename="$1" awk -v SetPath="$NewPath" -v SnapPath="$Snapshots" '{if(index($0,"<HardDisk uuid=") != 0){A=$3;split(A,B,"="); L=B[2]; gsub(/\"/,"",L); sub(/^.*\//,"",L); sub(/^.*\\/,"",L); if(index($3,"{") != 0){SnapS=SnapPath}else{SnapS=""}; print $1" "$2" location="\"SetPath SnapS L"\" "$4" "$5} else print $0}' "$Filename"
仮想ディスクを複製して新しい UUID を割り当てる
UUID は VirtualBox で広く使われています。仮想マシンと仮想ディスクにはそれぞれ異なる UUID が存在します。VirtualBox で仮想マシンを起動すると、VirtualBox は仮想マシンのインスタンスの全ての UUID を記録します。VirtualBox で登録されるアイテムを確認するには VBoxManage list を参照してください。
仮想ディスクファイルを手動でコピーして仮想ディスクを複製した場合、同じ仮想マシンでディスクを使うときは複製した仮想ディスクに新しい UUID を割り当てる必要があります。
以下のコマンドを使って新しい UUID を仮想ディスクに割り当てられます:
$ VBoxManage internalcommands sethduuid /path/to/disk.vdi
ヒントとテクニック
高度な設定については、VirtualBox/ヒントとテクニック を見てください。
トラブルシューティング
キーボードとマウスが仮想マシンにロックされる
これは、仮想マシンがキーボードとマウスの入力をキャプチャしたことを意味します。右の Ctrl
キーを押すだけで、入力は再びホストを制御することができます。
キーを押すことなくマウスでホストを行ったり来たりして仮想マシンを透過的にコントロールし、シームレスに統合するには、guest addtions をゲスト内にインストールします。VirtualBox/Arch Linux をゲストにする#Guest Additions をインストールを読んで下さい、あなたのゲストが Arch Linux ならば、公式の VirtualBox ヘルプを読んで下さい。
64ビット OS のクライアントオプションが表示されない
VM クライアントを起動したときに、64ビットオプションが使えない場合、CPU の仮想化機能 (VT-x
) が BIOS で有効になっていることを確認してください。
Windows をホストとして使っている場合、Hyper-V を無効化する必要があります。Hyper-V が有効になっていると VirtualBox が VT-x を使えなくなります [7]。
VirtualBox の GUI がホストの GTK テーマと一致しない
VirtualBox のような Qt ベースのアプリケーションのテーマ化に関する情報については、Qt と GTK アプリケーションの外観の統合を参照してください。
Ctrl+Alt+Fn をゲストに送信できない
ゲスト OS が GNU/Linux ディストリビューションで、Ctrl+Alt+F2
で新しい TTY シェルを開きたい、または Ctrl+Alt+Backspace
で現在の X セッションを終了したい場合、これらのキーボードショートカットを適応させずに入力すると、ゲストは入力を受け取らず、ホスト (GNU/Linux ディストリビューションの場合) はこれらのショートカットキーをインターセプトしてしまいます。例えば Ctrl+Alt+F2
をゲストに送るには、単にあなたの Host Key (通常は右の Ctrl
キー) と F2
を同時に押してください。
USB サブシステムがホスト側もしくはゲスト側で動かない
時々 usb サブシステムが自動で検知されずホスト側の USB ドライブが表示されなかったりエラーが出ることがあります (例: Could not load the Host USB Proxy service: VERR_NOT_FOUND)。これはユーザーが vboxusers グループになっていても起こります。詳しくは [8] を見て下さい。
~/.bashrc
に以下を加え再起動するか新しいインスタンスを開始すれば USB サブシステムが動作します。
VBOX_USB=usbfs
また、あなたのユーザーを storage グループのメンバーに追加してください。
USB モデム
USB モデムをゲスト OS で使っている場合、ゲスト OS を終了するとホスト環境からモデムが使えなくなることがあります。VBoxSVC
を終了・再起動すれば問題は解決します。
USBデバイスがゲストをクラッシュさせる
USB デバイスをゲストに取り付けるとクラッシュやその他の異常な動作が発生する場合は、USB コントローラを USB 2 (EHCI)から USB 3 (xHCI)、またはその逆に切り替えてみてください。
仮想マシン起動時にホストがフリーズする
一般的に、VirtualBox や Linux カーネルをアップグレードした後に、このような問題が発生することがあります。これらを以前のバージョンにダウングレードすると解決する場合があります。
ゲストでアナログマイクロフォンが使えない
アナログマイクロフォンからの音声入力がホストでは上手くできるのに、ゲストでは音声が録音できない場合、ホストに PulseAudio などのサウンドサーバーをインストールすることで問題は解決します。
アップグレード後に音声入力 (マイクロフォン) が使えなくなった
5.1.x バージョンには音声入力まわりに問題が存在しています [9]。
VirtualBox をダウングレードすることで問題は解決します。
ISO に変換されたイメージに関する問題
一部のイメージ形式は、確実に ISO に変換できません。たとえば、ccd2iso は .ccd および .sub ファイルを無視するため、破損したファイルを含むディスクイメージが作成される可能性があります。
この場合、VirtualBox 内で CDemu for Linux を使用するか、ディスク イメージのマウントに使用する他のユーティリティを使用する必要があります。
ホストオンリーのネットワークインターフェースを作成できない
Host-Only Network Adapter や Bridged Network Adapter を作るためには、カーネルモジュールの vboxnetadp
と vboxnetflt
をロードする必要があります。また、net-tools パッケージがインストールされているか確認してください。これらのカーネルモジュールを手動でロードするには:
# modprobe -a vboxnetadp vboxnetflt
起動時に自動でロードするには /etc/modules-load.d/virtualbox.conf
にモジュール毎に新しい行を追加してください:
vboxdrv vboxnetadp vboxnetflt
このトピックについて詳しい情報がここにあります。
Failed to insert module
モジュールをロードしようとすると以下のような問題が発生する場合:
Failed to insert 'vboxdrv': Required key not available
モジュールが署名されていること、あるいはカーネルコンフィグで CONFIG_MODULE_SIG_FORCE
が無効になっていることを確認してください。
VBOX_E_INVALID_OBJECT_STATE (0x80BB0007)
これは VM を正常終了しないと発生することがあります。VM をアンロックしてください:
VBoxManage controlvm nArch poweroff
"NS_ERROR_FAILURE" が表示されメニューアイテムが表示されない
仮想マシンの最初の起動時に以下のエラーメッセージが表示される場合:
Failed to open a session for the virtual machine debian. Could not open the medium '/home/.../VirtualBox VMs/debian/debian.qcow'. QCow: Reading the L1 table for image '/home/.../VirtualBox VMs/debian/debian.qcow' failed (VERR_EOF). VD: error VERR_EOF opening image file '/home/.../VirtualBox VMs/debian/debian.qcow' (VERR_EOF). Result Code: NS_ERROR_FAILURE (0x80004005) Component: Medium
VirtualBox を終了して新しいマシンのファイルを全て削除して、virtualbox の設定ファイルから MachineRegistry
メニュー (あるいはあなたが作成した問題のマシン) の最後の行を削除してください:
~/.config/VirtualBox/VirtualBox.xml
... <MachineRegistry> <MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/debian/debian.vbox"/> <MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/ubuntu/ubuntu.vbox"/><MachineEntry uuid="{00000000-0000-0000-0000-000000000000}" src="/home/void/VirtualBox VMs/lastvmcausingproblems/lastvmcausingproblems.qcow"/></MachineRegistry> ...
新しい仮想ディスクを作成するときに QCOW/QCOW2/QED ディスク形式を選択すると時々発生します。
仮想化命令が使用できない場合の OpenBSD の使用不可
OpenBSD は、仮想化命令 (VT-x AMD-V) が有効になっていない他のハイパーバイザー上では正常に動作すると報告されていますが、これらの命令がない VirtualBox 上で実行される OpenBSD 仮想マシンは、 多くのセグメンテーションフォールトを発生させて使用不能になるでしょう。VirtualBox を -norawr0 引数で起動すれば、この問題は解決するかもしれません。このようにしてみてください。
$ VBoxSDL -norawr0 -vm name_of_OpenBSD_VM
Windows ゲストで "The specified path does not exist. Check the path and then try again." エラー
管理者権限を必要とする .exe ファイルを Windows ゲストの共有フォルダから実行するとエラーメッセージが発生します。詳しくは バグレポート を見てください。
複数の対処方法があります:
- Control Panel -> Action Center -> "Change User Account Control settings" の左側 -> スライダーを "Never notify" に設定 -> OK して再起動することで UAC を無効化する
- 共有フォルダからゲストのフォルダにファイルをコピーしてから実行する
インターネット上には信頼されるサイトのリストに VBOXSVR を追加するように書かれていることもありますが、その方法は Windows 7 以上では上手く行きません。
Windows 8.x Error Code 0x000000C4
OS Type で Win 8 を選んだのに、起動時に以下のエラーコードが表示される場合、CMPXCHG16B
CPU 命令を有効化してみてください:
$ vboxmanage setextradata virtual_machine_name VBoxInternal/CPUM/CMPXCHG16B 1
Windows 8, 8.1, 10 がインストール・起動できない、あるいは "ERR_DISK_FULL" エラーが表示される
Settings > Storage > Controller:SATA から "Use Host I/O Cache" にチェックを入れて VM の設定を更新してください。
WinXP: ビット深度を 16 より上げることができない
16-ビット色深度で動作させている場合、アイコンの見た目が毛羽立ったりむらがでるかもしれません。しかし、色深度をもっと高く変えようとすると、システムの解像度が低くなってしまったり、もしくは全く深度が変えられないかもしれません。これを修正するには、regedit
を起動し次のキーをゲスト側の Windows XP レジストリに追加します:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services] "ColorDepth"=dword:00000004
それからデスクトップのプロパティウィンドウから色深度を変えてください。何も怒らない場合、強制的に画面を再描写させてください(つまり、Host+F
で再描写するか、フルスクリーンにしてください)。
Windows: 3D アクセラレーションが有効な場合の画面のちらつき
VirtualBox > 4.3.14 には、3D アクセラレーションを使用する Windows ゲストがちらつくリグレッションがあります。r120678 以降、環境変数の設定を認識するパッチが実装されているため、次のように VirtualBox を起動します。
$ CR_RENDER_FORCE_PRESENT_MAIN_THREAD=0 VirtualBox
VirtualBox サービスがまだ実行されていないことを確認します。VirtualBox bug 13653 を参照してください。
Wayland で VirtualBox を起動できない: Segmentation fault
この問題は、Qt が Wayland を検出する (例えば、XDG_SESSION_TYPE=wayland
)一方で、VirtualBox がまだ Wayland で動作しないために発生します。FS#58761 と upstream bug を参照してください。
環境変数 QT_QPA_PLATFORM=xcb
を設定することで、Qt のプラットフォーム検出を無効にし、Wayland 上で X11 を強制的に動作させることができます。他の Qt アプリケーション (通常は Wayland でうまく動作する) に影響を与えないように、QT_QPA_PLATFORM=xcb
は VirtualBox 起動時のみ設定されるべきです。
デスクトップエントリから起動する場合は、デスクトップエントリ#環境変数の修正の指示に従い、Exec=VirtualBox ...
で始まる行を Exec=env QT_QPA_PLATFORM=xcb VirtualBox ...
に変更してください。シェルから起動する場合は、エイリアス(Bash#エイリアス) を virtualbox
から env QT_QPA_PLATFORM=xcb virtualbox
に変更します。
Intel グラフィックスを使用したゲストでのランダムフリーズ
Intel CPU およびグラフィックスでは、ゲストに多くのプロセッサを割り当てるとレンダリングパフォーマンスが低下し、ランダムフリーズが発生する可能性があります。より少ないプロセッサまたは 1 つのプロセッサを割り当てることで解決できます。
フルスクリーンモードでゲストの画面が表示されない
ウィンドウマネージャによっては (例: i3)、オーバーレイバーが原因で VirtualBox のフルスクリーンモードで問題が発生します。この問題を回避するには、"Guest Settings --> User Interface --> Mini ToolBar" から "Show in Full-screen/Seamless" オプションを無効にしてください。詳しくは 上流のバグレポート を参照。
Intel Tiger Lake チップセット搭載の Windows 10 ゲスト OS でランダムクラッシュが発生する
カーネルパラメータに split_lock_detect=off
を追加して、スプリットロック検出を無効にする。
詳細は VirtualBox の Ticket #20180 に記載されています。
第11世代Intel CPUでの仮想マシン起動時のフリーズ
traps: Missing ENDBR
と kernel BUG at arch/x86/kernel/traps.c
というメッセージが journal に表示されたら、カーネルパラメータとして ibt=off
を追加してみるとよいでしょう。FS#74891 にリンクしているようです。
セキュアブートを有効にすると、設定の保存に失敗する
VirtualBox 7.0.0 では、以前のバージョンの VirtualBox で作成された仮想マシンで Secure Boot を有効にすると、nondescript エラー (FS#76234) が発生して失敗することがあります。
Failed to save the settings.
解決方法するには、Enable Secure Boot チェックボックスのすぐ下にある Reset Keys to Default ボタンをクリックします。