WindowsにLinuxの仮想環境を作って、その上にOracle DBを入れて動かしたい。
今回はその第1回「仮想化ソフト VirtualBoxの導入」です。
自分の勉強も含め、備忘録的に書いていきたいと思います。(もし間違い等があれば、ご指摘いただけると幸いです)
Oracle VM VirtualBoxとは
VirtualBoxとは、オープンソースの仮想化ソフトウェアの一つ。オペレーティングシステム(OS)上で実行されるアプリケーションの一つとして仮想的なコンピュータ(仮想マシン/VM:Virtual Machine)を構築し、その上で別のOSを実行することができる。
VirtualBox(Oracle VM VirtualBox)とは – 意味をわかりやすく – IT用語辞典 e-Words
例えば、今回やろうとしているような、Windows(ホストOS)が動作しているコンピュータ上で、Linux(ゲストOS)を実行することができる、ということ。こういうのを「ホストOS型仮想化」と言うらしい。
ちなみに、Wikipedia「VirtualBox」の説明では次の通り。
Oracle VM VirtualBox (オラクル ブイエム バーチャルボックス)とは、x86ならびにAMD64/Intel64にかかる仮想化ソフトウェアパッケージの一つ。当初はInnotekにより開発され、現在の開発は米国オラクルが行っている。
VirtualBox – Wikipedia
今はオラクルが開発してるんかぁ。
「x86」や「AMD64/Intel64」に関しては、最後の注釈で詳しく説明しています。
実施環境
項目 | 情報 |
OS | Windows 11 Home 64bit |
CPU | AMD Ryzen 9 5900HX |
メモリ | 16.0 GB LPDDR4X-4266 |
ストレージ | SSD:512 GB NVMe HFM512GD3JX013N |
スペックの詳細はこちらの記事に書いています。
VirtualBoxの導入方法
導入の流れに関しては、主にこちらの記事を参考にさせていただきました。
VirtualBoxのダウンロード
VirtualBoxの公式サイトにアクセスする。
今回は「VirtualBox 7.0.6 platform packages」の「Windows hosts」をダウンロードする。
あと便利そうなので「VirtualBox 7.0.6 Oracle VM VirtualBox Extension Pack」もあわせてダウンロードした[1]。
VirtualBoxのインストール
ダウンロードしたexeファイル(VirtualBox-7.0.6-155176-Win.exe)を実行すると、次のメッセージが出てきた。
Oracle VM VirtualBox 7.0.6 needs the Microsoft Visual C++ 2019 Redistributable Package being installed first. Please install and restart the installation of Oracle VM VirtualBox 7.0.6.
インストールするには「Microsoft Visual C++ 2019 Redistributable Package」が必要とのこと[2]。
それを気にせずに「OK」と押してみると、次のように表示された。
Oracle VM VirtualBox 7.0.6 Setup Wizard ended prematurely
Oracle VM VirsualBox 7.0.6 Setup Wizard ended prematurely because of an error. Your system has not been modifed. To install this program at a later time, run Setup Wizard again. Click the Finish button to exit the Setup Wizard.
「Oracle VM VirtualBox 7.0.6 セットアップウィザードが途中で終了しました」とのこと(prematurelyは「通常より早く」という意味)。
そして、下の見切れているボタンの「Finish」を押すと、致命的なエラーが発生したという表示が出た。
やはり「Microsoft Visual C++ 2019 Redistributable Package」が必要らしい。
Microsoft Visual C++ 2019 Redistributable Packageのインストール
こちらのページからインストーラをダウンロードする。
「x64」「ARM64」「x86」の中から、自分のPCに合ったものを選んでダウンロードする[3]。
ダウンロードしたexeファイル(VC_redist.x64.exe)を実行すると、ライセンス条項の同意のウィンドウが表示された。
内容を確認して、問題がなければ「ライセンス条項および使用条件に同意する」にチェックを入れて、インストールする。
念のため、PCを再起動して次へ進む。
VirtualBoxのインストール(再挑戦)
改めて、先ほどダウンロードしたexeファイル(VirtualBox-7.0.6-155176-Win.exe)を実行。今度はうまくいきそうな感じ。
「Next」を押して次へ。
インストールする内容と場所についての変更が可能らしい。今回はデフォルトのままで「Next」を押す。
Warning: Network Interfaces
Installing the Oracle VM VirtualBox 7.0.6 Networking feature will reset your network connection and temporarily disconect you from the network.
Proceed with installation now?
「警告:ネットワークインタフェース」ということで、インストール中に、一時的にネットワーク接続が切断される可能性があるとのこと。
特に問題はなかったので「Yes」を押して次に進んだ。
Missing Dependencies Python Core / win32api
Installing the Oracle VM VirtualBox 7.0.6 Python bindings requires the Python Core package and the win32api bindings to be installed first.
When continuing the installation of the Oracle VM VirtualBox 7.0.6 Python bindings now, those need to be set up manually later. Refer to the Oracle VM VirtualBox 7.0.6 SDK manual for more information.
Proceed with installation now?
「Python Core package」と「win32api」が必要らしい。
このままVirtualBoxのインストールを継続することもできるけど、後で手動でセットアップする必要があるとのこと。
これは必要になったら入れることにして、今回は先にVirtualBoxをインストールすることにした[4]。
「Install」を押してインストールする。
数秒足らずでインストールできた。「Finish」を押して終了する。
以上で、VirtualBoxのインストールは完了。
VirtualBox Extension Packのインストール
起動したVirtualBoxを一度閉じて、最初にダウンロードしたVirtualBox Extension Pack(Oracle_VM_VirtualBox_Extension_Pack-7.0.6a-155176.vbox-extpack)をダブルクリックして開く。
こう言われると少し怖いけど「インストール」を選択。
この後、英語でライセンス条項が表示されるので、問題がなければ「同意します」を選択する。
これでVirtualBox Extension Packのインストールもできた。
以上で、Oracle VM VirtualBoxのセットアップは完了。
次回へ続く
今回はWindows PCに仮想化ソフトOracle VM VirtualBoxの導入を行いました。
続きは以下の記事、第2回「VirtualBox 仮想マシンの作成」となります。
注釈
[1] VirtualBox Extension Packについて
こちらの記事によると、VirtualBox Extension Packは「VirtualBoxの機能を拡張してくれるパック」みたいです。インストールすることで次のようなことができるらしい。
- USB 2.0のサポート
- USB 3.0のサポート
- リモートデスクトップによる遠隔制御
- Webカメラのサポート
- ゲストの仮想ディスクの暗号化
など。これは便利そうですね。
<本文に戻る>
[2] Microsoft Visual C++ Redistributable Packageとは何か?
調べてみると、Microsoft Visual C++ Redistributable Packageは「Microsoft Visual C++ 再頒布可能パッケージ」と訳されるみたいです。
Microsoftのドキュメントを見てみると、
Visual C++ 再頒布可能パッケージは、Microsoft C および C++ (MSVC) ランタイム ライブラリをインストールします。 これらのライブラリは、Microsoft C および C++ ツールを使用してビルドされた多くのアプリケーションで必要になります。 アプリでこれらのライブラリを使用する場合は、アプリをインストールする前に、Microsoft Visual C++ 再頒布可能パッケージをターゲット システムにインストールしておく必要があります。
サポートされている最新の Visual C++ 再頒布可能パッケージのダウンロード | Microsoft Learn
とのことで、つまり、VirtualBoxもMicrosoft C およびC++ (MSVC)を使っているからインストールが必要ということなんですかね。
ちなみにMSVCとは、Microsoft Visual C++の略らしい(出典:Wikipedia「Microsoft Visual C++」)。
また、ランタイムライブラリとは、次のような意味。
コンピュータプログラムの実行時に必要となるソフトウェア部品(モジュール)のこと。単に「ランタイム」と略されることもある。
ランタイムライブラリ(実行時ライブラリ)とは – 意味をわかりやすく – IT用語辞典 e-Words
<本文に戻る>
[3]「x64」「ARM64」「x86」の違いは?
まず「x86」と「x64」の違いについては、こちらの記事が分かりやすかったです。
64ビット版のCPUはそのまま「x64」と呼ぶのに、32ビット版のCPUは「x86」と呼ぶのは少しややこしいですね…。
ちなみに、なぜ32ビット版CPUを「x86」と呼ぶのかについて、Wikipedia「x86」を見てみると
初期のプロセッサの型番が「8086」「80186」「80286」「80386」「80486」と続いたため、総称して「80×86」、更に型番の下2桁が共通するところから「x86」(エックスはちろく、ペケはちろく)や「86系」などと呼ばれるようになった。
x86 – Wikipedia
とのことで、なんとなく分かるようで分からないような……。
こちらの年表も参考にしながら、何とか理解しようと次のような図を作成したのですが、これも正しく書けているか自信がありません。ただ頑張って作ったので、一応載せておきます。
要するに、Intel 8086以降の命令セットアーキテクチャが「x86」と呼ばれ、その中に(広義には)16ビット、32ビット、64ビットCPUが含まれます。ただし、現在は16ビットCPUはあまり使われず、逆に64ビットCPUが普及しているという状況を踏まえ、32ビットCPUが含まれる「x86」に対して、64ビットCPUを「x64」と区別して呼ぶことにしたみたいです。
や、ややこしい……。
こちらの記事に、「実際の定義」と「一般的な理解」の違いについて、とても分かりやすい図が載せられていました(この違いのせいでややこしかったんですね……)。
ちなみに、残り1つの「ARM64」については、以下の説明の通りです。
ARM64とは、英アーム(Arm)社が開発したマイクロプロセッサ(MPU/CPU)の基本設計(アーキテクチャ)の一つで、プログラムやデータを64ビット単位で処理するためのもの。ARMv8以降に採用されている。
ARM64とは – 意味をわかりやすく – IT用語辞典 e-Words
自分のパソコンのCPUアーキテクチャの種類を確認したいときは、コマンドプロンプトにset processor
と入力すると表示されます。私のPCではPROCESSOR_ARCHITECTURE=AMD64
と表示されたので、64ビットCPUであることが分かりました。
<本文に戻る>
[4]「Python Core package」と「win32api」は入れなくてよいのか?
Oracle VM VirtualBoxのドキュメントによると、
The Python language bindings are only required if the Oracle VM VirtualBox API is to be used by external Python applications.
Oracle® VM VirtualBox Administrator’s Guide for Release 7.0 – Chapter 6 Security Guide
とありました。
日本語にすると「Python言語バインディングは、Oracle VM VirtualBox APIを外部のPythonアプリケーションで使用するときのみ必要です。」となります。たぶん、この「Python language bindings」が「Python Core package」のことを指していると思われます。
今のところ、VirtualBoxをPythonで制御する予定はないので、こちらは入れなくてもいいかなと思っています。
<本文に戻る>