新しくASUSのUX331UNというラップトップを購入した。
薄型軽量でありながら、NVIDIAのMX150というGPUも搭載されたバランスの取れた良いモデルだと思う (でも実はこれが環境構築の上で厄介だった…)。
私は機械学習もちょこっとかじっているので、せっかくだったらちょっとしたモデルの推論くらい回せたら便利じゃないか、ということでUbuntu18.04LTSもインストールしてデュアルブート環境を構築してみた。
その環境構築時の備忘録。
この記事の内容
- UX331UNのSSDをNVMe対応のものに換装
- UX331UNにWindows10 HomeとUbuntu 18.04 LTSのデュアルブート環境を構築
- NVIDIAのGPUドライバーをインストールし、動作を安定化
- Intelの内蔵GPUとNVIDIAのGPUを手動で切り替え
SSDの換装
UX331UNでは初めはM.2 SATA SSD 256GBが搭載されている。
256GBだとWindowsとUbuntuで単純に割るとそれぞれ128GBずつとなる。
これでは少し心許ない。
また、海外モデルではNVMeのSSDを搭載したバージョンも出ている模様。
つまり、ハード的にはSATAではなくNVMeもサポートされていそう。
アクセス速度の面でだいぶ有利になるので、せっかくならSATAではなくNVMeにしたい。
調べてみたところ、SSD換装の先駆者がいたので、参考にさせていただいた。
基本的にはこの手順通りで問題なかったが、躓きやすいポイントを補足しながら説明する。
Windows10 Homeのバックアップ作成
まず、プリインストールされているWindows 10 Homeのバックアップを取る。
手順は以下の通り。
- BitLockerの無効化
BitLockerはHDD/SSDを暗号化する機能。
これを有効にしていると、PCが盗難されたとしてもこの暗号化を解除しない限り、中のデータを取り出すことができない。
このあとのシステムイメージをバックアップするときにはこのBitLockerを無効にする必要がある。
以下のページを参考に、BitLockerを無効化する。
- システムイメージの作成
現状のWindows10 Homeをバックアップする。
SSDのサイズ(128GB)以上の外付けHDDを用意して、そこに書き込む。
以下のページを参考にするのが良い。
- 回復ドライブの作成
次に回復ドライブを作成する。
この回復ドライブを起動することで、先ほど作成したシステムイメージをSSDなどに復元することができる。
32GB以上のUSBメモリーを用意して作成する。
詳細な手順は以下のページを参考に…
これで現状のWindows 10のバックアップを作成することができた。
SSDの換装
では、いよいよSSDを交換していく。
SSDはどのようなものでも問題ないかとは思うが、私は動作実績のある以下のSSDを使用した。
交換手順は以下の通り。
- 裏蓋のT5ネジを外す(10個)
- ヒンジ側のゴム足を外し、プラスネジを外す(2個)
- ゴム足は結構外すのは大変だが、この端末も構造はこのページと同様だった
- ヒンジの逆側からゆっくりと裏蓋を開ける
- ヒンジ側に何箇所かツメがあるので、壊さないようにゆっくりと
- M.2スロットのネジを外し(1個)、初期搭載のSSDを外す
- 換装用に用意したNVMeのSSDを装着する
- 開けたときの逆の順番に裏蓋を閉じていく
- ツメがしっかりとハマるように閉じる
これでSSDの換装は完了。
Windows 10 Homeの復元
換装したSSDにバックアップしたWindows 10 Homeを復元する。
手順は以下の通り。
- 回復ドライブを作成したUSBメモリーとシステムイメージを作成した外付けHDDを接続し、UX331UNを起動する
- 起動直後からF2を長押ししてBIOS画面を開く
- F8を押して、回復ドライブのUSBメモリーを起動する
- このページを参考にしながらシステムイメージを新しいSSDに復元する
- 「イメージでシステムを回復」を選択して進める
- 復元が完了したらシャットダウンして、USBメモリーと外付けHDDを外す
- 初回起動では起動がうまくいかないので、セーフモードで起動する
- 起動失敗を2回繰り返し、スタートアップ修復を実行する
- 「スタートアップ修復でPCを修復できませんでした」の画面で「詳細オプション」をクリックする
- 「トラブルシューティング」→「詳細オプション」→「スタートアップ設定」→「再起動」とクリックする
- 「スタートアップ設定」の画面でF4を押してセーフモードで起動する
- 参考
- Windows 10がセーフモード起動し、ログインできたら再起動する
- 問題なく立ち上がればOK
これで元の環境が復元できた。
Ubuntu 18.04 LTSのインストールメディアの作成
次にUbuntu 18.04 LTSのインストールメディアを作成する。
先ほど復元したWindows 10を使用して進める。
以下の手順に従って進めれば問題ない。
- ISOファイルのダウンロード
ここからUbuntu 18.04 LTSのISOファイルをダウンロードする。
好きなサーバーからダウンロードしてOK。 - Rufusをインストールする
- USBメモリーにUbuntuのISOファイルを書き込む
- また必要になるかもしれないので、Windowsの回復ドライブにしたUSBメモリーは残し、可能であれば別のものを使ったほうが良い
- パーティション構成はGPTを選択する
- 以下のサイトが参考になる
Ubuntu 18.04 LTSのインストール
いよいよUbuntuのインストールする。
ここからは細かい注意事項が増えていく。
参考にしたのは以下のページだったが、私の環境では若干異なる点もあった。
では、実際に行った手順を説明する。
- Ubuntuを書き込んだUSBメモリーを挿した状態でUX331UNを起動する。
- F2を押しっぱなしにして、BIOS画面を起動する。
- F8を押して、USBメモリーのUbuntuを起動する。
- GRUB画面が表示されたら、「Install Ubuntu」を選択した状態で
e
を押す。 linux
という文字で始まる行のquiet splash
をnouveau.runpm=0
に書き換える。- F10を押してUbuntuのインストールを開始する。
- 通常の手順通りにインストールを進める。
- 今回に限らず、インストール時はJapaneseではなくEnglishを選択して進めることをおすすめする
- Japaneseでインストールすると、フォルダ名が一部日本語になり、大変不便 (あとで直すこともできるが)
- インストール完了後に日本語に変更するのがベスト
- 途中の「Install third-party software for graphics and Wi-Fi hardware and additional media formats」はチェックせずに進める
- グラフィックドライバーに関係しそうな部分はなるべく触らないようにするのが良い
- 実際に関係しているかは検証していないが
- 今回に限らず、インストール時はJapaneseではなくEnglishを選択して進めることをおすすめする
- 完了したら再起動し、GRUB画面でUbuntuを選択して起動する
これでインストールは完了。
しかし、NVIDIAのGPUを搭載しているラップトップではこの状態では色々と不具合が発生する。
このあと、その部分を修正していく。
GPUドライバーの更新
前述した通り、この状態では色々と不具合があることがわかっている。
私が確認できた不具合は以下のもの。
- ログアウト、再起動、シャットダウンしようとするとフリーズする
- プチフリーズみたいなものがちょくちょく発生し、カーソルの動きが止まる
特に正常にシャットダウンできないことは致命的な不具合と言えるだろう。
これらの問題はUbuntuがデフォルトで使用するグラフィックドライバーに付随する問題の模様。
-
grubのパラメーターを変更し、nouveauドライバーを停止する
/etc/default/grub
を開き、linux
で始まる行のquiet splash
をnouveau.runpm=0
に変更する- 以下のコマンドを実行し、変更を適用する
$ sudo update-grub
-
NVIDIAドライバーのインストール
- 以下のコマンドを実行し、GPUを正しく認識しているか確認
$ sudo ubuntu-drivers devices
- 正しく認識していることが確認できたら、以下のコマンドを実行
$ sudo ubuntu-drivers autoinstall
- 「Configure Secure Boot」画面でパスワードを設定する
- 一度再起動する
-
Secure Bootのパスワードを入力
- OSが起動する前に表示する画面で「Enroll MOK」を選択する
- 先ほど設定したパスワードを入力する
-
NVIDIAドライバーのインストール確認
- ログイン後、以下のコマンドを実行
$ nvidia-smi
-
GPUの情報が正しく表示されていればOK
- うまく表示されない場合は再度以下のコマンドを実行
$ sudo ubuntu-drivers autoinstall
-
再起動やシャットダウンを行い、問題なく動作することを確認する
私がうまくいった手順は以上のものだった。
ちなみに以下のサイトを参考にした。
GPUの切り替え
補足だが、NVIDIAのGPUは消費電力が大きいため、使わないのであればIntelの内蔵GPUで動かしたほうがバッテリー持ちは良いとのこと。
- GPU切り替えのコマンド
# 現在のGPUの確認
$ sudo prime-select query
# Intelの内蔵GPUに切り替え
$ sudo prime-select intel
# NVIDIAのGPUに切り替え
$ sudo prime-select nvidia
コマンド実行後に一度ログアウトして、再ログインする必要がある。
また、Bumblebeeの設定を行うと、GPU負荷が高い場合に自動でNVIDIA GPUに切り替えるということもできるらしい。
私は自動切り替えは特に必要ないので設定していないが、設定したい場合は以下のサイトが参考になるかと…
また、Ubuntuの初期設定としては以下のサイトを参考にするのが良い。
初めは日本語入力もできないので、そのあたりも設定する必要がある。
まとめ
Windows10 + Ubuntu 18.04LTS + NVIDIA GPUのラップトップの環境構築はどうやら一筋縄ではいかない模様。
私も様々なサイトで情報を調べ、試行錯誤しながらたどり着いた。
同じような環境構築を目指している方に少しでも役立てれば、と思い書き残したが、この手順自体は一度しか実行していないため、冗長な手順があったり、再現には更に条件があったりということも考えられる。
うまくいかない部分などがあれば、連絡いただきたい。