OpenSUSE Leap 15.3・Windows10のデュアルブートワークステーションをセットアップしてみた


1. ええ?なにこのポスト?

個人用のためwindows10・OpenSUSEのデュアルブートをセットアップしました。勉強してきたもの・落とし穴を整理した。お役に立てるとうれしい (*゚▽゚)ノ。

LinuxのDistroを選んだとき次の点を優先した:

  • OSの安定さ
  • エンタープライズバージョンのLinuxに似ていること
  • PCに入っているNvidia RTX 2060 SuperでDeep Learningのモデルを訓練できること。

2. 始める前に知っておくとよかった

  • OSインストールの基礎
  • ハードディスクパテーションの理解
  • 基礎的なターミナルコマンド

3. リソース

4. じゃ、始めよう! OSを選ぶ

まずはOpenSUSEを選んだ理由を教えたいと思います。

データサイエンスのプロジェクトを開発したいので、CUDAにサポートされているLinuxのDistroを選ぶ必要があります。

すぐに「ダメだ」と思ったのは:

  • Centos 2021/2022年からサポートが終わりそう
  • WSL-Ubuntu もともとLinuxじゃない (でも最近ずいぶん改善されたので気をつけよう)
  • Debian Ubuntuのおじいさん。安定している点はいいだけどパケージのアップデートも遅いし、設定も(普通のLinuxより更に)複雑な感じ、サーバーとしてすごく人気があるらしいですけど、ワークステーションとのOSとして疑問。
  • RHEL、SLES エンタープライズ向けはいいけど、完全にサーバーとしてデザインされたものを個人用として使うのは大変。

また、デスクトップのインタフェースについて、Material Designが好きです。KDE-plasmaが絶対に使いたいです。残っているDistroの中、KDEが簡単に使えるのは:

  • OpenSUSE
  • Kubuntu (Ubuntu)

結局OpenSUSEを選んだ。理由は:

  • エンタープライズLinuxのマーケットシェアが一番大きなのはRPM系のRed Hat Enterprise Linux (RHEL)とSUSE Linux Enterprise Server (SLES)。 RHEL・SLESに一番似ているのは、同じ会社がリリースした個人用向けのFedora(RHEL)とOpenSUSE(SLES)。
  • Ubuntuが個人向けのOSとして、OSのアップデートがためずにだんだん出てくる。そのため、安定さはRPM系のDistroより悪い。

OpenSUSEもTumbleweed(ローリングアップデート)とLeap(定期的なアップデート)という二つのバージョンがある。OSの安定さを考えてLeapを選んだ。

5. OpenSUSEをインストール

事前にファームウェアのタイプを確認しておこう

OpenSUSEをインストールする前に、まずはファームウェアのタイプを確認しておこう。

Windowsの中、 win + rmsinfo32 を実行し、システム一覧でBIOS Modeを確認する(最近のシステムは基本的にUEFiのはず)。

Processor	AMD Ryzen 5 3600 6-Core Processor, 3600 Mhz, 6 Core(s), 12 Logical Processor(s)	
BIOS Version/Date	American Megatrends Inc. 3.50, 11/7/2019	
SMBIOS Version	2.8	
Embedded Controller Version	255.255	
BIOS Mode	UEFI  **<ーーーーーーー  これを確認**
BaseBoard Manufacturer	Micro-Star International Co., Ltd	
BaseBoard Product	B450 TOMAHAWK MAX (MS-7C02)	
BaseBoard Version	1.0	

Windowsが入っているディスクにOpenSUSEを入れたい

win + rdiskmgmt.msc を実行する。

ハードディスクに40GBのフリースペースがあることを確認する。

(個人的に機械学習のプロジェクトの開発をしたいのでライブラリーのため200GBを用意しました。)

パテーションのサイズと番号も覚えておこう! OpenSUSEをインストールするとき、サイズ・順番でどちらがWindowsのパテーションがわかるから。

UEFIの準備

インストールする前に、UEFIのオプションを調整しましょう:

  • RAIDを無効にする
  • Fastbootを無効にする
  • AHCIを許可する

以上の点は古い技術にかかわるので、最近のパソコンでオプションえないかもしれない。ただし、以下のオプションに注意する

  • Secure Bootを無効にする
  • CSMブートを無効にする
  • Fastbootを無効にする
  • (Intel CPUの方のみ Optane MemoryとRapid Storage Technologyを無効にする)
  • UEFI USBをブート順番の一番目にする

