2016年5月13日金曜日

Virtualboxで物理ディスクをブートする(Ubuntuホスト,Windowsゲスト)

日頃からWindowsもUbuntuもよく使うので思うのだが,
ホスト>ゲスト
という力関係が煩わしいことがある.

例えば,Ubuntuホスト,Windowsゲストの環境で,Windowsだけを使いたい場合にも1度Ubuntuを起動しなければならない.
それならデュアルブートすればいいじゃないかという話だが,Ubuntuを使ってる時にちょっとWindowsを使いたくなったとかいう状況が面倒くさい.

そこで,デュアルブートしといてVirtualboxから物理ディスクを起動できれば便利なのになぁと思ったらできるようなのでやってみたので作業ログ.

作りたかった環境はHostOS=Ubuntu14.04,GuestOS=Windows10.
UbuntuもWindowsもそれぞれ別のディスクにインストール済みである.
(別ディスクじゃなくてパーティション切っても行けると思う)

まず,Windows側の設定.
コンパネ→電源オプション→電源ボタンの動作を選択する→現在利用可能ではない設定を変更します
の順にクリックし,「現在利用可能ではない設定を変更します」をクリックし,
「高速スタートアップを有効にする(推奨)」のチェックを外す.
これをやっとかないとUbuntu側からうまくマウントできない.
ちなみに,こちらを参考にさせてもらった.

次に,Ubuntu側の設定.こちらこちらを参考にさせてもらった.
まず,自分をdiskグループに追加する.

$ sudo fdisk -l
でディスクを確認する.
Bootの項目に*が入っているディスクがbootableディスクだから"/dev/sd.."を覚えておく.
当環境ではLinux用とWidows用に2つ*が入っているディスクがあるが,Windows用の方を覚えておく.
次に,
$ ls -al /dev/sd..
を打ち込む./dev/sd..の部分はさっき覚えたディスク名にする.
ここでグループを確認する.(おそらくdiskグループだろう)

$ sudo gpasswd -a YOUR_USERNAME disk

を実行して,自分をdiskグループに追加する.(diskグループでなかった場合は先ほど確認したグループに適宜変更)
で,一度再起動する必要があるので再起動.
$ sudo reboot

再起動したら,次は仮想ディスクを作成する.
物理ディスクへのリンクみたいなもんなのかな???
$ VBoxManage internalcommands createrawvmdk -filename "</path/to/file>.vmdk" -rawdisk /dev/sd..

<path/to/file>と/dev/sd..は適宜変更する.

ここまでできたら,あとはVitualboxから新しい仮想マシンを作成し,Hard driveをどうするかと聞かれるので"Use an existing virtual hard drive file"にチェックを入れて今作成したディスク(hogehoge.vmdk)を選択するだけ.




余談だが,Virtualboxのホストキーは右Ctrlだが,右Ctrlがないキーボードを使っている場合は起動する前に変更するのを忘れないようにする.