Windows環境でのVirtualBoxとUbuntu仮想マシンのセットアップ

Windows上でVirtualBoxとUbuntu 24.04仮想マシンを自動構築するバッチスクリプトとその説明である。

項目 内容
目的 コマンドラインによる仮想環境構築の自動化を習得
使用ツール winget(パッケージ管理)、VBoxManage(VM管理)
構築環境 VirtualBox + Ubuntu 24.04 LTS(メモリ8GB、ストレージ60GB)
所要時間 約30分(ISOダウンロード時間を除く)
前提 Windows 11(64bit)、管理者権限、70GB以上の空き容量

スクリプト実行により、VirtualBoxのインストールからUbuntu仮想マシンの作成・設定までが一括で完了する。

1. 取り組み内容

  1. スクリプトを実行し、仮想マシンを作成
  2. VBoxManage showvminfo で設定値を確認

この取組みで獲得できるスキル

用語:

2. 前提条件

3. コマンド解説

3.1 wingetオプション

オプション 意味
--scope machine 全ユーザー向けにインストール
--id パッケージの一意識別子を指定
-e 完全一致検索
--silent UIを表示せず実行
--accept-source-agreements ソース契約に自動同意
--accept-package-agreements パッケージ契約に自動同意

3.2 VBoxManage modifyvm 主要オプション

オプション 設定内容 本スクリプトの値
--memory RAMサイズ(MB) 8192
--cpus CPU数 2
--vram ビデオメモリ(MB) 128
--firmware ファームウェア種別 efi
--paravirt-provider 準仮想化プロバイダ kvm(Linux向け)
--graphicscontroller グラフィックコントローラ vmsvga

3.3 ストレージ構成

仮想マシン
├── SATA Controller(IntelAhci)
│   └── Port 0: 仮想HDD(60GB, VDI形式)
└── IDE Controller(PIIX4)
    └── Port 0: DVDドライブ(Ubuntu ISO)

4. スクリプト全体

@echo off
REM ============================================================
REM VirtualBox + Ubuntu 24.04 仮想マシン自動構築スクリプト
REM 管理者権限で実行すること
REM ============================================================

REM 管理者権限チェック
net session >nul 2>&1
if errorlevel 1 (
    echo 管理者権限で実行してください
    exit /b 1
)

REM VirtualBox をシステム領域にインストール
winget install --scope machine --id Oracle.VirtualBox -e --silent --accept-source-agreements --accept-package-agreements

REM VirtualBox Extension Pack をインストール
winget install --scope machine --id Oracle.VirtualBoxExtensionPack -e --silent --accept-source-agreements --accept-package-agreements

REM VBoxManage のパス設定
set "VBOX_PATH=C:\Program Files\Oracle\VirtualBox"
set "PATH=%PATH%;%VBOX_PATH%"

REM Ubuntu 24.04 LTS ISO ダウンロード設定
set "ISO_URL=https://releases.ubuntu.com/noble/ubuntu-24.04.3-desktop-amd64.iso"
set "ISO_DIR=%USERPROFILE%\VirtualBox VMs\ISO"
set "ISO_FILE=%ISO_DIR%\ubuntu-24.04.3-desktop-amd64.iso"

REM ISOディレクトリ作成
if not exist "%ISO_DIR%" mkdir "%ISO_DIR%"

REM ISOファイルが存在しない場合のみダウンロード
if exist "%ISO_FILE%" (
    echo Ubuntu 24.04 LTS ISO は既に存在します:%ISO_FILE%
) else (
    echo Ubuntu 24.04 LTS ISO をダウンロード中...
    curl -L -o "%ISO_FILE%" "%ISO_URL%"
    if errorlevel 1 (
        echo ダウンロードに失敗しました
        exit /b 1
    )
    echo ダウンロード完了
)

REM 仮想マシン設定
set "VM_NAME=Ubuntu2404"
set "VM_DIR=%USERPROFILE%\VirtualBox VMs\%VM_NAME%"
set "VDI_FILE=%VM_DIR%\%VM_NAME%.vdi"
set "MEMORY_MB=8192"
set "STORAGE_MB=61440"

REM 同名VM存在確認
VBoxManage showvminfo "%VM_NAME%" >nul 2>&1
if not errorlevel 1 (
    echo 仮想マシン "%VM_NAME%" は既に存在します
    echo 削除する場合: VBoxManage unregistervm "%VM_NAME%" --delete
    exit /b 1
)

REM 仮想マシンディレクトリ作成
if not exist "%VM_DIR%" mkdir "%VM_DIR%"

REM 仮想マシン作成・登録
VBoxManage createvm --name="%VM_NAME%" --ostype=Ubuntu_64 --register --basefolder="%USERPROFILE%\VirtualBox VMs"

REM 基本設定(メモリ8GB, CPU2コア)
VBoxManage modifyvm "%VM_NAME%" --memory=%MEMORY_MB% --cpus=2 --ioapic=on --acpi=on --pae=on

REM グラフィック設定
VBoxManage modifyvm "%VM_NAME%" --vram=128 --graphicscontroller=vmsvga

REM ファームウェア設定(EFI)
VBoxManage modifyvm "%VM_NAME%" --firmware=efi

REM パフォーマンス設定
VBoxManage modifyvm "%VM_NAME%" --paravirt-provider=kvm --nested-paging=on

REM 入力デバイス設定
VBoxManage modifyvm "%VM_NAME%" --mouse=usbtablet --keyboard=usb

REM ネットワーク設定(NAT)
VBoxManage modifyvm "%VM_NAME%" --nic1=nat --nic-type1=82540EM --cable-connected1=on

