前提
下記のような状態の人のための記事です。
やったこと
- UEFIセキュアブートのWindowsマシンにUbuntuをインストールした。
- UbuntuにNvidiaのドライバーをインストールした。
- nouveauをオフにした。
- セキュアブートをDisableにする警告に「はい」と答えてパスワードを入力して再起動もした。
- UEFI(旧BIOS)の「Boot」メニューの「Secure Boot」の欄がグレーアウトされていてDisableに変更できない。
できないこと
-
cat /proc/driver/nvidia/version
を実行しても、そもそも/proc/driver/nvidia/
ディレクトリが存在しない。 -
nvidia-smi
を実行してもcommand not found
となる。
注意
Ubuntu 16.04(Lubuntu)で実施しましたが、それ以外の環境でこの対処法が有効かどうかは検証していません。できるかもしれないしできないかもしれない。環境構成が違っても万策尽きた人は自己責任でやってみてください。
対処法
-
Secure Bootの設定変更メニューを表示させる設定をする
sudo mokutil --disable-validation
-
一時的なパスワードを設定する

-
再起動する
sudo reboot
-
下のような画面で任意のキーを押す

- 「Change Secure Boot State」を選択する

-
(注意!)「2. 一時的なパスワードを設定する」で設定したパスワードの**「指定された番号の位置に該当する一文字」**を入力してEnterキーを押す。
(例:一時的なパスワードを「Password1234」と設定していて、下の画像のように「8:」と指定された場合は、前から8番目の「d」と入力してEnterを押下)
この入力は数回要求されるため繰り返し入力します。
-
Yes/Noを選択する。
(この画像は既にDisableに設定したマシンで撮っているため、Enableの場合は「Disable Secure Boot」と表示されるかもしれません。画面のコメントをよく読みましょう。)

- 「Continue boot」を選択して起動する。
予めNvidiaのドライバーをインストール済みの場合は、これだけで/proc/driver/nvidia/
ディレクトリが現れてnvidia-smi
が通るはずです。
無理だったら再起動して、それでも無理だったらきっとあなたは疲れています。
以上。