「WSLがあるからLinux端末要らない」みたいな声もあるが、筆者は普段使いのOSがLinuxなのでWindowsが必要になることの方が少ない。
ただ、講義のレポート提出でMicrosoft Officeが必要なときはWindowsに切り替える必要がある。デスクトップPCはWindows11の入ったM.2 SSDとManjaro Linuxの入ったSATA SSDを搭載しているので、今までは再起動してブートデバイスを選択し直す必要があった。
そこでVirtualBoxを使用し、Linux上で別ディスクの既存Windows11を起動できるようにした。本記事では、その方法について記載する。
VirtualBoxのインストール
Arch Wiki 参照。
VirtualBoxをインストール
sudo pacman -S virtualbox
モジュールをロード
sudo modprobe vboxdrv
ユーザーに権限を付与
gpasswd -a $USER vboxusers
Windowsのイメージを作成
物理ディスクから仮想イメージを作成するにはVirtualBox付属のVboxManage
を使用する。
まず、Windowsのディスク名を取得する。
sudo fdisk -l
筆者の環境では以下の出力が得られ、ディスク名は/dev/nvme0n1
であることが分かった。
ディスク /dev/nvme0n1: 232.89 GiB, 250059350016 バイト, 488397168 セクタ
ディスク型式: WDS250G3X0C-00SJG0
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 2326F063-B739-4D5E-A3DB-7302F7D11904
デバイス 開始位置 終了位置 セクタ サイズ タイプ
/dev/nvme0n1p1 2048 1023999 1021952 499M Windows リカバリ環境
/dev/nvme0n1p2 1024000 1228799 204800 100M EFI システム
/dev/nvme0n1p3 1228800 1261567 32768 16M Microsoft 予約領域
/dev/nvme0n1p4 1261568 486992048 485730481 231.6G Microsoft 基本データ
/dev/nvme0n1p5 486993920 488392703 1398784 683M Windows リカバリ環境
次に、以下のコマンドで仮想イメージファイルを作成する。(/dev/nvme0n1
の部分は各自の環境に合わせること)。成功すればカレントディレクトリにwindows11.vmdk
ができる。
VBoxManage internalcommands createrawvmdk -filename ./windows11.vmdk -rawdisk /dev/nvme0n1
VirtualBoxで仮想マシンを作成
「新規」で仮想マシンを作成する。
タイプを「Microsoft Windows」に、バージョンを「Windows 11 (64bit)」に設定。メモリーサイズは任意。
ハードディスクは「すでにある仮想ハードディスクファイルを使用する」を選び、先程作成したwindows11.vmdk
を追加して指定する。
仮想マシンを「作成」。
仮想マシンの設定
システム設定で、拡張機能の「PAE/NXを有効化」「ネステッドVT-x/AMD-Vを有効化」にチェック。プロセッサー数は任意。
ディスプレイ設定で、アクセラレーションの「3Dアクセラレーションを有効化」にチェックし、ビデオメモリーを最大値に変更。
仮想マシンの起動
あとはVirtualBoxで仮想マシンを起動すれば、別の物理ディスクにインストールされたWindowsが立ち上がる。Guest Additionディスクを導入すれば、画面解像度も変更できるようになる。
Linux・Windows間で共有するディスクがある場合は、Windowsの高速スタートアップ設定を無効化した方が良い。
コメント