REM オーディオ設定
VBoxManage modifyvm "%VM_NAME%" --audio-enabled=on --audio-driver=default --audio-controller=hda --audio-out=on

REM クリップボード・ドラッグ&ドロップ共有
VBoxManage modifyvm "%VM_NAME%" --clipboard-mode=bidirectional --drag-and-drop=bidirectional

REM USB設定
VBoxManage modifyvm "%VM_NAME%" --usb-ohci=on --usb-ehci=on

REM RTC設定
VBoxManage modifyvm "%VM_NAME%" --rtc-use-utc=on

REM 仮想ハードディスク作成(60GB)
VBoxManage createmedium disk --filename="%VDI_FILE%" --size=%STORAGE_MB% --format=VDI --variant=Standard

REM SATAコントローラ作成・ハードディスク接続
VBoxManage storagectl "%VM_NAME%" --name="SATA Controller" --add=sata --controller=IntelAhci --bootable=on
VBoxManage storageattach "%VM_NAME%" --storagectl="SATA Controller" --port=0 --device=0 --type=hdd --medium="%VDI_FILE%"

REM IDEコントローラ作成・DVDドライブ接続
VBoxManage storagectl "%VM_NAME%" --name="IDE Controller" --add=ide --controller=PIIX4
VBoxManage storageattach "%VM_NAME%" --storagectl="IDE Controller" --port=0 --device=0 --type=dvddrive --medium="%ISO_FILE%"

REM ブート順序設定
VBoxManage modifyvm "%VM_NAME%" --boot1=dvd --boot2=disk --boot3=none --boot4=none

REM === 動作確認 ===
echo.
echo === 動作確認 ===
VBoxManage --version
VBoxManage list extpacks
VBoxManage list vms
VBoxManage showvminfo "%VM_NAME%" | findstr /C:"Memory size" /C:"Number of CPUs" /C:"Firmware" /C:"VRAM size"

echo.
echo セットアップ完了
echo VirtualBox GUI から仮想マシン "%VM_NAME%" を起動してください

確認すべき出力項目:

5. Ubuntu環境の追加設定

Ubuntuインストール完了後、Guest Additionsのインストールと日本語環境の構築を行う。

5.1 Guest Additionsのインストール

Guest Additionsは、ホストOSとゲストOS間の連携機能(クリップボード共有、画面解像度の自動調整、guestcontrolによるコマンド実行等)を提供する。

手順1:Ubuntu内で依存パッケージをインストール

Ubuntuのターミナルで以下を実行する:

sudo apt update
sudo apt install -y build-essential dkms linux-headers-$(uname -r)

手順2:Guest Additions ISOをマウント

Windowsのコマンドプロンプトで以下を実行する:

set "GA_ISO=C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso"
if not exist "%GA_ISO%" (
    echo Guest Additions ISOが見つかりません:%GA_ISO%
    exit /b 1
)
VBoxManage storageattach "Ubuntu2404" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium "%GA_ISO%"

手順3:Guest Additionsをインストール

Ubuntuのターミナルで以下を実行する:

sudo mount /dev/cdrom /mnt
sudo /mnt/VBoxLinuxAdditions.run
sudo reboot

5.2 日本語環境の構築

Guest Additionsインストール後、guestcontrolを使用してWindowsからUbuntuにスクリプトを転送し、日本語環境を構築できる。

手順1:日本語環境構築スクリプトを作成

以下の内容をC:\temp\setup-japanese.shとして保存する(フォルダがない場合は作成する):

#!/bin/bash
wget https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -P /tmp/
wget https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -P /tmp/
sudo cp /tmp/ubuntu-ja-archive-keyring.gpg /tmp/ubuntu-jp-ppa-keyring.gpg /usr/share/keyrings/
sudo wget https://www.ubuntulinux.jp/sources.list.d/noble.sources -O /etc/apt/sources.list.d/ubuntu-ja.sources
sudo apt update
sudo apt install -y ubuntu-defaults-ja
echo "日本語環境の構築が完了しました"

手順2:スクリプトをUbuntuに転送

Windowsのコマンドプロンプトで以下を実行する:

set "VM_NAME=Ubuntu2404"
set "GUEST_USER=your_username"
set "GUEST_PASS=your_password"
VBoxManage guestcontrol "%VM_NAME%" copyto --target-directory /home/%GUEST_USER%/ --username %GUEST_USER% --password %GUEST_PASS% "C:\temp\setup-japanese.sh"

手順3:Ubuntuでスクリプトを実行

Ubuntuのターミナルで以下を実行する:

chmod +x ~/setup-japanese.sh
~/setup-japanese.sh

注意事項:

6. トラブルシューティング

6.1 よくある問題と対処

症状 原因 対処
VBoxManageが認識されない PATHが通っていない コマンドプロンプトを再起動、または絶対パスで実行
ISOダウンロード失敗 ネットワーク問題 URLをブラウザで確認、手動ダウンロード
EFIブート失敗 ファームウェア設定 --firmware=bios に変更して試行
Hyper-V競合エラー Hyper-Vが有効 Windowsの機能でHyper-Vを無効化
guestcontrolが動作しない Guest Additions未インストール セクション6.1の手順を実行

6.2 VMの削除と再作成

REM VM登録解除とファイル削除
VBoxManage unregistervm "Ubuntu2404" --delete

REM 仮想ディスクのみ削除(VMは残す場合)
VBoxManage closemedium disk "%USERPROFILE%\VirtualBox VMs\Ubuntu2404\Ubuntu2404.vdi" --delete