備忘録とか日常とか

機械学習を勉強中。ベース日々練習中。

空の内蔵HDDにUbuntu14.04をインストールしてマルチブート(nvidia GPU使用)

いろいろあって仮想環境ではないLinuxが必要になったので、HDDを増設して新たにubuntuをインストールすることにした。
自分みたいな情弱はデュアルブートする勇気はまだない・・・というかCドライブが128GBのSSDなのでそんなことする余裕もない。

とりあえず内蔵HDDを買ってきた。
かなり急だったので全然メーカーとか調べてなかったが、近所の某工房にはでかでかとPOPが出てたのでこれを購入。

安さにびっくり。500GBでこのお値段。しかも1TBでもそんなに値段が変わらない。
まあ今回はLinuxブート用なので1TBも使うわけないと思い、500GBにしました。
あと忘れずにSATAケーブルも買う。電源ケーブルは分岐が余ってたので買わなかった。


メインはWindows8.1を使い、別HDDにUbuntu14.04をインストールする。
普通にisoファイルをDVDに焼いてインストールできると高を括っていたが、なんかできない。

「情弱がマルチブートを試みるのは無謀だったか・・・」

と諦めかけたが、試行錯誤した結果なんとか入ったっぽいので手順をメモしておく。
どうやらnvidia製のGPUがつながってるとき特有の症状があるらしい。

参考元は以下
Carpe Diem Ubuntuでインストールディスクが起動しない場合
http://kledgeb.blogspot.jp/2014/04/ubuntu-1404-uefi-2-uefipcubuntu-1404.html
Ubuntu に最新の NVIDIA Driver をインストールする。 - ZONDEEL BLOG


環境は
Windows8.1のシステムドライブ
windows用Dドライブ
空のHDD(ubuntu14.04インストール用)
GeForce GTX970



試す前に、万が一に備えてバックアップを取る。
自分はBTOで買ったプリインストールのWindows8.1だったのでwindowsのインストールディスクとかは付属してなかった(最近のはメーカー製でもついてこないのが多い?)。とりあえずイメージバックアップと回復ドライブを作ることを推奨する。
下を参考にすればだいたいできるはず。
https://121ware.com/qasearch/1007/app/servlet/qadoc?QID=015953
Windows8.1 回復ドライブの作成と復元(リカバリ)手順 : 下手の横好き!

自分みたいな情弱はまともにバックアップとかとったこと無い。ゆえに回復がどうたら言われてもぱっとしない。
回復ドライブとイメージバックアップの違いは以下がわかりやすかったかも。
fanblogs.jp


