Windows環境でのVirtualBoxとLinuxデスクトップ仮想マシンのセットアップ
【概要】
Windows 11上にVirtualBoxとUbuntu LTS仮想マシンをコマンド操作で構築し、Windows 95風の画面デザインを適用する手順を説明する。コマンドプロンプトに貼り付けて実行するコマンド列により、同じ構成の仮想マシンを再現できる。Ubuntu 24.04 LTS と Ubuntu 26.04 LTS のどちらでも同じ手順で構築できる。デスクトップ環境はLXQt(Lubuntu 相当)とXfce(Xubuntu 相当)のどちらかを選ぶ。
構築は4つのステップで行う。ステップ1では winget によりVirtualBoxをインストールする。ステップ2では VBoxManage コマンドでCPU・メモリ・ストレージなどを設定して仮想マシンを作成し、無人インストールによりUbuntu Desktopをインストールする。ステップ3ではGuest Additionsのインストールと日本語環境の構築を行う。ステップ4ではデスクトップ環境を変更したうえで、Chicago95 テーマによりWindows 95風のデザインを適用する。ステップ4は、LXQt環境で行う手順(4章)とXfce環境で行う手順(5章)に分かれており、どちらか一方を選んで実行する。
Ubuntu Desktop の ISO を用いるのは、VBoxManage unattended install が Ubuntu Desktop のインストーラ(autoinstall)に対応しているためである。Lubuntu の公式 ISO は Calamares インストーラを用いており、無人インストールの対象外である。
前提として、70GB以上の空きディスク容量(ISOファイル約6GBと仮想ハードディスク最大60GB)、物理メモリ16GB以上(仮想マシンに8GBを割り当てるため)が必要である。Hyper-Vが有効な環境では、VirtualBoxはWindowsハイパーバイザプラットフォーム経由で動作し、実行速度が低下する。この場合の対処は6章で説明する。
Ubuntu 24.04.4 LTS(ISO約6.2GB)および Ubuntu 26.04 LTS(Resolute Raccoon、2026年4月23日リリース、ISO約6.1GB)を対象とする。各版のデスクトップ環境のバージョンは次のとおりである。
| 項目 | Ubuntu 24.04 LTS | Ubuntu 26.04 LTS |
|---|---|---|
| コードネーム | Noble Numbat | Resolute Raccoon |
| ISO(Desktop, amd64) | ubuntu-24.04.4-desktop-amd64.iso(約6.2GB) | ubuntu-26.04-desktop-amd64.iso(約6.1GB) |
LXQt(lubuntu-desktop) | LXQt 1.4.0(Qt 5.15系) | LXQt 2.3.0(Qt 6.10系) |
Xfce(xubuntu-desktop) | Xfce 4.18 | Xfce 4.20 |
| sudo の実装 | 従来の sudo | sudo-rs(Rust実装、v0.2.13系) |
取り組み内容
- コマンド列を実行し、仮想マシンを作成する。
VBoxManage showvminfoで設定値を確認する。
用語
- winget:Windows標準のパッケージマネージャー。コマンドラインからソフトウェアのインストール・管理ができる。
- VBoxManage:VirtualBoxのコマンドラインインターフェース。GUIを使わずに仮想マシンを管理できる。
- Extension Pack:VirtualBox本体に機能を追加する拡張パック。Oracleの個人利用・教育利用ライセンス(PUEL)で配布されており、業務利用には別途ライセンスが必要である。VirtualBox 7.2系では、USB 2.0(EHCI)・USB 3.0(xHCI)、VRDPによるリモート表示、USBスマートカードエミュレーション、ディスク・VMの暗号化、仮想USBウェブカメラはいずれも本体パッケージに統合済みであり、Extension Pack が提供する主な機能は Intel カードの PXE ブート ROM である。
- Guest Additions:ゲストOS(仮想マシン側のOS)に入れる追加ソフト。画面解像度の自動調整やホストとゲストの間でのクリップボード共有などの統合機能を有効にする。
- 無人インストール(unattended install):あらかじめ指定した設定でOSのインストールを自動で進める方式。
VBoxManage unattended installは応答ファイル(Ubuntu Desktop 22.10以降では autoinstall 用の cloud-config)を収めた補助メディアを仮想マシンに接続してから起動する。 - LXQt:Lubuntuが採用するデスクトップ環境。ウィンドウマネージャはOpenbox、ファイルマネージャはPCManFM-Qtである。
- Xfce:Xubuntuが採用するデスクトップ環境。ウィンドウマネージャはxfwm4、ファイルマネージャはThunar、設定値の格納には
xfconfを用いる。 - xfconf:Xfceの設定データベース。
xfconf-queryコマンドで読み書きし、実体は~/.config/xfce4/xfconf/xfce-perchannel-xml/配下のXMLファイルである。 - ディスプレイマネージャ:ログイン画面を表示しデスクトップセッションを開始するソフトウェア。Ubuntu Desktopの標準は
GDM3、Lubuntuの標準はSDDM、Xubuntuの標準はLightDMである。 - Chicago95:Windows 95風の外観を再現するテーマ集。Xfce向けに作られており、GTKテーマ、xfwm4およびOpenboxのウィンドウ装飾、アイコン、カーソル、フォント設定を含む。ライセンスはGPL-3.0+/MITである。
- sudo-rs:Rustで書かれたsudoの再実装。Ubuntu 25.10以降の標準のsudoである。本ページで用いる
-S(標準入力からパスワードを読む)は sudo-rs でも動作する。
ステップ1からステップ4の構成
ステップ4:デスクトップ環境の変更と Windows 95 風デザインの適用
┌─ 4章:LXQt 環境(Lubuntu 相当)… Openbox + PCManFM-Qt + SDDM
└─ 5章:Xfce 環境(Xubuntu 相当)… xfwm4 + Thunar + LightDM
※ 4章と5章はどちらか一方を選ぶ
─────────────────────────────────────────
ステップ3:ゲストOS環境の構築(3章)
Guest Additions による統合 + 日本語環境の構築
─────────────────────────────────────────
ステップ2:仮想マシンの作成と Ubuntu のインストール(2章)
VBoxManage による仮想マシンの構成 + 無人インストール
─────────────────────────────────────────
ステップ1:VirtualBox のインストール(1章)
winget による VirtualBox のインストール
─────────────────────────────────────────
【その他情報】
| 項目 | 内容 |
|---|---|
| 目的 | コマンドラインによる仮想環境構築の自動化とWindows 95風デザインの適用 |
| 使用ツール | winget(パッケージ管理)、VBoxManage(VM管理)、SSH(ゲストOS操作) |
| 構築環境 | VirtualBox 7.2系(7.2.14、2026年7月リリース)+ Ubuntu 24.04 LTS または 26.04 LTS(メモリ8GB、ストレージ60GB) |
| デスクトップ環境 | LXQt(4章)または Xfce(5章)のいずれか |
| 前提 | Windows 11(64bit)、管理者権限、70GB以上の空き容量、物理メモリ16GB以上 |
【目次】
- 1. ステップ1:VirtualBox のインストール
- 2. ステップ2:仮想マシンの作成と Ubuntu のインストール
- 3. ステップ3:ゲストOS環境の構築
- 4. ステップ4(A):LXQt 環境への変更と Windows 95 風デザインの適用
- 5. ステップ4(B):Xfce 環境への変更と Windows 95 風デザインの適用
- 6. トラブルシューティング
【サイト内の関連情報】
- Windows の基本操作・コマンド操作・設定と、アプリ・開発環境・ローカル AI の導入
- Linux基本コマンドとその活用法:別ページで説明
1. ステップ1:VirtualBox のインストール
1.1 インストール
管理者権限でコマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。
次のコマンドを実行する。Extension Pack は VirtualBox 本体と同一バージョンのものを取得する。
REM VirtualBox をシステム領域にインストール
winget install --scope machine --id Oracle.VirtualBox -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements
REM VBoxManage のパス設定(システム環境変数に永続化)
powershell -NoProfile -Command "$p='C:\Program Files\Oracle\VirtualBox'; $c=[Environment]::GetEnvironmentVariable('Path','Machine'); if((Test-Path $p) -and $c -notlike \"*$p*\"){[Environment]::SetEnvironmentVariable('Path',\"$p;$c\",'Machine')}"
REM 現在のセッションにも反映
set "PATH=C:\Program Files\Oracle\VirtualBox;%PATH%"
REM VirtualBox Extension Pack をインストール(本体と同一バージョンを取得)
for /f "tokens=1 delims=r" %a in ('VBoxManage --version') do set "VBOX_VER=%a"
set "EXTPACK_URL=https://download.virtualbox.org/virtualbox/%VBOX_VER%/Oracle_VirtualBox_Extension_Pack-%VBOX_VER%.vbox-extpack"
set "EXTPACK_FILE=%TEMP%\Oracle_VirtualBox_Extension_Pack-%VBOX_VER%.vbox-extpack"
curl -fL --retry 3 -o "%EXTPACK_FILE%" "%EXTPACK_URL%"
echo y | VBoxManage extpack install --replace "%EXTPACK_FILE%"
del "%EXTPACK_FILE%"
上記はコマンドプロンプトに直接貼り付けて実行する形式である。for の変数が %a と1個のパーセント記号になっているのは、そのためである。echo y は Extension Pack のライセンス条項(PUEL)への同意に対する応答である。7.2.14 の場合、取得されるファイルは Oracle_VirtualBox_Extension_Pack-7.2.14.vbox-extpack である。
Extension Pack は本ページの構成では不要である。USB 2.0/3.0 は VirtualBox 7.0 以降、仮想USBウェブカメラは 7.2.2 以降、VRDPによるリモート表示・USBスマートカードエミュレーション・ディスクとVMの暗号化は 7.2.6 以降、いずれも本体パッケージに統合されている。
1.2 インストールの確認
- VirtualBox 本体の確認
<バージョン>r<リビジョン>の形式(例:7.2.14rに続けてリビジョン番号)で表示されれば、本体がインストールされ、パスも通っている。VBoxManage --version - Extension Pack の確認
インストール済みの拡張パック一覧が表示される。Usable が true であれば利用可能である。
VBoxManage list extpacks
2. ステップ2:仮想マシンの作成と Ubuntu のインストール
VBoxManageのオプションでCPU・メモリ・ストレージ・ネットワークなどを設定し、Ubuntu仮想マシンを作成する。
2.1 Ubuntu のバージョンの選択
本ページの各節のコマンド列は、先頭で UBU_VER という変数に 24.04 または 26.04 を設定し、ISOのURL・仮想マシン名・ゲストOS識別子をその値から組み立てる。利用者が判断するのはこの1箇所だけであり、以降のコマンドは両バージョンで共通である。
| UBU_VER の値 | ISO | 仮想マシン名 | サポート期限 |
|---|---|---|---|
24.04 | ubuntu-24.04.4-desktop-amd64.iso | ubuntu2404 | 2029年4月(標準サポート) |
26.04 | ubuntu-26.04-desktop-amd64.iso | ubuntu2604 | 2031年4月(標準サポート) |
set で設定した変数は、そのコマンドプロンプトのウィンドウの中でのみ有効である。途中でコマンドプロンプトを閉じた場合は、変数設定から実行し直す。本ページでは、各節の先頭で必要な変数をあらためて設定するようにしてある。
2.2 VBoxManage modifyvm 主要オプション
| オプション | 設定内容 | 本手順の値 |
|---|---|---|
--memory |
RAMサイズ(MB) | 8192 |
--cpus |
CPU数 | 2 |
--vram |
ビデオメモリ(MB) | 128 |
--firmware |
ファームウェア種別 | efi |
--paravirt-provider |
準仮想化プロバイダ(ゲストとホストの連携方式) | kvm(Linux向け) |
--graphicscontroller |
グラフィックコントローラ | vmsvga |
2.3 ストレージ構成とネットワーク構成
仮想マシン
├── SATA Controller(IntelAhci)
│ └── Port 0: 仮想HDD(60GB, VDI形式)
└── IDE Controller(PIIX4)
└── Port 0: DVDドライブ(Ubuntu ISO → Guest Additions ISO → 空)
ネットワークはNATモードとし、ホストのポート2222をゲストのポート22(SSH)に転送する。ホストからの操作はこのSSH接続を通して行う。
2.4 仮想マシンの作成と Ubuntu の無人インストール
コマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力)。
次のコマンドを実行する。1行目の UBU_VER に、使用するUbuntuのバージョンを設定する。ユーザー名とパスワードはコマンド内に直接書いている。インストール後はゲストOSにログインしてパスワードを変更する。ISOファイルは約6GBあり、ダウンロードには回線速度に応じた時間がかかる。
REM ★ ここで Ubuntu のバージョンを選ぶ(24.04 または 26.04)
set "UBU_VER=26.04"
REM バージョンに応じた設定の切り替え
if "%UBU_VER%"=="24.04" (set "ISO_NAME=ubuntu-24.04.4-desktop-amd64.iso") else (set "ISO_NAME=ubuntu-26.04-desktop-amd64.iso")
if "%UBU_VER%"=="24.04" (set "ISO_DIRNAME=noble") else (set "ISO_DIRNAME=26.04")
if "%UBU_VER%"=="24.04" (set "VM_NAME=ubuntu2404") else (set "VM_NAME=ubuntu2604")
if "%UBU_VER%"=="24.04" (set "OS_TYPE=Ubuntu24_LTS_64") else (set "OS_TYPE=Ubuntu_64")
set "ISO_URL=https://releases.ubuntu.com/%ISO_DIRNAME%/%ISO_NAME%"
set "ISO_DIR=%USERPROFILE%\VirtualBox VMs\ISO"
set "ISO_FILE=%ISO_DIR%\%ISO_NAME%"
echo UBU_VER=%UBU_VER% VM_NAME=%VM_NAME% OS_TYPE=%OS_TYPE%
REM 使用中の VirtualBox が持つ Ubuntu 用のゲストOS識別子を確認する
VBoxManage list ostypes | findstr /i ubuntu
REM ISOディレクトリ作成
if not exist "%ISO_DIR%" mkdir "%ISO_DIR%"
REM ISOファイルが存在しない場合のみダウンロード(約6GB)
if exist "%ISO_FILE%" (
echo Ubuntu %UBU_VER% の ISO は既に存在します:%ISO_FILE%
) else (
echo Ubuntu %UBU_VER% の ISO をダウンロード中...
curl -fL --retry 3 -C - -o "%ISO_FILE%" "%ISO_URL%"
)
REM 仮想マシン設定
set "VM_DIR=%USERPROFILE%\VirtualBox VMs\%VM_NAME%"
set "VDI_FILE=%VM_DIR%\%VM_NAME%.vdi"
set "MEMORY_MB=8192"
set "STORAGE_MB=61440"
set "USER_NAME=myuser"
set "USER_PASSWORD=changeme"
set "SSH_HOST_PORT=2222"
set "SSH_GUEST_PORT=22"
REM 無人インストールの検出結果の確認(Ubuntu と Desktop が認識されることを確認する)
VBoxManage unattended detect --iso="%ISO_FILE%"
REM 同名VM存在確認
VBoxManage showvminfo "%VM_NAME%" >nul 2>&1
if not errorlevel 1 (
echo 仮想マシン "%VM_NAME%" は既に存在します
echo 削除する場合: VBoxManage unregistervm "%VM_NAME%" --delete
)
REM 仮想マシン作成・登録(--basefolder 配下に VM 用ディレクトリが自動生成される)
VBoxManage createvm --name="%VM_NAME%" --ostype=%OS_TYPE% --register --basefolder="%USERPROFILE%\VirtualBox VMs"
REM 基本設定(メモリ8GB, CPU2コア)
VBoxManage modifyvm "%VM_NAME%" --memory=%MEMORY_MB% --cpus=2 --ioapic=on --acpi=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 / virtio)
VBoxManage modifyvm "%VM_NAME%" --nic1=nat --nic-type1=virtio --cable-connected1=on
REM SSHポートフォワーディング設定(ホスト2222 → ゲスト22)
VBoxManage modifyvm "%VM_NAME%" --nat-pf1="ssh,tcp,,%SSH_HOST_PORT%,,%SSH_GUEST_PORT%"
REM オーディオ設定(--audio は非推奨のため --audio-driver と --audio-enabled を用いる)
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設定(USB 2.0/EHCI・USB 3.0/xHCI は VirtualBox 7.0 以降は本体に統合されており Extension Pack は不要)
VBoxManage modifyvm "%VM_NAME%" --usb-ohci=on --usb-ehci=on
REM RTC設定(時計をUTCで扱う。Linux ゲストの標準的な構成)
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 無人インストール設定・起動
REM --time-zone は指定しない(--rtc-use-utc=on のとき応答ファイルの timezone: が Etc/UTC に固定され無視される)
REM タイムゾーンはインストール後に timedatectl で設定する
VBoxManage unattended install "%VM_NAME%" ^
--iso="%ISO_FILE%" ^
--user=%USER_NAME% ^
--password=%USER_PASSWORD% ^
--full-user-name="%USER_NAME%" ^
--locale=ja_JP.UTF-8 ^
--hostname=%VM_NAME%.localdomain ^
--no-install-additions ^
--post-install-command="/usr/bin/apt-get install -y --no-install-recommends openssh-server" ^
--start-vm=separate
echo 無人インストールが開始されました
インストールの進行状況は、別ウィンドウで開く仮想マシンの画面で確認できる。--no-install-additions を指定しているのは、Guest Additions のインストールをステップ3で行うためである。
ゲストOS識別子(--ostype)について。 Ubuntu 24.04 LTS には Ubuntu24_LTS_64 が用意されている。Ubuntu 26.04 LTS 用の識別子(Ubuntu26_LTS_64 など)は、使用中の VirtualBox のバージョンによって存在しない場合があるため、上記では汎用の Ubuntu_64 を指定している。冒頭で実行する VBoxManage list ostypes | findstr /i ubuntu の出力に 26.04 用の識別子が含まれていれば、set "OS_TYPE=..." でその識別子に置き換えてよい。この識別子は既定のハードウェア構成の目安に使われるものであり、無人インストール時のインストーラ方式は VBoxManage unattended detect によるISOの内容判定で決まる。
--post-install-command について注意点がある。VirtualBox はこのオプションの値を、ゲストOS内で実行される後処理スクリプトの中に log_command <コマンド> の形で埋め込み、シェルの引数配列として実行する。そのため &&、|、> といったシェル演算子や、複数コマンドの連結は解釈されない。ここでは単一のコマンド(openssh-server のインストール)のみを指定し、SSH鍵の登録などその後の設定は、インストール完了後にSSH経由で行う。このコマンドが失敗した場合(パッケージ一覧が取得できていない場合など)は、仮想マシンの画面から直接ログインし、sudo apt-get update に続けて sudo apt-get install -y openssh-server を実行する。
また --rtc-use-utc=on を指定している場合、無人インストールのテンプレートはゲストのタイムゾーンを Etc/UTC に固定する。--time-zone を与えても反映されないため、上記では指定していない。日本時間への変更は、この後の日本語環境の構築で timedatectl により行う。
2.5 インストール完了の待機とSSH鍵の登録
インストールが完了するとVMは自動的に再起動し、openssh-server が起動する。以下では、ホスト側のポート2222が応答することをもってインストール完了を判定する。その後、以降の操作をパスワード入力なしで行えるよう、SSH公開鍵を登録する。
コマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力)。
REM === 変数の設定 ===
set "UBU_VER=26.04"
if "%UBU_VER%"=="24.04" (set "VM_NAME=ubuntu2404") else (set "VM_NAME=ubuntu2604")
set "USER_NAME=myuser"
set "USER_PASSWORD=changeme"
set "SSH_HOST_PORT=2222"
REM ホストキーの警告・エラーを回避するためのSSHオプション
set "SSH_OPTS=-o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL"
REM === SSH ポートが応答するまで待機(最大30分) ===
echo SSH ポートを待機中 ...
powershell -NoProfile -Command "$port=%SSH_HOST_PORT%; for($i=1; $i -le 180; $i++){ if(Test-NetConnection -ComputerName '127.0.0.1' -Port $port -InformationLevel Quiet -WarningAction SilentlyContinue){ Write-Host 'SSH ポートが応答しました'; exit 0 }; Write-Host 'SSH 未応答 ... 10 秒待機します'; Start-Sleep -Seconds 10 }; exit 1"
REM === インストール ISO の取り外し ===
VBoxManage storageattach "%VM_NAME%" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium emptydrive
REM === SSH 鍵の作成(未作成の場合のみ) ===
if not exist "%USERPROFILE%\.ssh" mkdir "%USERPROFILE%\.ssh"
if not exist "%USERPROFILE%\.ssh\id_ed25519" (
ssh-keygen -t ed25519 -f "%USERPROFILE%\.ssh\id_ed25519" -N ""
)
REM === 公開鍵をゲストへ登録(ここで一度だけパスワードを入力する) ===
type "%USERPROFILE%\.ssh\id_ed25519.pub" | ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
REM === 鍵認証で接続できることの確認(パスワードを求められなければ成功) ===
ssh %SSH_OPTS% -o BatchMode=yes -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo SSH_KEY_OK" <nul
REM === システムの更新 ===
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'apt-get update && DEBIAN_FRONTEND=noninteractive apt-get upgrade -y'" <nul
echo === 動作確認 ===
VBoxManage list vms
VBoxManage showvminfo "%VM_NAME%" | findstr /C:"Memory size" /C:"Number of CPUs" /C:"Firmware" /C:"VRAM size"
公開鍵の登録時のみ、ゲストOSのパスワード(changeme)の入力を求められる。以降のSSH接続は鍵認証で行われるため、入力は不要である。
Ubuntu 26.04 では標準の sudo が sudo-rs(Rust実装)に置き換わっているが、-S(標準入力からパスワードを読む)オプションは sudo-rs でも動作するため、上記のコマンド列はそのまま使える。従来のsudoに切り替える場合は、ゲストOS内で sudo update-alternatives --set sudo /usr/bin/sudo.ws を実行する。
確認すべき出力項目:
- Memory size: 8192MB
- VRAM size: 128MB
- Firmware: EFI
- Number of CPUs: 2
3. ステップ3:ゲストOS環境の構築
Guest Additionsによるホストとゲストの間の統合と、日本語環境の構築を行う。この章は4章・5章のどちらを選ぶ場合でも共通に実行する。
3.1 Guest Additions のインストール
Guest Additionsにより、画面解像度の自動調整、クリップボード共有、共有フォルダ、マウス統合、時刻同期が利用可能となる。カーネルモジュールのビルドに build-essential、dkms、カーネルヘッダが必要である。
コマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力)。
set "UBU_VER=26.04"
if "%UBU_VER%"=="24.04" (set "VM_NAME=ubuntu2404") else (set "VM_NAME=ubuntu2604")
set "USER_NAME=myuser"
set "USER_PASSWORD=changeme"
set "SSH_HOST_PORT=2222"
REM ホストキーの警告・エラーを回避するためのSSHオプション
set "SSH_OPTS=-o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL"
REM 依存パッケージのインストール(ビルドに必要なツールとカーネルヘッダ)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'apt-get update && apt-get install -y build-essential dkms linux-headers-$(uname -r)'" <nul
REM Guest Additions ISOをマウント(--medium additions でVBoxが自動解決。VirtualBox 7 系で有効)
VBoxManage storageattach "%VM_NAME%" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium additions
REM Guest Additionsのビルド・インストール(終了コード2はモジュール読込済みを意味するため許容する)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'mkdir -p /mnt/cdrom && mount /dev/cdrom /mnt/cdrom && (/mnt/cdrom/VBoxLinuxAdditions.run --nox11 || true) && umount /mnt/cdrom'" <nul
REM Guest Additions ISO の取り外し
VBoxManage storageattach "%VM_NAME%" --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium emptydrive
REM 再起動(ゲストOS側から reboot を実行する)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S reboot" <nul
REM === 再起動後の SSH 接続待機 ===
timeout /t 30 /nobreak
set "SSHGA_DONE=" & for /L %i in (1,1,60) do @(if not defined SSHGA_DONE (timeout /t 10 /nobreak >nul & ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL -o ConnectTimeout=5 -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo SSH_OK" <nul 2>nul | findstr "SSH_OK" >nul && (echo Guest Additions インストール済みの VM が起動しました & set "SSHGA_DONE=1") || (echo SSH 未応答 ... 10 秒待機します)))
REM インストールの確認(バージョンが表示される)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "VBoxControl --version" <nul
VBoxLinuxAdditions.run は、カーネルモジュールを読み込み済みで再起動が必要な場合に終了コード2を返す。これは異常ではないため、上記では || true により後続の umount が実行されるようにしている。
VirtualBox 7.2.8 以降、Linux Guest Additions の vboxvideo カーネルモジュールはカーネル7.0以降で非推奨となった。本ページはグラフィックコントローラに vmsvga を指定しているため、この変更の影響を受けない。
3.2 日本語環境の構築
ロケール、タイムゾーン、日本語フォント、日本語入力を設定する。入力メソッドフレームワークは Fcitx5、日本語変換エンジンは Mozc を用いる。Ubuntu の既定の入力メソッドフレームワークは IBus であるため、im-config で Fcitx5 に切り替える。入力の切替キーは半角/全角キー(Zenkaku_Hankaku)とAlt+`(Alt+grave)とする。ホームディレクトリ配下を英語名(~/Documents 等)で参照するため、XDGユーザーディレクトリは英語名に固定する。
この節は Guest Additions のインストール後、デスクトップ環境の導入より前に実行する。
コマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力)。
set "UBU_VER=26.04"
if "%UBU_VER%"=="24.04" (set "VM_NAME=ubuntu2404") else (set "VM_NAME=ubuntu2604")
set "USER_NAME=myuser"
set "USER_PASSWORD=changeme"
set "SSH_HOST_PORT=2222"
REM ホストキーの警告・エラーを回避するためのSSHオプション
set "SSH_OPTS=-o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL"
REM 日本語ロケール、タイムゾーン、日本語フォント、Fcitx5 と Mozc
REM (タイムゾーンは無人インストール時に Etc/UTC となるため、ここで Asia/Tokyo に設定する)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'locale-gen ja_JP.UTF-8 && update-locale LANG=ja_JP.UTF-8 && timedatectl set-timezone Asia/Tokyo && apt-get install -y language-pack-ja fonts-noto-cjk fonts-noto-cjk-extra fonts-vlgothic fcitx5 fcitx5-mozc fcitx5-config-qt im-config'" <nul
REM 各ツールキット向けの入力メソッドフロントエンド(バージョンにより収録の有無が異なるため失敗を許容する)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'apt-get install -y fcitx5-frontend-qt5 fcitx5-frontend-qt6 fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 || true'" <nul
REM XDG ユーザーディレクトリを英語名に固定
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "LC_ALL=C xdg-user-dirs-update --force" <nul
REM 入力メソッドフレームワークを Fcitx5 に切り替え(既定は IBus)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "im-config -n fcitx5" <nul
REM 入力メソッドの環境変数設定
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.config/environment.d && printf 'GTK_IM_MODULE=fcitx\nQT_IM_MODULE=fcitx\nXMODIFIERS=@im=fcitx\n' > ~/.config/environment.d/im.conf && printf 'export GTK_IM_MODULE=fcitx\nexport QT_IM_MODULE=fcitx\nexport XMODIFIERS=@im=fcitx\n' > ~/.xprofile" <nul
REM Fcitx5 のトリガーキー設定(半角/全角キーと Alt+`)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.config/fcitx5 && printf '[Hotkey/TriggerKeys]\n0=Zenkaku_Hankaku\n1=Alt+grave\n\n[Hotkey/EnumerateForwardKeys]\n0=Control+Shift_R\n\n[Hotkey/EnumerateBackwardKeys]\n0=Control+Shift_L\n\n[Hotkey/PrevPage]\n0=Up\n\n[Hotkey/NextPage]\n0=Down\n\n[Behavior]\nActiveByDefault=False\nShowInputMethodInformation=True\nDefaultPageSize=5\n' > ~/.config/fcitx5/config" <nul
REM Fcitx5 のプロファイル設定(キーボードと Mozc)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "printf '[Groups/0]\nName=Default\nDefault Layout=jp\nDefaultIM=mozc\n\n[Groups/0/Items/0]\nName=keyboard-jp\nLayout=\n\n[Groups/0/Items/1]\nName=mozc\nLayout=\n\n[GroupOrder]\n0=Default\n' > ~/.config/fcitx5/profile" <nul
REM Fcitx5 の自動起動設定(XDG 自動起動。LXQt・Xfce のどちらでも読み込まれる)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.config/autostart && printf '[Desktop Entry]\nType=Application\nName=Fcitx5\nExec=fcitx5 -d\nTerminal=false\n' > ~/.config/autostart/fcitx5.desktop" <nul
REM 再起動(設定を反映)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S reboot" <nul
REM === 再起動後の SSH 接続待機 ===
timeout /t 30 /nobreak
set "SSHJA_DONE=" & for /L %i in (1,1,60) do @(if not defined SSHJA_DONE (timeout /t 10 /nobreak >nul & ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL -o ConnectTimeout=5 -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo SSH_OK" <nul 2>nul | findstr "SSH_OK" >nul && (echo 日本語環境の構築が完了しました & set "SSHJA_DONE=1") || (echo SSH 未応答 ... 10 秒待機します)))
フロントエンドを複数導入しているのは、デスクトップ環境とアプリケーションが使うツールキットが混在するためである。Lubuntu 24.04 の LXQt 1.4.0 は Qt 5.15 系、Lubuntu 26.04 の LXQt 2.3.0 は Qt 6 系で構成される。Xfce は GTK3 が中心である。日本語配列キーボードでない場合は、Alt+`(Alt+grave)で入力を切り替える。
ここまでで、デスクトップ環境を持たないUbuntuの状態が完成している。以降は、4章(LXQt)または5章(Xfce)のどちらか一方を実行する。
4. ステップ4(A):LXQt 環境への変更と Windows 95 風デザインの適用
この章は Lubuntu 相当の LXQt 環境を構築する手順である。Xfce 環境を構築する場合は、この章を飛ばして5章へ進む。
4.1 設定するレイヤ
LXQtでは、画面外観を構成する要素が複数のレイヤに分かれ、それぞれ別の設定ファイルで管理される。統一した外観を得るには、以下のレイヤを個別に設定する。
| レイヤ | 対象 | 設定ファイル | 設定値 |
|---|---|---|---|
| LXQt テーマ | パネル、メニュー、通知 | ~/.config/lxqt/lxqt.conf の theme | LXQt標準のテーマ(本手順では変更しない) |
| アイコンテーマ | デスクトップ、ファイルマネージャ、メニュー | ~/.config/lxqt/lxqt.conf の icon_theme | Chicago95 |
| Qt ウィジェットスタイル | Qt アプリケーションの部品 | ~/.config/lxqt/lxqt.conf の [Qt] style | Windows(Qt 標準スタイル) |
| Openbox ウィンドウ装飾 | タイトルバー、ウィンドウ枠 | ~/.config/openbox/rc.xml | Chicago95 |
| GTK テーマ | GTK アプリケーションの外観 | ~/.config/gtk-3.0/settings.ini | Chicago95 |
| カーソルテーマ | マウスカーソル | ~/.config/lxqt/session.conf の [Mouse] | Chicago95_Cursor_Black |
| パネル | 画面下部のタスクバー | ~/.config/lxqt/panel.conf | 下端・高さ30ピクセル |
| 壁紙 | デスクトップ背景 | ~/.config/pcmanfm-qt/lxqt/settings.conf | 任意の画像ファイル |
Chicago95 は GitHub から git clone で取得できるため、ダウンロードから配置までをコマンドで完結できる。各テーマ・壁紙は、それぞれの配布元のライセンスに従って利用する。Chicago95 のライセンスは GPL-3.0+/MIT である。
Chicago95 は Xfce 向けに作られたテーマ集であり、LXQt では Openbox のウィンドウ装飾とGTKテーマ・アイコン・カーソルが利用できる。LXQt のパネルやQtアプリケーションの外観は Chicago95 の対象外であるため、Qt 標準の Windows スタイルを併用する。
Lubuntu 26.04 の既定のセッションは X11 上の Openbox である(labwc による Wayland セッションは任意の追加構成)。そのため Openbox のウィンドウ装飾が有効に働く。
4.2 LXQt デスクトップ環境への変更
SSH経由で lubuntu-desktop を追加し、GNOME関連パッケージを削除してLXQtデスクトップ環境とする。lubuntu-desktop メタパッケージにより、LXQt、Openbox、PCManFM-Qt、SDDM、Lubuntu標準のアプリケーション群がインストールされる。続いてGNOMEとGDM3を削除し、SDDMの自動ログインを設定する。DEBIAN_FRONTEND=noninteractive はインストール中の対話的プロンプトを抑制する指定である。
コマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力)。
set "UBU_VER=26.04"
if "%UBU_VER%"=="24.04" (set "VM_NAME=ubuntu2404") else (set "VM_NAME=ubuntu2604")
set "USER_NAME=myuser"
set "USER_PASSWORD=changeme"
set "SSH_HOST_PORT=2222"
REM ホストキーの警告・エラーを回避するためのSSHオプション
set "SSH_OPTS=-o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL"
REM lubuntu-desktop のインストール
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y lubuntu-desktop'" <nul
REM ディスプレイマネージャを SDDM に設定
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "printf '/usr/bin/sddm\n' > /tmp/ddm" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'cp /tmp/ddm /etc/X11/default-display-manager && rm -f /tmp/ddm'" <nul
REM GNOME 関連パッケージの削除と不要な依存パッケージの削除
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'DEBIAN_FRONTEND=noninteractive apt-get purge -y ubuntu-desktop ubuntu-desktop-minimal ubuntu-session gnome-shell gnome-session gnome-control-center gnome-terminal nautilus gdm3 && apt-get autoremove -y'" <nul
REM SDDM の自動ログイン設定
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "printf '[Autologin]\nUser=%USER_NAME%\nSession=Lubuntu.desktop\n' > /tmp/autologin.conf" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'mkdir -p /etc/sddm.conf.d && cp /tmp/autologin.conf /etc/sddm.conf.d/autologin.conf && rm -f /tmp/autologin.conf'" <nul
REM 利用可能なセッション名の確認(Lubuntu.desktop と lxqt.desktop が表示される)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "ls /usr/share/xsessions/" <nul
REM 再起動(ゲストOS側から reboot を実行する)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S reboot" <nul
REM === 再起動後の SSH 接続待機 ===
timeout /t 30 /nobreak
set "SSH_DONE=" & for /L %i in (1,1,60) do @(if not defined SSH_DONE (timeout /t 10 /nobreak >nul & ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL -o ConnectTimeout=5 -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo SSH_OK" <nul 2>nul | findstr "SSH_OK" >nul && (echo LXQt デスクトップ環境の構築が完了しました & set "SSH_DONE=1") || (echo SSH 未応答 ... 10 秒待機します)))
自動ログインのセッション名には Lubuntu.desktop を指定している。これは lubuntu-default-settings パッケージが /usr/share/xsessions/Lubuntu.desktop を提供し、Lubuntu独自の既定設定(/etc/xdg/xdg-Lubuntu 配下)を読み込むセッションだからである。lxqt-session が提供する素の lxqt.desktop を使う場合は、そちらを指定する。上記の ls /usr/share/xsessions/ の出力で実際のファイル名を確認できる。
仮想マシンの画面を表示するには VBoxManage startvm "%VM_NAME%" --type gui を実行する。自動ログイン設定により、myuser としてLXQtデスクトップが表示される。
4.3 テーマファイルの配置
コマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力)。
次のコマンドを実行する。Chicago95のリポジトリからGTK/Openboxテーマ・アイコン・カーソルを抽出して配置する。Theme/Chicago95 ディレクトリには gtk-2.0、gtk-3.0、openbox-3、xfwm4、metacity-1、index.theme などが含まれており、GTKテーマと各ウィンドウマネージャのウィンドウ装飾を兼ねる(gtk-3.22、gtk-3.24 は gtk-3.0 へのシンボリックリンクである)。
set "UBU_VER=26.04"
if "%UBU_VER%"=="24.04" (set "VM_NAME=ubuntu2404") else (set "VM_NAME=ubuntu2604")
set "USER_NAME=myuser"
set "USER_PASSWORD=changeme"
set "SSH_HOST_PORT=2222"
set "SSH_OPTS=-o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL"
REM パッケージリスト更新とgitのインストール
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'apt-get update && apt-get install -y git'" <nul
REM 配置用ディレクトリの作成
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.themes ~/.icons" <nul
REM Chicago95 リポジトリの取得
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "rm -rf /tmp/Chicago95 && git clone --depth 1 https://github.com/grassmunk/Chicago95.git /tmp/Chicago95" <nul
REM GTK/Openboxテーマ、アイコン、カーソルの配置
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "cp -r /tmp/Chicago95/Theme/Chicago95 ~/.themes/ && cp -r /tmp/Chicago95/Icons/Chicago95 ~/.icons/ && cp -r /tmp/Chicago95/Cursors/Chicago95_Cursor_Black ~/.icons/" <nul
REM 一時ファイルの削除と配置の確認
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "rm -rf /tmp/Chicago95 && ls -d ~/.themes/Chicago95 ~/.icons/Chicago95 ~/.icons/Chicago95_Cursor_Black" <nul
REM Openbox ウィンドウ装飾が含まれることの確認
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "ls -d ~/.themes/Chicago95/openbox-3 ~/.themes/Chicago95/gtk-3.0" <nul
最後の2つのコマンドの出力で、実際に配置されたディレクトリ名を確認する。次節の設定値は、この名前(Chicago95 および Chicago95_Cursor_Black)と一致させる必要がある。
4.4 テーマの適用
コマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力)。
設定ファイルの直接編集は、LXQtセッションによる上書きを避けるためSSH経由で行う。壁紙は、あらかじめホスト側の %USERPROFILE%\Downloads\wallpaper.jpg に用意した画像を転送して使用する。
set "UBU_VER=26.04"
if "%UBU_VER%"=="24.04" (set "VM_NAME=ubuntu2404") else (set "VM_NAME=ubuntu2604")
set "USER_NAME=myuser"
set "USER_PASSWORD=changeme"
set "SSH_HOST_PORT=2222"
set "SSH_OPTS=-o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL"
REM アイコンテーマ・Qt ウィジェットスタイルの設定
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.config/lxqt && printf '[General]\n__userfile__=true\nicon_theme=Chicago95\nsingle_click_activate=false\n\n[Qt]\nstyle=Windows\nfont=\"Sans,10,-1,5,50,0,0,0,0,0\"\n' > ~/.config/lxqt/lxqt.conf" <nul
REM カーソルテーマの設定(session.conf を新規に作成する)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "printf '[General]\n__userfile__=true\nwindow_manager=openbox\n\n[Mouse]\ncursor_theme=Chicago95_Cursor_Black\ncursor_size=24\n' > ~/.config/lxqt/session.conf && mkdir -p ~/.icons/default && printf '[Icon Theme]\nName=Default\nInherits=Chicago95_Cursor_Black\n' > ~/.icons/default/index.theme" <nul
REM Openbox ウィンドウ装飾の設定(Lubuntu の既定設定を複製してテーマ名を書き換える)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.config/openbox && [ -f ~/.config/openbox/rc.xml ] || cp /etc/xdg/xdg-Lubuntu/openbox/rc.xml ~/.config/openbox/rc.xml; sed -i '0,/<name>.*<\/name>/s|<name>.*</name>|<name>Chicago95</name>|' ~/.config/openbox/rc.xml" <nul
REM GTK3 テーマの設定
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.config/gtk-3.0 && printf '[Settings]\ngtk-theme-name=Chicago95\ngtk-icon-theme-name=Chicago95\ngtk-cursor-theme-name=Chicago95_Cursor_Black\ngtk-font-name=Noto Sans CJK JP 10\n' > ~/.config/gtk-3.0/settings.ini" <nul
REM Fcitx5 の自動起動に LXQt 独自キーを追加(システムトレイ起動後に開始する)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "printf '[Desktop Entry]\nType=Application\nName=Fcitx5\nExec=fcitx5 -d\nTerminal=false\nX-LXQt-Need-Tray=true\n' > ~/.config/autostart/fcitx5.desktop" <nul
REM パネルの設定(画面下部、高さ30ピクセル、幅100パーセント)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "printf 'panels=panel1\n\n[panel1]\nalignment=-1\ndesktop=0\nhidable=false\niconSize=22\nlineCount=1\nwidth=100\nwidth-percent=true\nlockPanel=true\npanelSize=30\nplugins=mainmenu, quicklaunch, taskbar, tray, statusnotifier, worldclock\nposition=Bottom\nreserve-space=true\n\n[mainmenu]\ntype=mainmenu\nalignment=Left\n\n[quicklaunch]\ntype=quicklaunch\nalignment=Left\n\n[taskbar]\ntype=taskbar\nalignment=Left\n\n[tray]\ntype=tray\nalignment=Right\n\n[statusnotifier]\ntype=statusnotifier\nalignment=Right\n\n[worldclock]\ntype=worldclock\nalignment=Right\n' > ~/.config/lxqt/panel.conf" <nul
REM 壁紙の転送と設定(BgColor は壁紙が読み込めない場合の背景色)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.local/share/wallpapers" <nul
scp -P %SSH_HOST_PORT% -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL "%USERPROFILE%\Downloads\wallpaper.jpg" %USER_NAME%@localhost:~/.local/share/wallpapers/
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.config/pcmanfm-qt/lxqt && printf '[Desktop]\nWallpaper=/home/%USER_NAME%/.local/share/wallpapers/wallpaper.jpg\nWallpaperMode=stretch\nBgColor=#008080\nFgColor=#ffffff\nDesktopShortcuts=Home, Trash, Computer\nShowHidden=false\n\n[System]\nFallbackIconThemeName=Chicago95\n\n[FolderView]\nBigIconSize=48\n' > ~/.config/pcmanfm-qt/lxqt/settings.conf" <nul
REM デスクトップアイコンの配置
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/Desktop && printf '[Desktop Entry]\nType=Application\nName=マイ コンピュータ\nExec=pcmanfm-qt computer:///\nIcon=computer\nTerminal=false\n' > ~/Desktop/computer.desktop && printf '[Desktop Entry]\nType=Application\nName=ごみ箱\nExec=pcmanfm-qt trash:///\nIcon=user-trash\nTerminal=false\n' > ~/Desktop/trash.desktop && printf '[Desktop Entry]\nType=Application\nName=マイ ドキュメント\nExec=pcmanfm-qt /home/%USER_NAME%/Documents\nIcon=folder-documents\nTerminal=false\n' > ~/Desktop/home.desktop && chmod +x ~/Desktop/*.desktop" <nul
REM 再起動(設定を反映)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S reboot" <nul
REM === 再起動後の SSH 接続待機 ===
timeout /t 30 /nobreak
set "SSHXP_DONE=" & for /L %i in (1,1,60) do @(if not defined SSHXP_DONE (timeout /t 10 /nobreak >nul & ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL -o ConnectTimeout=5 -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo SSH_OK" <nul 2>nul | findstr "SSH_OK" >nul && (echo デザインの適用が完了しました & set "SSHXP_DONE=1") || (echo SSH 未応答 ... 10 秒待機します)))
REM 仮想マシンの画面を表示
VBoxManage startvm "%VM_NAME%" --type gui
パネルの設定について補足する。lxqt-panel が読むキー名は、長さが width と width-percent、パネル位置が position、太さが panelSize である。alignment はパネル自体の配置を表し、-1 が左、0 が中央、1 が右である。各プラグインのセクション内の alignment は Left または Right の文字列で、パネル内での寄せ方を指定する。Lubuntu 26.04 の LXQt 2.3 では、アプリケーションメニューの既定は Fancy Menu(fancymenu)であり、上記のように従来の mainmenu を指定して使うこともできる。
壁紙の設定について補足する。~/.config/pcmanfm-qt/lxqt/settings.conf の [Desktop] セクションで Wallpaper、WallpaperMode、BgColor を指定する。デスクトップアイコンのサイズは [FolderView] セクションの BigIconSize で指定する。WallpaperMode には stretch、fit、center、tile、zoom、color が指定できる。BgColor の #008080 はWindows 95の既定のデスクトップ背景色(ティール)である。
5. ステップ4(B):Xfce 環境への変更と Windows 95 風デザインの適用
この章は Xubuntu 相当の Xfce 環境を構築する手順である。4章(LXQt)とはどちらか一方を選ぶ。両方を同一の仮想マシンに導入すると、ディスプレイマネージャや既定アプリケーションの設定が競合する。
Chicago95 は Xfce 向けに作られたテーマ集であるため、Xfce 環境では、ウィンドウ装飾(xfwm4)、通知(xfce-notify-4.0)、パネル配色、フォント、端末の配色までを一貫して適用できる。ただし配布元が動作を明記しているのは Xfce 4.16 までであり、Xfce 4.18(Ubuntu 24.04)では概ね動作するとの報告がある一方、Xfce 4.20(Ubuntu 26.04)では一部の設定項目が適用されない場合がある。この場合は、GUI の「外観」「ウィンドウマネージャー」から手動で設定する。
5.1 設定するレイヤ
Xfce では、外観に関する設定値の多くが xfconf に集約され、xfconf-query コマンドで読み書きできる。本手順では次のレイヤを設定する。
| レイヤ | 対象 | xfconf チャンネルとプロパティ | 設定値 |
|---|---|---|---|
| GTK テーマ | ウィンドウ内部の部品全般 | xsettings の /Net/ThemeName | Chicago95 |
| アイコンテーマ | メニュー、ファイルマネージャ | xsettings の /Net/IconThemeName | Chicago95 |
| カーソルテーマ | マウスカーソル | xsettings の /Gtk/CursorThemeName | Chicago95_Cursor_Black |
| インタフェースフォント | メニュー、ダイアログ | xsettings の /Gtk/FontName | Noto Sans CJK JP 10 |
| ウィンドウ装飾 | タイトルバー、ウィンドウ枠 | xfwm4 の /general/theme | Chicago95 |
| パネル | 画面下部のタスクバー | xfce4-panel の /panels/panel-1/... | 下端・高さ30ピクセル |
| 壁紙 | デスクトップ背景 | xfce4-desktop の /backdrop/.../last-image | 任意の画像ファイル |
| 端末の配色 | xfce4-terminal | ~/.config/xfce4/terminal/terminalrc | Chicago95 付属の設定 |
xfconf-query は D-Bus 経由で設定デーモン xfconfd と通信する。SSH から実行する場合は、実行中のデスクトップセッションのD-Busアドレスを明示する必要がある。本手順では、自動ログインでXfceセッションを起動したうえで、DISPLAY=:0 と DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus を指定して実行する。この方法では、設定した内容がその場でデスクトップに反映される。
5.2 Xfce デスクトップ環境への変更
SSH経由で xubuntu-desktop を追加し、GNOME関連パッケージを削除してXfceデスクトップ環境とする。xubuntu-desktop メタパッケージにより、Xfce、xfwm4、Thunar、LightDM、Xubuntu標準のアプリケーション群と既定設定がインストールされる。素の xfce4 パッケージではなく xubuntu-desktop を用いるのは、初回ログイン時に「既定のパネル構成を使うか空のパネルにするか」を尋ねるダイアログが表示されるのを避けるためである。
コマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力)。
set "UBU_VER=26.04"
if "%UBU_VER%"=="24.04" (set "VM_NAME=ubuntu2404") else (set "VM_NAME=ubuntu2604")
set "USER_NAME=myuser"
set "USER_PASSWORD=changeme"
set "SSH_HOST_PORT=2222"
REM ホストキーの警告・エラーを回避するためのSSHオプション
set "SSH_OPTS=-o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL"
REM xubuntu-desktop のインストール
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'DEBIAN_FRONTEND=noninteractive apt-get install -y xubuntu-desktop'" <nul
REM ディスプレイマネージャを LightDM に設定
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "printf '/usr/sbin/lightdm\n' > /tmp/ddm" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'cp /tmp/ddm /etc/X11/default-display-manager && rm -f /tmp/ddm'" <nul
REM GNOME 関連パッケージの削除と不要な依存パッケージの削除
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'DEBIAN_FRONTEND=noninteractive apt-get purge -y ubuntu-desktop ubuntu-desktop-minimal ubuntu-session gnome-shell gnome-session gnome-control-center gnome-terminal nautilus gdm3 && apt-get autoremove -y'" <nul
REM 利用可能なセッション名の確認(xubuntu.desktop, xfce.desktop などが表示される)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "ls /usr/share/xsessions/ ; ls /usr/share/wayland-sessions/ 2>/dev/null" <nul
REM 自動ログインに必要なグループへの追加
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'groupadd -f autologin && groupadd -f nopasswdlogin && usermod -aG autologin,nopasswdlogin %USER_NAME%'" <nul
REM LightDM の自動ログイン設定(X11 の xubuntu セッションを明示する)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "printf '[Seat:*]\nautologin-user=%USER_NAME%\nautologin-user-timeout=0\nautologin-session=xubuntu\nuser-session=xubuntu\ngreeter-session=lightdm-gtk-greeter\n' > /tmp/autologin.conf" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'mkdir -p /etc/lightdm/lightdm.conf.d && cp /tmp/autologin.conf /etc/lightdm/lightdm.conf.d/50-autologin.conf && rm -f /tmp/autologin.conf'" <nul
REM 再起動(ゲストOS側から reboot を実行する)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S reboot" <nul
REM === 再起動後の SSH 接続待機 ===
timeout /t 30 /nobreak
set "SSHXF_DONE=" & for /L %i in (1,1,60) do @(if not defined SSHXF_DONE (timeout /t 10 /nobreak >nul & ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL -o ConnectTimeout=5 -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo SSH_OK" <nul 2>nul | findstr "SSH_OK" >nul && (echo Xfce デスクトップ環境の構築が完了しました & set "SSHXF_DONE=1") || (echo SSH 未応答 ... 10 秒待機します)))
REM セッションが起動していることの確認(xfwm4 と xfce4-panel が表示される)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "pgrep -a xfwm4 ; pgrep -a xfce4-panel" <nul
自動ログインのセッション名には xubuntu を指定している。これは xubuntu-default-settings パッケージが提供する /usr/share/xsessions/xubuntu.desktop に対応する。上記の ls /usr/share/xsessions/ の出力に xubuntu.desktop が無い場合は、実在するファイル名(拡張子を除いた部分)に置き換える。
Xfce 4.20 は Wayland への対応が進んでおり、/usr/share/wayland-sessions/ に Xfce の Wayland セッションが置かれる場合がある。Wayland セッションでは xfwm4 のウィンドウ装飾テーマが適用されない。上記のように autologin-session と user-session にX11側のセッション名を指定することで、X11セッションで起動する。
5.3 テーマファイルの配置
コマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力)。
次のコマンドを実行する。Xfce 環境では、GTKテーマ・アイコン・カーソルに加えて、xfwm4 のウィンドウ装飾、Windows 95 風のビットマップフォント、xfce4-terminal の配色設定も配置する。
set "UBU_VER=26.04"
if "%UBU_VER%"=="24.04" (set "VM_NAME=ubuntu2404") else (set "VM_NAME=ubuntu2604")
set "USER_NAME=myuser"
set "USER_PASSWORD=changeme"
set "SSH_HOST_PORT=2222"
set "SSH_OPTS=-o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL"
REM パッケージリスト更新とgitのインストール
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "echo '%USER_PASSWORD%' | sudo -S sh -c 'apt-get update && apt-get install -y git'" <nul
REM 配置用ディレクトリの作成
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.themes ~/.icons ~/.local/share/fonts ~/.config/xfce4/terminal" <nul
REM Chicago95 リポジトリの取得
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "rm -rf /tmp/Chicago95 && git clone --depth 1 https://github.com/grassmunk/Chicago95.git /tmp/Chicago95" <nul
REM GTK/xfwm4 テーマ、アイコン、カーソルの配置
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "cp -r /tmp/Chicago95/Theme/Chicago95 ~/.themes/ && cp -r /tmp/Chicago95/Icons/Chicago95 ~/.icons/ && cp -r /tmp/Chicago95/Cursors/Chicago95_Cursor_Black ~/.icons/" <nul
REM Windows 95 風フォントの配置とフォントキャッシュの更新
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "cp -r /tmp/Chicago95/Fonts/. ~/.local/share/fonts/ && fc-cache -f" <nul
REM xfce4-terminal の配色設定の配置
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "cp /tmp/Chicago95/Extras/terminalrc ~/.config/xfce4/terminal/terminalrc" <nul
REM 一時ファイルの削除と配置の確認
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "rm -rf /tmp/Chicago95 && ls -d ~/.themes/Chicago95 ~/.icons/Chicago95 ~/.icons/Chicago95_Cursor_Black" <nul
REM xfwm4 ウィンドウ装飾が含まれることの確認
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "ls -d ~/.themes/Chicago95/xfwm4 ~/.themes/Chicago95/gtk-3.0 ~/.themes/Chicago95/xfce-notify-4.0" <nul
最後の2つのコマンドの出力で、実際に配置されたディレクトリ名を確認する。次節の設定値は、この名前(Chicago95 および Chicago95_Cursor_Black)と一致させる必要がある。Theme/Chicago95 には、高解像度ディスプレイ向けの xfwm4_hidpi も含まれる。標準の xfwm4 でタイトルバーが小さすぎる場合は、こちらの内容で xfwm4 を置き換える。
5.4 テーマの適用
コマンドプロンプトを起動する
(手順:Windowsキーまたはスタートメニュー → cmd と入力)。
以下のコマンドは、Xfceセッションが起動している状態で実行する。仮想マシンのウィンドウを閉じてしまった場合は、先頭の VBoxManage startvm により起動し直す。壁紙は、あらかじめホスト側の %USERPROFILE%\Downloads\wallpaper.jpg に用意した画像を転送して使用する。
set "UBU_VER=26.04"
if "%UBU_VER%"=="24.04" (set "VM_NAME=ubuntu2404") else (set "VM_NAME=ubuntu2604")
set "USER_NAME=myuser"
set "USER_PASSWORD=changeme"
set "SSH_HOST_PORT=2222"
set "SSH_OPTS=-o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL"
REM 仮想マシンの画面を表示(既に起動している場合はエラーになるが無視してよい)
VBoxManage startvm "%VM_NAME%" --type gui
REM 自動ログインによる Xfce セッションの起動を待つ
timeout /t 45 /nobreak
REM 実行中セッションの D-Bus アドレスを用いるための共通の前置き
set "XFENV=export DISPLAY=:0; export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus;"
REM GTK テーマ・アイコン・カーソル・フォントの設定
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xsettings -p /Net/ThemeName -n -t string -s Chicago95" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xsettings -p /Net/IconThemeName -n -t string -s Chicago95" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xsettings -p /Gtk/CursorThemeName -n -t string -s Chicago95_Cursor_Black" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xsettings -p /Gtk/CursorThemeSize -n -t int -s 24" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xsettings -p /Gtk/FontName -n -t string -s 'Noto Sans CJK JP 10'" <nul
REM ウィンドウ装飾(xfwm4)の設定
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfwm4 -p /general/theme -n -t string -s Chicago95" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfwm4 -p /general/title_font -n -t string -s 'Noto Sans CJK JP Bold 9'" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfwm4 -p /general/button_layout -n -t string -s 'O|HMC'" <nul
REM パネルの設定(画面下端・高さ30ピクセル・幅100パーセント)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfce4-panel -p /panels/panel-1/position -n -t string -s 'p=8;x=0;y=0'" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfce4-panel -p /panels/panel-1/size -n -t uint -s 30" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfce4-panel -p /panels/panel-1/length -n -t uint -s 100" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfce4-panel -p /panels/panel-1/position-locked -n -t bool -s true" <nul
REM 2枚目のパネル(ドック)が存在する場合は非表示にする
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfce4-panel -p /panels/panel-2/autohide-behavior -n -t uint -s 2 2>/dev/null || true" <nul
REM 壁紙の転送
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "mkdir -p ~/.local/share/wallpapers" <nul
scp -P %SSH_HOST_PORT% -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL "%USERPROFILE%\Downloads\wallpaper.jpg" %USER_NAME%@localhost:~/.local/share/wallpapers/
REM 壁紙の設定(モニタ名は環境により異なるため、既存のプロパティをすべて書き換える)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% for p in $(xfconf-query -c xfce4-desktop -l | grep 'last-image$'); do xfconf-query -c xfce4-desktop -p $p -s $HOME/.local/share/wallpapers/wallpaper.jpg; done" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% for p in $(xfconf-query -c xfce4-desktop -l | grep 'image-style$'); do xfconf-query -c xfce4-desktop -p $p -s 5; done" <nul
REM デスクトップアイコンの表示設定(ホーム・ごみ箱・リムーバブルデバイス)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfce4-desktop -p /desktop-icons/file-icons/show-home -n -t bool -s true" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfce4-desktop -p /desktop-icons/file-icons/show-trash -n -t bool -s true" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xfce4-desktop -p /desktop-icons/icon-size -n -t uint -s 48" <nul
REM 設定の反映(パネルとデスクトップの再起動)
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfce4-panel -r" <nul
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfdesktop --reload" <nul
REM 設定値の確認
ssh %SSH_OPTS% -p %SSH_HOST_PORT% %USER_NAME%@localhost "%XFENV% xfconf-query -c xsettings -p /Net/ThemeName ; xfconf-query -c xfwm4 -p /general/theme" <nul
-n -t <型> は、プロパティが存在しない場合に指定した型で新規作成する指定である。既に存在する場合は値のみが更新される。image-style の 5 は画面全体への引き伸ばし(stretched)を意味する。
ウィンドウ操作ボタンの配置 O|HMC は、左端にメニューボタン(O)、右端に最小化(H)・最大化(M)・閉じる(C)を並べる指定であり、Windows 95 のウィンドウに近い配置となる。
パネルのプラグイン構成(アプリケーションメニュー、タスクバー、時計など)は Xubuntu の既定構成をそのまま用いている。Windows 95 のタスクバーにより近づける場合は、Chicago95 リポジトリの Extras/Chicago95_Panel_Preferences.tar.bz2 にあるパネルのプロファイルを使う。これは xfce4-panel-profiles パッケージのGUIから読み込む形式である。適用する場合は、ゲストOSで sudo apt-get install -y xfce4-panel-profiles を実行したうえで、デスクトップ上から「パネルプロファイル」を起動して読み込む。
設定した内容は ~/.config/xfce4/xfconf/xfce-perchannel-xml/ 配下のXMLファイルに保存され、次回以降のログインでも保持される。
6. トラブルシューティング
6.1 よくある問題と対処
以下の表で ubuntu2604 と記している箇所は、Ubuntu 24.04 で構築した場合は ubuntu2404 に読み替える。
| 症状 | 原因 | 対処 |
|---|---|---|
VBoxManageが認識されない |
PATHが通っていない | コマンドプロンプトを再起動、または絶対パス "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" で実行する。 |
%VM_NAME% などの変数が空になる |
コマンドプロンプトを閉じたため set の内容が失われた |
各節の先頭にある変数設定(set "UBU_VER=..." から始まる数行)を実行し直す。echo %VM_NAME% で値を確認できる。 |
| ISOダウンロード失敗 | ネットワーク切断、通信エラー | 同じ curl -fL --retry 3 -C - -o のコマンドを再実行すると中断位置から再開する。改善しない場合は releases.ubuntu.com の該当バージョンのページからブラウザでダウンロードし、%USERPROFILE%\VirtualBox VMs\ISO に置く。 |
| Extension Pack のインストール失敗 | 本体とバージョンが一致していない | VBoxManage --version の出力から得たバージョンでURLを組み立て直す。7.2.14 では Oracle_VirtualBox_Extension_Pack-7.2.14.vbox-extpack が配布されている。download.virtualbox.org で該当バージョンのディレクトリを確認する。 |
| Hyper-V競合エラー、実行速度の低下 | Hyper-V やメモリ整合性などによりハイパーバイザが動作中 | 管理者権限のコマンドプロンプトで bcdedit /set hypervisorlaunchtype off を実行し、Windowsを再起動する。「Windows の機能の有効化または無効化」でHyper-Vと仮想マシンプラットフォームのチェックを外す方法もある。 |
| SSH 接続がタイムアウトする | ポートフォワーディング未設定、または SSH サーバ未起動 | VBoxManage showvminfo "ubuntu2604" --machinereadable | findstr natpf で設定を確認。VM 内で sudo systemctl status ssh を確認する。 |
| SSH ホスト鍵エラー | VM 再作成による鍵の不一致 | ssh-keygen -R "[localhost]:2222" で既知のホスト鍵を削除する。本ページのコマンド列は -o UserKnownHostsFile=NUL によりこの問題を回避している。 |
sudo の挙動が従来と異なる(26.04) |
Ubuntu 25.10 以降の標準の sudo が sudo-rs(Rust実装)である | プロンプトの文言が [sudo: authenticate] となり、入力中にアスタリスクが表示される。本ページで用いる -S は sudo-rs でも動作する。I/Oログ(sudoreplay)、sudoers.ldap、プラグイン機構は未実装であり、これらが必要な場合は sudo update-alternatives --set sudo /usr/bin/sudo.ws で従来の sudo に切り替える。 |
| ログイン後に黒い画面になる(4章・LXQt) | SDDM がセッションを認識していない | ls /usr/share/xsessions/ で Lubuntu.desktop の存在を確認し、/etc/sddm.conf.d/autologin.conf の Session= の値を実在するファイル名に合わせる。sudo dpkg-reconfigure sddm も試す。 |
| 自動ログインされない(5章・Xfce) | LightDM の自動ログインにはグループ所属が必要 | groups の出力に autologin と nopasswdlogin が含まれることを確認する。含まれない場合は sudo usermod -aG autologin,nopasswdlogin myuser を実行して再起動する。/etc/X11/default-display-manager が /usr/sbin/lightdm であることも確認する。 |
| Xfce が Wayland セッションで起動する(26.04) | /usr/share/wayland-sessions/ のセッションが選択されている |
Wayland セッションでは xfwm4 のウィンドウ装飾テーマが効かない。/etc/lightdm/lightdm.conf.d/50-autologin.conf の autologin-session と user-session に、/usr/share/xsessions/ 側のセッション名(xubuntu など)を指定する。 |
| テーマが適用されない | 設定値中のテーマ名が実際のディレクトリ名と一致していない | ls ~/.themes ~/.icons の出力と、設定した名前を一致させる。LXQt では ~/.config/lxqt/lxqt.conf と ~/.config/gtk-3.0/settings.ini、Xfce では xfconf-query -c xsettings -p /Net/ThemeName の出力を確認する。 |
xfconf-query を実行しても反映されない(5章) |
デスクトップセッションのD-Busに接続できていない | SSHから実行する場合は export DISPLAY=:0 と export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus を前置きする。セッションが起動していること(pgrep xfwm4 で確認)が前提である。セッション未起動の状態で書いた設定は、ログアウト時に上書きされることがある。 |
| Chicago95 の一部が Xfce 4.20 で適用されない(26.04) | 配布元が動作を明記しているのは Xfce 4.16 まで | ウィンドウ装飾・GTKテーマ・アイコン・カーソルは概ね適用される。パネルの配色など一部の項目は設定名が変わっており、適用されない場合がある。Xfce 4.18 の Ubuntu 24.04 を用いるか、GUI の「外観」「ウィンドウマネージャー」から手動で設定する。 |
| Openbox のウィンドウ装飾が変わらない(4章) | 編集した設定ファイルがセッションで使われていない | LXQtセッションのOpenbox設定は ~/.config/openbox/rc.xml である。~/.config/openbox/ の中身を確認し、openbox --reconfigure を実行する。 |
| 半角/全角キーで日本語入力に切り替わらない | 入力メソッドフレームワークが Fcitx5 になっていない、または Fcitx5 が起動していない | im-config -m で現在のフレームワークを確認する。システムトレイのアイコンが表示されていなければ fcitx5 -d で起動する。設定変更後は fcitx5 -r で再起動する。fcitx5-diagnose で環境変数の設定状況を診断できる。 |
| 特定のアプリケーションでのみ日本語入力できない | そのアプリケーションのツールキット用フロントエンドが未導入 | Qt 6 アプリケーションには fcitx5-frontend-qt6、Qt 5 には fcitx5-frontend-qt5、GTK4 には fcitx5-frontend-gtk4 が必要である。Lubuntu 26.04 の LXQt 2.3 は Qt 6 系であるため fcitx5-frontend-qt6 が必要となる。 |
6.2 VMの削除と再作成
REM VM登録解除とファイル削除
VBoxManage unregistervm "ubuntu2604" --delete
REM 仮想ディスクのみ削除(VMは残す場合)
VBoxManage closemedium disk "%USERPROFILE%\VirtualBox VMs\ubuntu2604\ubuntu2604.vdi" --delete
6.3 VM の管理コマンド
| 操作 | コマンド |
|---|---|
| VM を画面付きで起動 | VBoxManage startvm "ubuntu2604" --type gui |
| VM を画面なしで起動 | VBoxManage startvm "ubuntu2604" --type headless |
| VM の電源を切る(ACPI シャットダウン) | VBoxManage controlvm "ubuntu2604" acpipowerbutton |
| VM を強制停止 | VBoxManage controlvm "ubuntu2604" poweroff |
| スナップショットの作成 | VBoxManage snapshot "ubuntu2604" take "初期設定完了" |
| スナップショットの復元 | VBoxManage snapshot "ubuntu2604" restore "初期設定完了" |
| SSH 接続 | ssh -p 2222 myuser@localhost |