デュアルブートしている環境で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の数で警告が出ると良いですね.
Optimusを使っている人は注意
Alienware m17で同じことをしようとしても起動しませんでした. そうするとアドバイスを貰いました.
VirtualBox のGraphics Controller を別のやつに変えるとかどうですか
— みざくら (@m2kr_) 2019年3月16日
XPS15でnvidiaのドライバ使ってるとデフォルトだと真っ黒だった
なるほどOptimuswを使っているからかなと変えてみるかとVBoxSVGA
からVMSGA
に変えたら起動しました.
やった.
しかし何故かGuestAdditions CDのインストールに失敗します. この小さい画面で流石にやっていく気にはならないですね…
VBoxVGA
に変えて再度試してみましょう.
そうしたら最初から大きい画面になって,
しかもGuestAdditions CDのドライバもインストール出来ました.
多分Optimusと新機能のVBoxSVGAの相性が良くなくて, VMSVGAもあまりちゃんとエミュレートできてなくて, これまでのVBoxVGAじゃないと動かないんでしょうね…
そのうち治るでしょう.