Ubuntuのインストールメディアの作成とSSDへのインストール方法、その後のNVIDIAドライバの確認とMinicondaのインストールまでを紹介します。ここでは普段Windowsをメインで使用していて、Ubuntuのデスクトップ環境でも機械学習を行いたい方向けの内容になります。ちょっとしたLinux環境ならWSLで試すことともできます。
インストール方法について
WindowsとUbuntuを一つのディスクにインストールするデュアルブートは、トラブルの元(UbuntuのパーティションをフォーマットしようとしたりWindowsアップデートでGrubが壊れたり、問題が起きた時の復旧作業など)となるため行いません。Windowsとは別のディスクにインストールして、使いたいときだけブートする形を取ります。
インストールメディアの作成
Ubuntuをインストールするためのインストールメディア (USBメモリ) を作成します。
ISOイメージファイルのダウンロード
UbuntuのISOイメージファイルをダウンロードします。
![Ubuntu Desktop 日本語 Remix ダウンロード](https://pcniki.com/wp-content/uploads/2023/11/ubuntu-secure-erase-4.webp)
ミラーサイトからubuntu-ja-22.04-desktop-amd64.isoをダウンロードしてください。
Rufusのダウンロード
ISOイメージファイルの書き込みにRufusを使います。
![Rufusのダウンロード](https://pcniki.com/wp-content/uploads/2023/01/rufus-download-800x534.webp)
インストーラーまたはポータブルをダウンロードしてください。
ISOイメージファイルを書き込む
Rufusを起動してください。
![Rufus書き込み準備](https://pcniki.com/wp-content/uploads/2023/01/rufus1.webp)
デバイスに書き込むUSBメモリをセットして、選択からUbuntuのISOイメージファイルを開いてください。ほかの設定はそのままで大丈夫なのでスタートしてください。
![Rufusイメージモード選択](https://pcniki.com/wp-content/uploads/2023/01/rufus2.webp)
ISOイメージモードで書き込むでOKをクリック
![Grub ダウンロード](https://pcniki.com/wp-content/uploads/2023/12/ubuntu-secure-erase-5.webp)
ISOイメージファイルとRufusのGrub(ブートローダー)のバージョンが違う場合は、ダウンロードを促されるのではいをクリック
![Rufus準備完了](https://pcniki.com/wp-content/uploads/2023/01/rufus4.webp)
状態のプログレスバーが最後まで進んだら完成です。
Ubuntuのインストール
インストール時は注意点があります。
インストールするSSD以外を外す
Windowsの入ったディスクは外してインストールするSSDのみにしてください。誤って違うところにインストールするミスやバグによりWindowsが起動できなくなった、なんてことも起こる可能性があります(その逆もしかり、すでに存在するESPにブートローダを書き込んでしまうことがあるのかも)
UbuntuはUSB接続のSSDでもインストールとブートができます。たまにしか利用しない方は、USBスティック型のSSDにインストールして使う時だけ刺すのもおすすめです。
セキュアブートをオフにする
UbuntuはUEFIセキュアブートに対応していますが、インストールメディア起動時に環境やバグで画面が表示されなかったりフリーズしたりすることがあるのでセキュアブートをオフにしてください。インストール後にセキュアブートを有効にする場合は後述してます。
インストールメディアを起動
作成したインストールUSBをブートしてください。
![Ubuntuインストール1](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-1-800x600.webp)
Try or Install UbuntuでEnter
![Ubuntuインストール2](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-2-800x600.webp)
Ubuntuをインストールをクリック
![Ubuntuインストール3](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-3-800x600.webp)
キーボードレイアウトを選択します。USキーボートの方はEnglish(us)を選択してください。
![Ubuntuインストール4](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-4-800x600.webp)
インストールのオプションを好みで選択してください。NVIDIAドライバはここでチェックを入れずに後からバージョンを選択してインストールすることもできます(後述)
![Ubuntuインストール5](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-5-800x600.webp)
ディスクを削除してUbuntuをインストール
![Ubuntuインストール6](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-6-800x600.webp)
地域を選択します。
![Ubuntuインストール7](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-7-800x600.webp)
名前とパスワードを入力してください。
![Ubuntuインストール8](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-8-800x600.webp)
インストールが完了したら今すぐ再起動します。
![Ubuntuインストール9](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-9-800x600.webp)
インストールUSBを外してEnter
以上でUbuntuのインストールは完了になります。
ソフトウェアの更新
インストール後はソフトウェアの更新をしときましょう。
![Ubuntu ソフトウェアの更新](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-12.webp)
今すぐインストールする
NVIDIAドライバのインストール
追加のドライバー (GUI)とubuntu-drivers tool (CLI)でのインストール方法を紹介します。これらは同じロジックのようです。またセキュアブートと互換性のある署名済みのドライバをインストールしようとするため推奨される方法になります。
追加のドライバー (GUI)
![](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-10-800x478.webp)
デフォルトではNouveauというオープンソースのドライバが使用されますが追加のドライバーからNVIDIAドライバを簡単にインストールすることができます。
ubuntu-drivers tool (CLI)
利用可能なドライバを確認
sudo ubuntu-drivers list
バージョンを指定してインストール(例 nvidia-driver-525)
sudo ubuntu-drivers install nvidia:525
再起動
sudo reboot
NVIDIAドライバ確認
インストールができたら端末で以下のコマンドを実行してください。NVIDIAドライバの詳細情報を確認できれば問題ないと思います。
nvidia-smi
モニタリング(デフォルトは2秒間隔で更新)
watch nvidia-smi
![](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-11.webp)
エラーなどでドライバが機能してない場合は、以下のコマンドでNVIDIAドライバのアンインストール後に再度ドライバをインストールすることで解決するかもしれません。
sudo apt purge nvidia-*
セキュアブートを有効にする場合
セキュアブートの状態を確認
sudo mokutil --sb-state
セキュアブートを有効にしてUbuntuを起動すると署名のないカーネルモジュールはロードされません。そこでMOK (Machine Owner Key) を利用して署名を行い、そのキーをファームウェアに登録することでサードパーティ製ドライバの使用を許可します。
「/var/lib/shim-signed/mok/」にキー (MOK.der) が存在する場合はそれらを使用できます。存在しない場合は次のコマンドでMOKを生成します。
sudo update-secureboot-policy --new-key
mokutilを使用してキーを登録する
sudo mokutil --import /var/lib/shim-signed/mok/MOK.der
![MOK 登録](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-22.webp)
input passwordにワンタイムパスワードを設定します。後の登録で一回だけ使うものになります。
システムを再起動してください。
![MOK Manager1](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-16.webp)
何かキーを押す
![MOK Manager2](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-17.webp)
Enroll MOK
![MOK Manager3](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-18.webp)
Continue
![MOK Manager4](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-19.webp)
Yes
![MOK Manager5](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-20.webp)
さきほど設定したパスワードを入力(画面には何も表示されませんが入力は行われています)
![MOK Manager6](https://pcniki.com/wp-content/uploads/2024/01/ubuntu-install-21.webp)
Reboot
Minicondaのインストール
condaコマンドを使いたい方
Minicondaのインストーラをダウンロード
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
Minicondaのインストーラを実行
bash Miniconda3-latest-Linux-x86_64.sh
![Ubuntu Miniconda インストール1](https://pcniki.com/wp-content/uploads/2023/12/wsl2-miniconda-2-800x88.webp)
ENTERで続行
![Ubuntu Miniconda インストール2](https://pcniki.com/wp-content/uploads/2023/12/wsl2-miniconda-3-800x415.webp)
ライセンスについて書かれています。下キーやスペースなどで進んでください。
![Ubuntu Miniconda インストール3](https://pcniki.com/wp-content/uploads/2023/12/wsl2-miniconda-4-800x37.webp)
ライセンス条項に同意
![Ubuntu Miniconda インストール4](https://pcniki.com/wp-content/uploads/2023/12/wsl2-miniconda-5-800x119.webp)
インストール場所の確認です。ENTERで続行
![Ubuntu Miniconda インストール5](https://pcniki.com/wp-content/uploads/2023/12/wsl2-miniconda-6-800x128.webp)
Condaを初期化(環境変数の設定やシェルの設定など)するようにシェルプロファイルを更新します。yesで続行
![Ubuntu Miniconda インストール6](https://pcniki.com/wp-content/uploads/2023/12/wsl2-miniconda-7-800x69.webp)
Condaがインストールされました。変更を有効にするためにシェルを再起動するか下のコマンドでシェルプロファイル (~/.bashrc) を再読み込みさせてください。シェルが起動する際にconda環境が自動的にアクティブになるようになりました。
source ~/.bashrc
condaの基本環境が起動時にアクティブ化されないようにしたい場合
conda config --set auto_activate_base false