Windowsブートローダを利用したUbuntuデュアルブート環境構築

普段使いのノートPC Dell XPS13 9350 Windows10機にUbuntu16.04をWindowsのブートローダを利用してデュアルブート可能となるようインストールしてみた。
普段はOfficeを利用するのでWindowsが必須だけども、TensorFlowを利用するにはLinux環境が必要で、VirtualBoxで仮想化したり、Bash on Windowsにインストールもしてみたが、どうも使いづらく。
Ubuntuをそのままインストールしてもデュアルブート環境構築できてしまうのだが、そうするとgrubというブートローダが利用されてしまい、後でUbuntuをアンインストールした時にWindowsが起動しなくなるのが面倒と思ったので、Windowsのブートローダを利用するように構築した。

大まかな手順は以下。
1.Ubuntu用領域の確保
2.Ubuntuインストール
3.Ubuntu用のMBRを取得
4.Windowsブートローダ設定


1.Ubuntu用領域の確保
ディスクの余剰領域はなかったのでUbuntu用の領域を空ける(既存パーティションの縮小)必要があった。
「ディスクの管理」でもパーティション操作はできるけど、移動できないファイルがあるため既存の領域縮小がうまくできず(50GB位空きがあるのに2GBしか縮小できず)。
そこで「EaseUS Partition Master」(フリー版)を使用。今回は領域の末尾に約30GBを確保。
(Ubuntuインストール後の画面ショットなので作成時と表示が少し異なる)


2.Ubuntuインストール
インストーラ(isoファイル)はホームページからダウンロード。
メディアに焼くかブータブルUSBを作成してインストール。
注意する点は、インストール時の設定「ブートローダをインストールするデバイス」をUbuntuインストール先に変更する必要あり。↓の場合は「/dev/nvme0n1p5」を指定。

3.Ubuntu用のMBRを取得
Linuxのddコマンドを使ってMBR(マスターブートレコード)を取得。
ここまでの手順ではUbuntuを起動できないので、Ubuntuインストーラをインストールしないで使用するモードでUbuntuを立ち上げてddコマンドを利用するのが簡単。
> dd if=/dev/nvme0n1p5 of=ubuntu.dd bs=512 count1
実行するとubuntu.ddというファイルが作成されるのでこれをUSBメモリ等に書き出しておいてWindows環境へコピーする。

4.Windowsブートローダ設定
ココを参照。まずはUbuntuのMBRをC直下(異なる場所でも構わないが)に格納する。
C\:ubuntu.dd

管理者権限のコマンドプロントで以下を実行。
> bcdedit /create /d "Ubuntu 16.04" /application bootsector
> bcdedit /set {912587e9-8248-11e6-a040-3052cbe83e44} device partition=C:
> bcdedit /set {912587e9-8248-11e6-a040-3052cbe83e44} path \ubuntu.dd
> bcdedit /displayorder {912587e9-8248-11e6-a040-3052cbe83e44} /addlast

1行目の"Ubuntu 16.04"はブートローダでの表示される文字列なのでなんでも構わない。
英数字の文字列{xxxx}は1行目を実行時に表示されたentryを入力する。

これで電源投入時にWindowsもUbuntuについても、Windowsのブートローダで起動可能になる。

コメント

このブログの人気の投稿

Python SQLite スレッド間でコネクションの使いまわしは出来ない

slackでgeneralの投稿を全削除する

Google location history(JSON形式)をCSVファイルにする