がべーじこれくしょん

技術系とかいろいろ

Ubuntuでログインループに陥ったときの対処法

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

以上です。