まずはOpenSUSEのイメージをダウンロードする。

次に、Balena Etcher のようソフトでBootable USBを作って、USBドライブでブートする。

インストール

OSインストール自身はそれほど難しくない。

一番注意してもらいたいのは ハードディスクのパテーション。(新しいハードディスクを買った方は無視してもよい)

デュアルブートの場合、Guided Setupを使う必要がある

Guide Setupの際に注意すべき点:

  • LVMを基本的に使う必要がない
  • Windowsのパテーションを変えない・削除しない
  • ハードディスクの余裕があったら、SWAPをRAMと同じサイズにする
  • ルーツパテーション/が残っているフリースペースを使う。
  • WindowsのEFIパテーション(普通に一番目のパテーション)が /boot/efiにマウントされている

また、デスクトップの選択はKDE Plasmaにしよう。

これでタイムゾーン・ユーザーなどを設定したら完了。

6. nvidiaドライバーのインストール

nvidiaさんのドライバーをセットアップするのは、一番難しい。

なぜなら、簡単に言うとnvidiaのclosed sourcedソフトがLinuxとの相性が悪い。Linus Torvaldsがnvidiaに対するコメント(笑)

私もnvidiaドライバーのため1ヶ月にわたって様々なDistroを試してみた。その理由は、2021年の五月からの460.73以降のstable branchドライバーにバッグが入ってしまったから。さらに、stable branchとしてリリースされたので、ほとんどのdistroがこれを自動的インストールしてしまう。

このような問題の対応はやはりフォーラムの他にはない。次回は諦めずにフォーラムを探しましょう。

現時点の対策として、460.73またより古いnvidiaドライバーをインストールしましょう

パケージマネージャーでインストールするのは避けましょう(バグが入っているバージョンがインストールされてしまうから)マニュアルでインストールする 必要があります。

大体次のステップ(すべてのコマンドはrootユーザーとして実行)になります:

  1. snapper createでシステムイメージを作る。
  2. zypper in -t pattern devel_C_C++ devel_kernelでドライバーをビルドする必要がライブラリーをインストール。
  3. zypper rm drm-kmp-defaultで矛盾があるパケージを削除。
  4. hwinfo --gfxcard | grep Model と hwinfo --archでハードウエアを確認する。
  5. nvidiaドライバーダウンロードする。ドライバーがセーブされている場所を覚えておく。
  6. 再起動して、そしてGRUB2(OSを選択する画面)で「e」を押してopenSUSEのカーネルをパラメータを渡す。 splash = ...nomodeset3をつける。例:splash = silent quietsplash = silent quiet nomodeset 3になる。
  7. ctrl + xでブートしたら、ターミナルしかないブートに入る。
  8. sh /home/<username>/Downloads/<NVIDIA*.run>でドライバーをインストールする。
  9. mkinitrdでブートするときのinitial ramdiskをアップデートする。
  10. shutdown -r now 再起動。

再起動して普通にブートしたらよい。インストールを確認するため:

  • nvidia-smi でドライバーとCUDAのバージョンを確認できます。nvidia-smiでCUDAのバージョンが表示されていてもCUDAがインストールされているわけではありません!

CUDAをインストールする

nvidia-smiで右上でCUDAのバージョンが表示されます。CUDA Toolkitをダウンロードします

RPMパケージなので簡単に実行できます。

また、nvidiaドライバーはすでにインストールしましたので、スキップしてもよい

インストール後、次のお知らせを示します。

指示通り、環境変数を変えなければなりません。

そこで、~/.bash_profileを開いて、次を入力する。


export PATH="$PATH:/usr/local/cuda-11.2/bin"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-11.2/lib64"

7. 最後に

今回はOpenSUSE15.3 + nvidiaドライバー460.73.01 + CUDA Toolkit 12.1のインストールは完了。

次のポストでワークステーションが使えるようにソフト・ハードウエアのセットアップについて紹介したと思います。

インストール後、Linuxカーネルのアップデートを気をつけましょう。セキュリティアップデートでもグラフィックスドライバーを完全に壊すリスクがあります。

ご閲覧ありがとう!(´∇`)


Author: Zhao Du
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Zhao Du !
  TOC