また自分みたい(ry 、空のHDDでさえもパーティションを切るのが怖かった
失敗を恐れに恐れた
その結果「Ubuntu以外のHDDはずせばええやん!」と思い、インストールをしてみた

すると一応インストールはできた。が、他のHDDをつなぐとうんともすんとも言わなくなる。。
BIOS設定とかいじってみるけど変わらず。内部でHDDの順番とか認識してるのかもしれない
なのでHDDは全部つないだ状態でインストールを行う必要がある


Ubuntu14.04 のインストールディスクを書き込む

インストールディスクがないことには始まらないので作ることにする。
windows8には標準でDVDにisoイメージを焼く機能がついてたので、それを使うことにする。

下記のサイトからubuntu14.04のisoファイルをダウンロード
Ubuntu Desktop 日本語 Remixのダウンロード | Ubuntu Japanese Team

その後、空のDVD-Rを挿入して
isoファイルを右クリック -> 「ディスクイメージの書き込み」 を選択。
するとツールが立ち上がって書き込み先を聞かれるので、
DVDドライブを指定して「書き込み」を押す。
ディスク確認は別にしなくてよい。

「ディスクイメージの書き込み」がない場合、isoファイルが他のプログラムと関連付けされてるので直す。
isoファイルを右クリック -> プロパティ -> 全般タブ、プログラム欄の変更ボタンを押す
プログラム一覧が出るので「エクスプローラ」を選択する。これで書き込みできる。


長々と書いたがここを見たほうがわかりやすい。

ubuntuをインストールするHDDを増設

これはまあ適当に。
SATAポートとかつなぐ順番があるのかと思ってたけど、テキトーにつないでも何も起きなかったのであんまり関係ないのかもしれない。とかゆうと詳しい人に怒られるだろうから、心配な人は周囲の詳しい人(あるいはgoogle先生)の教えを請うのが良さそうです

上で述べたように、インストールの際は全てのHDDをつなぐ必要がある(はず)。
少なくとも自分の場合はうまく行かなかったので。
ubuntu以外のディストリならできるかもしれないが試したことはない。


初めてのHDD増設だったがゆえにドライブベイにHDDをセットするのにクソ時間かかったのはまた別の話
危うくインストール前に物理的に破壊するとこだった

BIOS設定してDVDからブート

作成したインストールディスクを入れ、シャットダウンして起動、BIOSを立ち上げる。
これはメーカーによって立ち上げ方が違うだろうけど、F2とDelポチポチしとけば何とかなる。
boot priorityをCD/DVDが1番になるようにし、設定保存して再起動。

すると真っ黒い画面に

Try ubuntu without installing
Install Ubuntu
...

みたいなのが出る。ここでそのままInstall Ubuntuを選びたいところだがそうはしない
nvidia製のGPUを使ってる場合はUbuntuが起動しないと思われる
(確定的ではない、つまりよくわからん)

そこでカーソルを「Install Ubuntu」に合わせ、キーボードで'e'を入力
ブートパラメータがずらっと表示される。
その中の「quiet splash」を「nomodeset」に書き換える。できたらF10で起動。


すごい低解像度でubuntuの画面が起動したらめでたし。

パーティションを切る

いよいよHDDにパーティションを切っていく。
のだがスクショとか撮ってないので、下のサイトのほうがわかりやすいです。。
http://kledgeb.blogspot.jp/2014/04/ubuntu-1404-uefi-2-uefipcubuntu-1404.html

概要をざっくりまとめると

ubuntuではwindowsのように、「システムドライブだからC:」とかそういうのはない。これはおそらくポートの接続順とかになってるのではなかろうか。各HDDがどれであるかは把握しておく必要がある(まあパーティション情報見たらわかる)
パーティションは作られた順にsda1, sda2, ... となる。
ubuntuwindowsパーティションのフォーマットが違うので、ubuntu側からwindowsをいじるときは注意する。
スワップ領域とはメモリの中身を一時的にHDDに退避させる領域である。メモリが十分にあるならそこまで必要ではない。


手順は以下。

1. パーティションテーブルを作る

インストールするHDDを選択し、「新しいパーティションテーブル」のボタンを押す。
自分の場合は/dev/sdc にインストールした。
確認するダイアログが出るけど続ける。


2. EFIシステムパーティションを作る

インストールするHDD下にできた「空き領域」を選択し、左下の方にある「+」ボタンを押す。
ウインドウがでるので、利用方法を「EFIブートパーティション」にする
サイズは100MB程度あれば十分。自分は128MBとした
パーティションタイプは基本パーティション、場所は空き領域の始点とする。これは他のパーティションでも同じ。


3. ルートパーティションを作る

2.がおわると/dev/sdc1 ができ、タイプがefiとなっているはず。間に空き領域があったり数値が若干違ったりするけど失敗じゃないのでびびらない。
一番下の空き領域を選択し、同じように「+」ボタンを押す
今度は利用方法を「ext4 ジャーナリングファイルシステム」とする。
マウントポイントは「/」を入力
サイズだが、スワップ領域以外を全てルートに使う。なのでスワップに使う領域を予め決めておく。自分はスワップに4GB割り当てることにしたので、ルートパーティションのサイズは「空き領域 - 4000」MBと入力した。


4. スワップパーティションを作る

3.が終わると予め決めた分だけ空き領域が残る。それを選択して「+」ボタン。
利用方法を「スワップ領域」として、サイズは空き領域全て使う。


5. ブートローダの設定

最後に、「ブートローダをインストールするデバイス」という項目で、2.でつくったEFIシステムパーティションを選択する。自分は/dev/sdc1だった。タイプがefiになっていることを確認。



ここまでできたらインストールを押す。その後も指示に従うだけ。
お疲れ様でした!


...と言いたいところだが、このままではnvidiaGPU使ったら起動できない問題が解決していない。
次でGPUドライバをインストールする。


GPUドライバをインストール

ubuntuをインストールできたら自動的に再起動される。その時にDVDを取り出す。
再起動時にBIOSで、Boot順をUbuntuが入っているHDDが1番になるように設定する。

するとGRUBのブート画面が出る。(出ない場合はnvidiaGPU問題により起動が止まっているかも。その際は再起動してubuntu起動中にEscキーをポチポチしてGRUBを呼び出す)
こんな画面↓
f:id:may46onez:20160204194446j:plain
画像元:http://eiji-kb.hatenablog.com/entry/2015/07/29/200733


ブート画面に入れたら、Ubuntuにカーソルをあわせ、
最初にやったように'e'押して「quiet splash」->「nomodeset」としてF10で起動

CUIでいじるとこがあるので、ディレクトリネームを英語にしておく。
前回記事参照。

以下URLから、自分のGPUにあったrunファイルをダウンロードする。
http://www.nvidia.co.jp/Download/index.aspx?lang=jp
その後はここを参考にする。


ctr + alt + F1 でCUIモードにした後、以下のコマンドを入力

sudo apt-get purge nvidia*
sudo service lightdm stop
sudo service gdm stop
sudo chmod 755 ~/Downloads/NVIDIA-Linux-x86_64-340.32.run  # ここは各自ファイル名置き換え
cd Downloads
sudo ./NVIDIA-Linux-x86_64-340.32.run                      # ここも同様

ここからはここが参考になる
なにやら青い画面が出てくるので、「Accept」を選択

自分の環境ではプレインストールスクリプトがどうちゃら、みたいなのが出た
気にせず「Continue installation」を選択

次は署名がどうたら言われる
めげずに「install without signing」を押す。その後何度か確認みたいなのが出るので「OK」で。

今度はNVIDIA XドライバをXconfigurationに反映させるか尋ねてくる。
いらいらせず「Yes」を選択する。
何事もなければインストール完了する。その後sudo rebootで再起動。


これでGRUBブート画面からUbuntuを「そのまま」選択し、何も起こらなければインストール完了。
ドライバが入ったことで高解像度になってるはず。
今度こそお疲れ様でした。。。

ちなみにwindowsを起動したいときは、GRUBの画面でWindows Boot Managerを選択すればよい。

まとめ

UbuntuWindowsで別HDDによるマルチブートするなら、
HDDを全てつないだ状態でUbuntuインストールを行う。

nvidiaGPUを使う場合は少々めんどい。

パーティションは情弱でもある程度切れる。


この環境を構築するにあたって参考にさせていただいた先人達の努力に感謝。