CUDAが消えて起動しない時の復帰策

# ある日突然Ubuntuの起動が止まった（ドライバ・CUDA要因と思われる）
- ブート途中で止まる・・・どうもドライバが読めていない模様
:::note info
インフォメーション
再インストールに失敗した場合は起動しないので、リカバリモードで下ごしらえします
:::

## リカバリモードで起動する
1. PC起動時にUEFI設定でタイトル画面を出しているとやりやすい
1. すかさずESCを２，３かい連打
1. GNU GRUB画面でAdvancedオプションを選択
1. 起動しているLinuxのカーネルの(recovery mode)リカバリモード選択
1. リカバリモードでGRUBを選択

:::note info
結果１
軽度？の場合にはこちらのdpkgでパッケージ修復され起動します
:::

## リカバリモードでドライバ、CUDA周りを削除
- リカバリモードを起動するの手順でメニューを出します
- NETWORKを選択し、通信できるようにしておきます
- ROOTでログインします

:::note warn
注意
- "/usr/local/"を開き、cudaやご自身のインストールしたcudaバージョンのディレクトリがあることを確認
:::

### Nvidiaドライバ、Cuda削除

```Ubuntu:コマンド

apt purge nvidia*
apt purge cuda*

```

# nouveau ドライバでの起動
- まずできる限り素の状態で起動
- 例としてCUDA Toolkitサイトの手順でインストールをします
- ｘ８６系のUbuntuの例です

https://developer.nvidia.com/cuda-12-3-2-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=deb_local


```Ubuntu:ターミナル画面

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.3.2/local_installers/cuda-repo-ubuntu2204-12-3-local_12.3.2-545.23.08-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-3-local_12.3.2-545.23.08-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-3

```
## sudo cp /var/cuda-repo-ubuntu2204-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/ がNvidia ドライバインストール後に表示されない

- /usr/share/keyrings/ にすでに既存のものがないか確認
- 普通の状態なら上書きされると思うのですが・・・

### 締めの”sudo apt-get -y install cuda”後半でdpkg error頻発
- 535やCUDAなどのインストールできなかったパッケージ名が出てくる
- 普段ならやはり上書きするのでしょうがリポジトリなどお掃除が必要です

https://askubuntu.com/questions/1442217/cuda-dpkg-error-on-ubuntu-22-04-lts




# あれこれやりすぎてどうにもならない場合

```Ubuntu:ターミナル画面

:/usr/local$ ls
bin    etc      man　  games    sbin  include  share　　   lib      src

```
1. lspci | grep -i nvidia でnouveau以外のNvidia関連のファイルなど削除

## Nvidia、CUDA絡みのファイルを一通り削除
## グラフィック単体はOKだが、CUDA Toolkitのページの手順で失敗する
- まずはバージョンを合わせます

```Ubuntu:ターミナル画面

 sudo dpkg -i cuda-repo-ubuntu2204-12-2-local_12.2.2-535.104.05-1_amd64.deb
(Reading database ... 552062 files and directories currently installed.)
Preparing to unpack cuda-repo-ubuntu2204-12-2-local_12.2.2-535.104.05-1_amd64.deb ...
Unpacking cuda-repo-ubuntu2204-12-2-local (12.2.2-535.104.05-1) ...
Setting up cuda-repo-ubuntu2204-12-2-local (12.2.2-535.104.05-1) ...

Configuration file '/etc/apt/sources.list.d/cuda-ubuntu2204-12-2-local.list'
 ==> Deleted (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** cuda-ubuntu2204-12-2-local.list (Y/I/N/O/D/Z) [default=N] ? O

# Oはダメでした！
```
**バージョンが5XX以下同じなら問題なかったのでしょうが、思い切って上書きします**
- yで最初にインストールできたドライバをうわがきします（Toolkitのほうがちょっとバージョン低くても）

:::note info
このとき
- Nvidia ドライバはインストール成功しますが、CUDAのパッケージインストールがだめです。（dpkg error）
:::


:::note info
tips
If you tried a lot of solution from Ask Ubuntu, Stack over flow and several technical SNS, please make sure there is extra setting or not.
:::

# まとめと参考リンク
**グラフィックはOKだがCUDAのインストールに失敗する場合**
- /usr/local/にcudaディレクトリがあることを確認
- /usr/share/keyrings/　に使わないcudaやcudnnのキーが有ったら必要に応じて削除：cudaのインストールでdpkgエラーが出ている場合※
- /etc/apt/source.list.d/ に不要な設定がある場合は削除※CUDAインストール失敗時
- 削除したつもりでも最後にdpkgエラーがでる場合は上記の書き込み済みのものや未使用のリポジトリやディレクトリ、ファイルを削除
- 公式ドキュメントでカーネルバージョンが対応しているか確認


https://qiita.com/Manyan3/items/17db8045cc9381691d3a

- 前回のトラブル解決時の対応
- 今回はCUDAがダメなのですが、くらげになってからトラブル多しな印象（個人の感想）


@tf63 さんの記事：基本的にこちらで解決されることが多いと思われます。

https://qiita.com/tf63/items/0c6da72fe749319423b4

@jizo (地蔵) さんの記事：消しすぎてapt updateできない場合に有用

https://qiita.com/jizo/items/9496496a3156dd39d91a