Ubuntu16.04をWindows10とデュアルブート in UEFI
機械学習の実行環境がほしいと思って買ったBTOパソコンがUbuntuを受け付けてくれない。Windows10とUbuntuのデュアルブートについて、調べあげた記録を残しておきます。最近のGPUがのったPCでUbuntu16.04をデュアルブートするにはWindows10,UEFIBoot,NvidiaGPUの3つがうまく動くように設定してやる必要があります。設定しないままインストールしようとするとインストールディスクが読み込めなかったり、画面が真っ暗になったりしてインストールできません。こうした設定があちらこちらのサイトに散らばっているので探すのに苦労しました。そうした設定を以下に全てまとめました。冗長な部分もあるかとは思いますが、最後までお付き合いいただければ幸いです。
インストール環境
まずは私が今回Ubuntu16.04をインストールした環境を説明します。
使用したPCはパソコン工房で買ったBTOパソコンです。
iiyama STYLE-R027-i7-XN [Windows 10 Home] | パソコン工房【公式通販】
インストール済みOS: Windows 10
インストールしたいOS: Ubuntu 16.04.3 GNOME
ブート環境: UEFI
GPU: GeForce GTX 1080 Ti 11GB GDDR5X
インストールディスク作成
まずは下記サイトからイメージデータをダウンロードしてきましょう
UbuntuGNOME/GetUbuntuGNOME - Ubuntu Wiki
"16.04.3 64bit Direct Download"を選択します。今回、GNOMEを選んだのはUbuntu18.04からGNOMEがデフォルトのデスクトップ環境になるためです。今のうちにGNOMEに慣れておきましょう。
USBにイメージファイルを書き込むためのソフト(Universal USB Installer)をダウンロードします。
Universal USB Installer 1.9.7.8 - ダウンロード
Universal USB Installerを使ってUSBにイメージファイルを書き込みます。
Step1:Ubuntu
Step2:Browseからubuntu-gnome-16.04.3-desktop-amd64.isoを選択
Step3:書き込むUSBメモリを設定
Fat32でフォーマットを選択
Createを選択して書き込みをします。
Windowsでの設定
高速スタートアップの無効化
インストールしたいSSDまたはHDDがNTFSとして設定されている場合はWindowsで設定されている高速スタートアップを無効にする必要があります。これを無効にすることでUbuntuでNTFS領域をマウントできるようになります。
nagamitsu1976.hatenadiary.jp
Windowsキーを押す→設定→システム→電源とスリープ→電源の追加設定→電源ボタンの動作を選択する→現在利用可能ではない設定を変更します→「高速スタートアップを有効にする」のチェックを外す
Ubuntu用パーティション作成
WindowsからUbuntuをインストールするためのパーティションを切ります。Ubuntuをインストールする時にGparted等でパーティションを切っても良いのですが、Gpartedは時々落ちたりするので私はWindowsからパーティションを切っています。Windowsからパーティションを切るには(通常画面右下の)Windowsマーク上で右クリックして「コンピュータの管理」を選択します。
その後、「ディスクの管理」を選択、パーティションを切りたい場所(今回はWindows(C))で右クリックして、「ボリュームの縮小」を選択します。
縮小するボリュームのサイズでUbuntuに割り当てたい領域を決めます。今回は204800MiB(200GiB)を設定しました(後で分かりましたが、スワップ領域が作られるのでUbuntuに設定される領域は正確にはこの値ではありません)。
MiBからGiBへ変換するにはこちら
MiB GiB - Google 検索
UEFI BIOSでの設定
インストールの前にBIOSでいくつか設定を行います。BIOSを立ち上げるためのキーはPCのメーカーによりけりですが、私のPCはDELキーでした。他のメーカーでも多くは、F1,F2,F4,F8,F10,F12,Tabなどです。BIOSによって設定画面は異なりますが、参考までに私の設定画面を載せます。
Secure Boot無効化
セキュアブートが設定されているとUbuntu等のOSがインストールできないので無効化します。
セキュアブートについてはこちら
UEFI の セキュアブートの設定について: 変更方法や注意点など - ぼくんちのTV 別館
Settings→Advanced→Secure Boot →Secure Boot Support→Disabledを選択
Fast Boot無効化
Windowsの高速スタートアップとは別にBIOSが提供する機能としてFastBootというものがあります。詳しくは下の記事に書いてあります。BIOSの設定を変更したり、ハードウェア構成を変更する場合には無効にしておくべきものです。
UEFI の Fast Boot とはどんな機能なのか?無効化するのはどういう状況か? - ぼくんちのTV 別館
Settings→Advanced→Fast Boot→Disabledを選択
Boot順序の設定
USBのインストールディスクを優先的にBootしてほしいので、ブート順序を変更します。UEFIではマウスで簡単に順番を変更できます。設定画面の上にBoot Priorityを設定する場所があり、ここで明るくなっている(認識されている)USBのアイコンをドラックアンドドロップするだけで、優先順位が変更できます。左から順番に解釈されるので、1番左に持っていけば再優先のBootになります。
設定が完了したら、保存して再起動(Save&ExitのSave Changes and Reboot)しましょう。
Ubuntuのインストール
さて、ようやくUbuntuのインストールです。Try Ubuntuを選択してUbuntuが正常に動くか確認しましょう。
Try UbuntuまたはInstall Ubuntuを選択後画面が真っ暗になる。
Try UbuntuまたはInstall Ubuntuを選択後画面が真っ暗になってしまう場合、splash画面がうまく表示されていない可能性があります。
qiita.com
これはUbuntuがGPUをうまく認識できないために発生する不具合なようです。
Try Ubuntu にカーソルを合わせてeキーを押すと起動設定画面が出てきます。カーソルキーで移動して"quiet splash"のところを、"nomodeset"に変更してください。変更したらF10キーを押してBootします。
インストール画面
無事にTry UbuntuができたらUbuntuをインストールしましょう。Superキー(ウィンドウズマークのキー)を押してInstall Ubuntu GNOME 16.04.3 LTSを選択します。
まずは言語選択です。Japaneseも選択できますが、後でフォルダ名を変更するのが面倒なので私はEnglishのままやります。言語を選択したらcontinueを選択します。
(前から疑問に思っているのですが、Linuxにはシンボリックリンクという素晴らしい機能があるのにもかかわらず、Japaneseを選択した時にフォルダ名が"ダウンロード"のように全角の名前を直書きしてしまうのでしょうか。シンボリックリンクで全角名を指定してくれていれば誰も文句を言わない気がするのですが...)
インストールする際にサードパーティソフトウェアを入れるにチェックします。
ポップアップウィンドウが出て"Unmount partitions that are in use?"がと出てきますが、ここはNoを選択します。
Install typeは"Install Ubuntu GNOME alongside Windows Boot Manager"を選択して、"Install Now"を押します。
Write the changes to disks?と出るので、"Continue"を選択します。
上の画像の場合、インストールする領域としてパーティションの5,6を使うので、ここをフォーマットしますと出ています。もしWindowsを消してしまわないか心配という方はSuperキーを押してから"disks"と打って、ディスク管理を行うソフトを起動します。下の画像のようにパーティション3がWindowsの領域、パーティション5,6がUbuntu用に確保した領域だと確認できます。
ここからは面倒な確認もなく、必要なことを入力していくだけです。
まずはユーザーを登録しましょう。空欄を埋めて、Continueを選択します。
地域を選択しましょう。時刻同期や言語設定などに使われます。
キーボードを設定します。Japaneseを選択していれば問題ないとは思いますが、一応下の入力欄で確認しておきましょう。特に記号は重要です。時々パイプ | が別のキーに割り当てられたりしているので注意です。
お疲れ様でした。これでインストールは終了です、と言いたいところですが、まだやることが残っています。
再びBIOSの設定
現在の設定のまま、PCを起動しようとするとおそらくそのままWindowsが起動します。
Settings→Boot→UEFI Hard Disk Drive BBS Prioritiesを選択します。
ここでブートの優先順位をUbuntuが#1になるように変更します。
こうすることでPC起動時にGrubが起動し、GrubからUbuntuかWindowsのどちらを起動するのか選択することができるようになります。
NVIDIA Driverのインストール
さて、無事にインストールが完了して、Grubから起動できるようになりましたが、splash画面が崩れていた方は相変わらずeキーを押して、"quiet splash"のところを、"nomodeset"に変更しないと正常に起動しません。この問題も解決しましょう。
問題はGPUが正常に認識されていないことが原因なので、GPUのドライバを入れてやれば問題ありません。
nomodesetでの起動に成功したら、ターミナルを起動します。
以下のコマンドで利用可能なnvidiaのドライバを探します。
$ sudo add-apt-repository ppa:graphics-drivers/ppa $ sudo apt update $ apt-cache search 'nvidia-[0-9]+$' nvidia-331 - Transitional package for nvidia-331 nvidia-346 - Transitional package for nvidia-346 nvidia-352 - Transitional package for nvidia-361 nvidia-361 - Transitional package for nvidia-367 nvidia-367 - Transitional package for nvidia-375 nvidia-304 - NVIDIA legacy binary driver - version 304.137 nvidia-340 - NVIDIA binary driver - version 340.104 nvidia-375 - NVIDIA binary driver - version 375.82 nvidia-378 - NVIDIA binary driver - version 378.13 nvidia-381 - NVIDIA binary driver - version 381.22 nvidia-384 - NVIDIA binary driver - version 384.90 nvidia-387 - NVIDIA binary driver - version 387.12
どうやら本記事執筆時(2017/10)の最新バージョンはnvidia-387のようです。GPUによって対応しているドライバが異なることも考えられますので、古いGPUを使う場合は念の為調べておくと良いかもしれません。
どのドライバが使用可能かはこちらから調べられます。
NVIDIAドライバダウンロード
以下のコマンドでドライバをインストールします。
$ sudo apt install nvidia-387
インストール終了時に、ディスプレイマネージャーを選択する画面がでるかもしれません。GDM3かLightDMが選択できると思われますが、GNOMEデフォルトのディスプレイマネージャーであるGDM3を選択します。
eng-entrance.com
お疲れ様でした。以上でセットアップは完了です。ここからはプログラム環境の構築といったところでしょうか。dotfilesを作っておけば、自分好みの環境をコマンド1つで構築することも可能です。
www.g104robo.com
参考サイト
121ware.com > サービス&サポート > Q&A > Q&A番号 015493
大学推奨 Windows 8.1 PCでUbuntuとのデュアルブートに苦労した(TOSHIBA R732,Ubuntu14.04) - Qiita
Ubuntu16.04 + Windows10 のデュアルブート環境を構築する - 俺とプログラミング
UEFI の セキュアブートの設定について: 変更方法や注意点など - ぼくんちのTV 別館
UEFI の Fast Boot とはどんな機能なのか?無効化するのはどういう状況か? - ぼくんちのTV 別館