WindowsやMACのPCにて手軽にLinuxなどの検証を行いたい場合がある。そのような場合には、PCにインストール可能なホスト側仮想化ソフトウェアを利用し、Linuxの仮想マシンを構築することができる。
ホスト型仮想化ソフトウェアとして利用可能なものは、以下のようなものがある。
製品名 |
プラットフォーム |
説明 |
Oracle VM VirtualBox |
Windows, macOS, Linuxなど |
様々なプラットフォームで動作し、無償であるにも関わらずかなり柔軟に仮想マシンの設定が可能。また、Vagrantを使えば構築の自動化も可能。 |
VMware Workstation Player |
Windows |
vSphereでおなじみのVMwareのホスト型仮想化ソフトウェア。 |
VMware Fusion Player |
macOS |
macOSを所有していないため評価不可。 |
今回は、「Oracle VM VirtualBox」をWindows環境にインストールし、VirtualBox上にWindows Server 2019とRHEL 8.4をインストールする手順を記載する。
環境
VirtualBoxをインストールする手ごろなWindowsクライアントがすぐに用意できなかったため、たまたまインストールしていたWindows Server 2022 PreviewにVirtualBoxをインストールしたが、他Windows環境でも手順に差異はないだろう。
また、VirtualBoxは6.1.24と7.1.0の二種類でインストールを確認しているが、本記事の画面は6.1.24のものを記載する。
- Windows Server 2022 Preview
- Oracle VM VirtualBox 6.1.24 / 7.1.0
なお、私の環境はESXi上のOSにVirtualBoxをインストールする構成となる。このような構成の場合は、ESXiのCPUの設定にて「ハードウェア アシストによる仮想化をゲスト OS に公開」を有効にすること。
Oracle VM VirtualBoxインストール手順
1. Oracle VM VirtualBoxのダウンロード
VirtualBox本家とOracle 日本のいずれかからVirtualBoxのダウンロードができる。Oracle 日本でダウンロードできるバージョンは少し古くなってしまうことから、特に理由がなければ本家からダウンロードすれば問題ない。
また、同じサイトでダウンロードできるOracle VM VirtualBox Extension Packもダウンロードしておく。Extension Packをインストールすることで、USBコントローラやディスク暗号化などの拡張機能を利用することができる。
2. (VirtualBox 7以降)Pythonのインストール
VirtualBoxの前提として、Pythonとpywin32のインストールが必要となる。Pythonは以下からダウンロードしてインストールする。Pythonは管理者として実行してインストールすること。
Pythonインストール後、PowerShellを開き、pywin32をインストールする。
pip install pywin32 --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org
3. VirtualBox本体のインストール
ダウンロードしたexeファイルをダブルクリックすれば、インストールウィザードを起動する。基本的には、すべてを「次へ」を押して進めばよい。
インストールが開始されると、「このデバイスをインストールしますか?」と表示されるので、「インストール」を選んでおく。
4. Extension Packのインストール
VitualBoxをインストールしたのち、Extension Packのファイル (vbox-extpack
) をダブルクリックすることでインストールを開始することができる。
ライセンス規約が表示されるので、一番下までスクロールしたのち、「同意します」を選択する。
インストールが成功すると、以下のような「拡張機能パッケージ Oracle VM Virtual Box Extension Pack のインストールに成功しました。」のメッセージが表示される。
※完了メッセージが表示されない場合もある模様。
VirtualBox上にWindows Server 2019をインストール
1. 仮想マシンを作成
「新規」ボタンをクリックすることで、仮想マシンの作成ウィザードが表示される。以下のように設定を行い仮想マシンを作成する。
設定値 |
説明 |
名前 |
任意で指定。今回はwin2019とする。 |
タイプ |
Microsoft Windows |
バージョン |
Windows 2019 (64-bit) |
メモリーサイズ |
任意で指定。デフォルトは2048MB |
ハードディスク |
「仮想ハードディスクを作成する」を選択 |
ハードディスクのファイルタイプ |
デフォルトの「VDI (VirtualBox Disk Image)」を選択する。なお、「VHD」 (Hyper-Vで使用) や「VMDK」 (ESXiで使用) も選択可能。 |
物理ハードディスクにあるストレージ |
可変サイズと固定サイズが選択できる。いわゆるシックプロビジョニングとシンプロビジョニングに対応する。「固定」の場合はディスク作成時にすべての容量が割り当てられてしまい効率が悪いので、使用した分だけディスクサイズを割り当てていく「可変」を選択する。 |
ファイルの場所とサイズ |
任意で指定。デフォルトは50GB |
2. OSをインストールメディアから起動
作成した仮想マシンの「設定」を開き、「ストレージ」→「光学ドライブ」を選択する。CDマークを選択し、「ディスクファイルを選択」を選択し、Windows Server 2019のISOイメージを選択する。
仮想マシンの起動モードは以下3種類ある。VirtualBox用語となっており、初見では動作の違いが判らないため、それぞれの違いを以下に記載する。
起動モード |
説明 |
通常起動 |
起動時に仮想マシンのコンソールが開く。コンソールを閉じる際は、「状態保存 (いわゆるサスペンド)」または「仮想マシンの停止」のみ選択が可能。 |
ヘッドレス起動 |
起動時に仮想マシンのコンソールが開かない。起動後に「表示」を選択することで仮想マシンのコンソールを開くことができる。コンソールを閉じる際に「バックグラウンドで動作を継続」を選択することで、仮想マシンのコンソールを閉じても起動状態を継続させることが可能。 |
デタッチモード起動 |
起動時に仮想マシンのコンソールが開く。それ以外は「ヘッドレス起動」と同様となり、「バックグラウンドで動作を継続」を選択可能。 |
通常は、仮想マシンのバックグラウンドでの起動が選択可能な、「デタッチモード起動」を選択しておけば問題ないだろう。
3. OSインストール
Windows Serverのインストールメディアを読み込むので、Enterを押しインストールを開始させる。インストール手順自体は特に通常と変更は不要であるため割愛する。
インストール完了後はインストールメディアは不要となることから、「デバイス」→「光学ドライブ」→「仮想ドライブからディスクを除去」を選択しインストールメディアを取り出しておこう。
4. Guest Additionsをインストール
VirtualBoxでは「Guest Additions」と呼ばれる、ESXiでいうところのVMware Toolsと同様の機能を待つエージェントのインストールが推奨される。
「デバイス」→「Guest Additions CDイメージの挿入…」を選択する。
すると、仮想CDドライブに「VirtualBox Guest Additions」というメディアがマウントされるので、これをダブルクリックすることでインストールウィザードが開始される。インストールウィザードでは、基本的には、すべてを「次へ」を押して進めばよい。
インストールが開始されると、「このデバイスをインストールしますか?」と表示されるので、「インストール」を選んでおく。
最後に再起動を求められるため、再起動して完了となる。
Guest Additionsが正常にインストールされていることの確認は、「仮想マシン」→「セッション情報」→「ランタイム情報」から確認することができる。
VirtualBox上にRHEL 8.4をインストール
1. 仮想マシンを作成~OSインストール
Windows Serverと同様の手順となるため割愛する。
2. Guest Additionsをインストール
RHELに対してGuest Additionsをインストールする場合は、GUIではなくCLIによるインストールを行う。
まず、前提パッケージとして以下が必要となる。
- kernel-headers
- kernel-devel
- tar
- bzip2
- gcc
- make
- perl
- elfutils-libelf-devel
上記パッケージをdnf
またはyum
を使ってインストールを行うのだが、インターネット経由でインストールする場合、ネットワーク設定やサブスクリプション登録など手順が多くなる。そこで、今回はRHELのOSインストールメディアに含まれるパッケージを用いてインストールを行う。
まず、OSインストールメディアのパッケージが含まれるディレクトリをリポジトリとして登録する。
# cat << EOF > /etc/yum.repos.d/dvd-base.repo
[dvd-base]
baseurl=file:///media/BaseOS/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
EOF
# cat << EOF > /etc/yum.repos.d/dvd-appstream.repo
[dvd-appstream]
baseurl=file:///media/AppStream/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
EOF
次にOSインストールメディアをマウントし、dnf
にてパッケージのインストールを行う。
# mount /dev/cdrom /media/
mount: /media: 警告: デバイスは書き込み禁止です、読み込み専用でマウントします.
# dnf install kernel-headers kernel-devel -y
# dnf install tar bzip2 gcc make perl elfutils-libelf-devel -y
# eject /dev/sr0
次に、OSインストールメディアを「Guest Additions」のメディアに変更する。Windows Serverの手順と同様、「デバイス」→「Guest Additions CDイメージの挿入…」を選択したのち、VBoxLinuxAdditions.run
を実行すると、自動的にGuest Additionsがインストールされる。
# mount /dev/cdrom /media/
mount: /media: 警告: デバイスは書き込み禁止です、読み込み専用でマウントします.
# /media/VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 6.1.24 Guest Additions for Linux........
VirtualBox Guest Additions installer
Removing installed version 6.1.24 of VirtualBox Guest Additions...
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules. This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Building the modules for kernel
4.18.0-305.el8.x86_64.
ValueError: File context for /opt/VBoxGuestAdditions-6.1.24/other/mount.vboxsf already defined
最後に再起動をしておく。
# reboot
再起動後、Guest Additionsのサービスvboxadd
の正常起動を確認できれば完了となる。
# systemctl status vboxadd
● vboxadd.service
Loaded: loaded (/opt/VBoxGuestAdditions-7.1.0/init/vboxadd; enabled; preset: disabled)
Active: active (exited) since Fri 2024-09-13 22:13:12 JST; 56s ago
Process: 43447 ExecStart=/opt/VBoxGuestAdditions-7.1.0/init/vboxadd start (code=exited, status=0/SUCCESS)
Main PID: 43447 (code=exited, status=0/SUCCESS)
CPU: 483ms
9月 13 22:13:12 localhost.localdomain systemd[1]: Starting vboxadd.service...
9月 13 22:13:12 localhost.localdomain vboxadd[43447]: VirtualBox Guest Additions: Starting.
9月 13 22:13:12 localhost.localdomain systemd[1]: Finished vboxadd.service.
更新履歴
- 2021/8/14 新規作成
- 2024/9/14 VirtualBox 7.1.0のインストール結果を反映