TL;DR
Ubuntuでログインループにハマってどうしようもなくなったときの対処法です。
悪い子はNVIDIAドライバです。
原因
様々な原因が考えられますが、だいたいが以下の二種類です。
- カーネルのアップデートに失敗していろいろなバージョンが混ざってしまった
- NVIDIAのドライバのバージョン不整合
順に対処法をご紹介します。
対処法
NVIDIAドライバのバージョン不整合が原因の場合
これは、GPUカードに対する適切なバージョンが何らかの原因でインストールされていないときに発生します。
1. NVIDIA公式サイトで適切な最新バージョンを調べる
まず、NVIDIAの公式サイト上で、使用しているGPUカードに対応するドライバの最新バージョンを調べます。
例:)384.98
と出ている場合は、バージョンは384
です。
2. インストールされているバージョンを調べる
GUIログイン画面上で、Ctrl + Alt + F1
を押すと、仮想コンソールに入ることができます。
仮想コンソール上でログインしたのち、以下コマンドでインストール済みのnvidiaドライバのバージョンを調べます。
dpkg -l | grep nvidia
実行すると、nvidia-xxx
といった形で表示されると思います。このxxx
のバージョン番号が、先ほど調べたバージョン番号と同じ、あるいは小さい場合は問題ありません。
3. 適切なバージョンをインストールする
仮に問題がある場合は、正しいバージョンをインストールします。
sudo apt-get update && sudo apt-get install nvidia-xxx
カーネルのアップデートに失敗した場合
カーネルのアップデートに失敗した場合、仮想コンソール上でapt-get
関連のコマンドを実行しようとすると、依存関係のエラーが発生します。
どうしようもなかったので、僕の場合は強制アップデートしなおしたら直りました。
sudo apt-get autoremove -f
sudo apt-get autoclean -f
sudo apt-get update && sudo apt-get upgrade -fy
以上です。