• 作成:
  • 更新:

デュアルブートしている環境でVirtualBoxでLinuxをホストOSとして別パーティションのWindowsをゲストOSとして起動

忘れると困るので自分用にメモします.

私のXPS 13 9360は買った直後にパーティションを切ってGentoo Linuxをインストールしています.

その後Windowsは殆ど起動していなかったのですが, Windows環境を必要とする状況が出てきました.

VirtualBoxで専用ディスクを生成しても良いのですが, せっかく別パーティションにWindowsが存在すること, vagrant upが何時まで経っても終わらないことから, この別パーティションのWindowsを有効活用するようにしました.

まずgpasswdで自分をdisk, vboxusersグループに所属させて再起動します.

そうしたら~/.VirtualBoxに移動します. 存在しなかったらmkdirで作ってください.

VBoxManage internalcommands createrawvmdk -filename "nvme0n1.vmdk" -rawdisk /dev/nvme0n1 を実行します.

複数デバイスがある場合は VBoxManage internalcommands createrawvmdk -filename "nvme-PC401_NVMe_SK_hynix_512GB_MN8AN61031110AM31.vmdk" -rawdisk /dev/disk/by-id/nvme-PC401_NVMe_SK_hynix_512GB_MN8AN61031110AM31 とか方が変動しなくて良いと思います.

この場合の-filename, -rawdiskへの引数は, 私の環境だとNVMe SSDのトップレベルを指定する必要がありました.

次に仮想マシンを作成して, ハードディスクに先程作成したvmdkファイルを選択します.

そしてマシンの設定でEFIを有効化します.

そうしたら起動できます.

Guest Addtions CDのプログラムをインストールしたら画面サイズも大きくできます.

デュアルディスプレイにしていれば片方はWindowsでもう片方にはLinuxを表示すると言ったことも可能です.

デュアルディスプレイにしていればマウスの移動でOSのフォーカス移動が可能なので便利です.

高速スタートアップを無効にすること

多分Windowsの高速スタートアップは無効にする必要があります.(未検証)

多コアCPUを使っている人は注意

その後デスクトップPCでも同じことをしても起動できませんでした. 1ヶ月ぐらい悩んで解決しました.

プロセッサー数

プロセッサーの数が9以上になると起動できません!

私は今(2018-11-29)デスクトップPCにAMD Ryzen Threadripper 1950X 16-Core Processorを使っていて, これは32のスレッドを持っているため, 普通にVirtualBoxの環境を立ち上げるのと同じように半分の16コアを割り当てようとしていました.

これが間違いで, セーフゾーンの範囲のはずですがVirtualBoxは8コアを超えるとWindowsを起動してくれません.

仮想マシンに割り当てるプロセッサ数は8にしましょう.

とりあえずOracleにはバグの届け出をしたので, 治るかCPUの数で警告が出ると良いですね.

#18158 (Windows does not start when the virtual machine is allocated 9 or more processors) – Oracle VM VirtualBox

Optimusを使っている人は注意

Alienware m17で同じことをしようとしても起動しませんでした. そうするとアドバイスを貰いました.

なるほどOptimuswを使っているからかなと変えてみるかとVBoxSVGAからVMSGAに変えたら起動しました. やった.

しかし何故かGuestAdditions CDのインストールに失敗します. この小さい画面で流石にやっていく気にはならないですね…

VBoxVGAに変えて再度試してみましょう. そうしたら最初から大きい画面になって, しかもGuestAdditions CDのドライバもインストール出来ました.

多分Optimusと新機能のVBoxSVGAの相性が良くなくて, VMSVGAもあまりちゃんとエミュレートできてなくて, これまでのVBoxVGAじゃないと動かないんでしょうね…

そのうち治るでしょう.