はじめに
この記事はデュアルブートでLinux + Windowsのような運用をしていて, 同じSSD/HDD上に複数のOSが入っている環境上でやったことを備忘録的に記録したものである.
また, 実パーティションを直接触るため, 記事の内容を試す際はすべて自己責任とし、細心の注意を払って行うこと.
環境
ハードウェア
- NVMe SSD 512GB x2
- CPU i7-10700K
- RAM 32GB
- Quadro M4000
- UEFI BOOT(レガシーな起動順序の場合は未検証)
Windows boot ManagerがESPの中に入っている.
nvme0n1
nvme0n1p1 | nvme0n1p2 | nvme0n1p3 | nvme0n1p4 |
---|---|---|---|
ESP(/boot/efi) | /boot | / | (Ubuntu) / |
nvme1n1
nvme1n1p1 | nvme1n1p2 |
---|---|
C:\ | D:\ |
ソフトウェア
- Arch Linux (著者環境5.13.13-arch1-1)
- Oracle VirtualBox (6.1.26)
VMの作成と起動
すること
- 現在のユーザーを
disk
audio
vboxusers
に追加する -
vboxmanage
コマンドで仮想ディスクファイルを作る - VMを作成する
- VMの設定をいじる
手順0 ディスク内のOSの確認とVirtualBoxのインストール
sudo pacman -S virtualbox gparted
でVirtualboxとgparted(パーティション管理ツール)を導入し, gpartedでパーティションテーブルの確認をしておく.
手順1 ユーザーの追加
sudo gpasswd -a $USER disk
sudo gpasswd -a $USER audio
sudo gpasswd -a $USER vboxusers
これでdisk
audio
vboxusers
グループに自分を追加する.
($USER
で現在のユーザが追加される.gpasswd -a kasagon disk
のように特定のユーザを追加することもできる)
手順2 仮想ディスクファイルの作成
適当なディレクトリを作り,(e.g. $HOME/VM_Dir
)その中で作成すると探すのが楽
vboxmanage internalcommands createrawvmdk -filename nvme0n1.vmdk -rawdisk /dev/nvme0n1
vboxmanage internalcommands createrawvmdk -filename nvme1n1.vmdk -rawdisk /dev/nvme1n1
これでVMDKファイルが作成される.
手順3 VMの作成
Oracle VM VirtualBox Managerを起動し, 新規作成でウィザードを起動する.
Expert Modeをクリック(またはAlt + E)で詳細設定に移動する.
起動するOSの種類, バージョンを環境に合わせて設定し, 割り当てるRAM容量を決める.
Hard Diskの項目は, Use an existng virtual hard disk file
を選択する.
右側のファイルアイコンから Hard Disk Selectorを呼び, Addから先程作成したvmdkファイルを選択する. 複数ある場合は後で設定する.
ファイルを選び, CreateでVMを作成する.
手順4 VMの設定
作成したVMを選び, Settingsから設定を行う.
まず, Systemの項目内にある, 「Enable EFI(special OSes only)
」にチェックを入れ, EFIを有効にする(EFIブートの場合.)
Prosessor, Accelerationの項目も適宜設定する.
次に, Storageを設定する. Linuxをゲストにする場合はコントローラがSATAやAHCIでも起動することが確認できたが,Windows10の場合はNVMeにする必要がある.
また, 複数のディスクを起動に必要とする場合や, 外付けドライブが必要な場合はここで仮想ディスクファイルを追加する.
NVMeに設定して起動すると拡張機能を要求される場合
拡張機能をDLして導入する.
https://www.virtualbox.org/wiki/Downloads
リンク先の
のAll supported platformsで拡張機能のファイルがダウンロードできるので, Virtualbox Managerの File>Preferences(またはCtrl + G)でPreferencesを開き,
Extensions(拡張機能)>Adds New PackageでDLしたファイルを読み込ませる.
Windowsがブルースクリーンになる
設定のDisplayの項目で, メモリを最大にして,
グラフィックコントローラを VBoxSVGA
にすると多分治る(著者環境での解決策)
ゲストOSがLinuxの場合はデフォルトのVMSVGAで動いた.
起動すると, 普段の起動と同じGRUB等が表示されてブートされる.
なお, VMの設定をWindows10にして初回にgrubでWin10をブートすると,次回から何故かスキップされてWindowsが起動する.
マルチディスプレイの環境であれば, 一方のディスプレイでゲストOSをフル画面(左Ctrl + F)で使用すると快適でおすすめ.(GuestAdditionsイメージの挿入が必要かも)