Ubuntu 22.04 LTSを本当にデスクトップとして使う〜NVIDIA GPU設定【2022年5月版】

Ubuntu、デスクトップとしても使ってます。本当に💦

Ubuntu 22.04 LTS デスクトップ版を自宅PCクラスタで使う話を連載しています。Linux使いの方でも「でも、端末はWindowsだよね?」「IT業界でスタバでドヤるならMBP(MacBookPro)だよね?」とお考えの方は多いです。本気でLinuxを普段使い出来ると思っている日本人は、未だに意外と少ないのが実態です。

MBPドヤリングはともかくとして、Excelのフル機能が使えない等の理由でWindowsを手放せないのは事実です。しかしGoogle Chromeの肥大化進化でオフィス機能のほとんどがGoogleスプレッドシートなどのWebアプリで賄えるようになった今では、本当にWindowsでなければ困る局面は非常に少ないと感じています。

私は無職になって久しい今でも気持ちだけはWeb担の端くれなので、基礎的なリテラシー維持の為にWindowsのほかMacBookPro、Chromebook、iPhone、iPad、Androidスマホ/タブレットなど一般的に使われているOSの端末は全て個人所有しています。その上で申し上げると、「モバイル用途のPCはUbuntu Linuxでほとんど困らない」との認識です。

Windows11ではインテルCore i 第7世代以前のCPUはサポート外となりました(7820HQなど例外あり)。結果、以前の中古PCやリース落ちPCが値崩れし、とてもお買い得になっています。一昨年は5万円を滅多に切らなかったフルHD&SSDノートも今では5万円を切るものがチラホラ出てきました。端末として割り切るなら個人的なイチオシは『ELITEBOOK Folio G1』です。このようなお古のノートにUbuntuを入れて再生させるわけです。

お古の👍ノートをUbuntuで再生。SSD&フルHDなら今でも快適👍

さらにディープラーニングなどの機械学習フレームワークLinuxベースで作られたものが多く、特に「CLIに慣れた方はWindowsよりLinuxの方が便利」ということも実は多いのです。

Ubuntuでディープラーニング。鬼門はGPUドライバ

とは言え、UbuntuがWindowsに及ばない点はあります。それがドライバーのインストール。周辺機器ベンダーがWindows第一でドライバーを開発しているので、Linuxでの対応は遅れがちです。特にGPUのドライバコケると画面表示出来なくなるので、LinuxでGPUを使い倒したい人の最初の鬼門となります。

そこで今回はお手軽GPUであるNVIDIA GeForce GTX 1650を搭載したゲーミングノートPC『ASUS TUF Gaming A15 FA506IH FA506IH-R5G1650AS』(AMD Ryzen5 4600H/8GB⇒32GB・SSD 512GB⇒512GB+2TB/1,920×1,080ドット (フルHD) (144Hz)/15.6インチ/フォートレス・グレイ)にUbuntu 22.04 LTSを入れた上でGPUドライバのインストールに挑戦しました。

GeForce GTX 1650搭載のゲーミングノートPC。ゲームには物足りないがディープラーニングのサンプルコードを動かす程度なら十分なGPU性能

UbuntuがGPUの存在を認識しているかどうかを確認

$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:08.1/0000:05:00.3/usb1/1-2/1-2:1.0 ==
modalias : usb:v0BDAp8812d0000dc00dsc00dp00icFFiscFFipFFin00
vendor   : Realtek Semiconductor Corp.
model    : RTL8812AU 802.11a/b/g/n/ac 2T2R DB WLAN Adapter
driver   : rtl8812au-dkms - distro free

== /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0 ==
modalias : pci:v000010DEd00001F99sv00001043sd000018BFbc03sc00i00
vendor   : NVIDIA Corporation
model    : TU117M
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-510 - distro non-free recommended
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : nvidia-driver-510-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

上記のコマンドで表示された「vendor : NVIDIA Corporation model : TU117M」がGTX 1650です。ドライバは「driver : nvidia-driver-510 – distro non-free recommended」とオススメ表示が出ているので、これを入れてみます。

$ sudo apt install nvidia-driver-510
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
状態情報を読み取っています... 完了        
以下の追加パッケージがインストールされます:
……

インストールは10分ほどで終わるので、再起動します。

$ nvidia-smi
Thu May 12 18:47:13 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.60.02    Driver Version: 510.60.02    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   45C    P8     6W /  N/A |      8MiB /  4096MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1750      G   /usr/lib/xorg/Xorg                  4MiB |
+-----------------------------------------------------------------------------+

「Driver Version: 510.60.02 CUDA Version: 11.6」と表示されており、ディープラーニングで使うCUDAも無事入っていることが確認出来ました。

TensorflowでGPUの動作確認

とは言え、実際にGPUを使ってみないと正しく動いているのか分かりません。というわけで、機械学習系のフレームワークであるAnacondaをインストールして使ってみます。

$bash ./Anaconda3-2022.05-Linux-x86_64.sh
$conda update -n base conda
$conda update anaconda
$conda update -y --all
$conda install tensorflow-gpu==2.4.1

動作確認用のコードを実行してみます。

$ python
Python 3.9.12 (main, Apr  5 2022, 06:56:58) 
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from tensorflow.python.client import device_lib
2022-05-12 18:53:47.784386: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1
>>> device_lib.list_local_devices()
2022-05-12 18:53:51.799093: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  SSE4.1 SSE4.2 AVX AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2022-05-12 18:53:51.802081: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1
2022-05-12 18:53:51.831519: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-05-12 18:53:51.832063: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties: 
pciBusID: 0000:01:00.0 name: NVIDIA GeForce GTX 1650 computeCapability: 7.5
coreClock: 1.515GHz coreCount: 14 deviceMemorySize: 3.82GiB deviceMemoryBandwidth: 178.84GiB/s
2022-05-12 18:53:51.832111: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1
2022-05-12 18:53:51.849984: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.10
2022-05-12 18:53:51.850051: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.10
2022-05-12 18:53:51.860952: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10
2022-05-12 18:53:51.864006: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10
2022-05-12 18:53:51.882123: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10
2022-05-12 18:53:51.885419: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.10
2022-05-12 18:53:51.918256: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7
2022-05-12 18:53:51.918459: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-05-12 18:53:51.918860: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-05-12 18:53:51.919152: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0
2022-05-12 18:53:51.919358: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1
2022-05-12 18:53:52.570930: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1261] Device interconnect StreamExecutor with strength 1 edge matrix:
2022-05-12 18:53:52.570970: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1267]      0 
2022-05-12 18:53:52.570977: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1280] 0:   N 
2022-05-12 18:53:52.571411: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-05-12 18:53:52.571620: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-05-12 18:53:52.571762: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:941] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2022-05-12 18:53:52.571880: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/device:GPU:0 with 3410 MB memory) -> physical GPU (device: 0, name: NVIDIA GeForce GTX 1650, pci bus id: 0000:01:00.0, compute capability: 7.5)
2022-05-12 18:53:52.573073: I tensorflow/compiler/jit/xla_gpu_device.cc:99] Not creating XLA devices, tf_xla_enable_xla_devices not set
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14858614513891176676
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 3575906304
locality {
  bus_id: 1
  links {
  }
}
incarnation: 13770775266605951589
physical_device_desc: "device: 0, name: NVIDIA GeForce GTX 1650, pci bus id: 0000:01:00.0, compute capability: 7.5"
]

無事「pciBusID: 0000:01:00.0 name: NVIDIA GeForce GTX 1650 computeCapability: 7.5
coreClock: 1.515GHz coreCount: 14 deviceMemorySize: 3.82GiB deviceMemoryBandwidth: 178.84GiB/s」と表示されており、tensorflowからGPUが認識出来ていることが分かりました。

ついでにPytorchも

最近社名が変わったり株価がごにょごにょしたり何かとお騒がせなMeta Platforms社(旧称Facebook)のPyTorchも、ついでに入れてみます。

公式サイトに行くとコマンドを教えてくれるので、そのとおりに入力します。

さいきん流行りのWebでポチポチするとコマンドが出るやつ
$conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

condaのインストールは依存関係の処理で時間がかかりますが、10分くらいで完了すると思います。

ディープラーニング超入門的な記事は食傷気味なので、Jupyter Notebookなどを使ったディープラーニングのお試しは後日、気が向いたら挑戦しようと思います。

Ubuntu 22.04 LTSのgnome-remote-desktopが自宅PCクラスタの救世主でない理由【2022年5月版】

Ubuntu 22.04 LTSから標準でリモートデスクトップ対応。しかし……

Ubuntu Linuxは、従来Windowsと異なり標準ではリモートデスクトップ(RDP)の機能がありませんでした。とは言え、Linuxでは必要なものだけ後から入れるのが当たり前なので、必要な人は自力でxrdpなどのRDPアプリを入れて普通にWindowsや他のLinux端末からRDPしていました。

私も自宅クラスタのUbuntuには全てxrdpを入れています。自宅クラスタは省スペースの弁当箱PCを並べており、少しでもコンパクトにまとめるため普段はキーボードやマウス、モニタを外しています。必要な時だけUSB稼働のモバイルモニター(HDMI/DisplayPort両対応)やタッチパッド一体型USBキーボードを繋いで保守作業を行っています。

自宅クラスタでは必要な時だけタッチパッド一体型USBキーボードをつなぐ

リモート管理は、硬派なセキュリティ重視型エンジニア様は大抵「sshでやれ」とおっしゃいます。しかし、Linux用のサーバーソフトの多くがWebブラウザ管理でかつ初期設定ではローカルでしかアクセス出来ないこともあり、sshだけで済ませるのは面倒臭いです。ストイックな方を否定する気はありませんが、少なくとも私の自宅クラスタはRDPで管理したいです。

こんなRDP大好きユーザーの救世主になる!と思われたのがUbuntu 22.04 LTSから標準搭載された『gnome-remote-desktop』です。しかし結論から言えば、これは自宅クラスタのリモート管理には使い物にならないゴミソフトです。

ダメな理由① Windowsからつながらない

Ubuntu 22.04のインストール後、真っ先に設定画面を開きremote desktopとremote controlをONに変更しました。そしてWindowsからRDPしてみると

Windowsからgnome-remote-desktopにつながらない

なんということでしょう😱同じUbuntuのRemminaからはつながるのに……。

RDPはそもそもWindows発祥のプロトコルです。にも拘わらずWindowsから繋がらないと知った瞬間「こいつ、やる気ねえな」と悟りました。

ダメな理由② ログアウトするとつながらない

さらになんと、gnome-remote-desktopは「端末にユーザーがログインしている間しかつながらない」という超絶糞仕様になっているではありませんか。ログアウトしなくても、端末からモニターケーブルを引き抜いた瞬間に切断される仕様です。

そもそも、gnome-remote-desktopは「Windows Homeを使っているような超一般人が操作で困った時に情シスが遠隔でサポートする」ような目的で作られていたのでした。Ubuntu Desktopは確かにデスクトップOSですが、わざわざセキュリティのためにログアウト状態での接続を不可にしなくても良いではないですか。これにはさすがに開発者の明確なsshも使いこなせないのにリモート管理すんなという悪意を読み取らざるを得ません。

【結論】本当の救世主はやはりxrdpだった

途方に暮れてウェブを検索しまくったところ、素晴らしいページを発見しました。

xrdp-installer-1.4.sh

xRDP – Easy install xRDP on Ubuntu 18.04,20.04,21.10,22.04 (Script Version 1.4)

The script xrdp-installer-1.4.sh can be run against all supported Ubuntu Operating System. Version 1.4 has been updated and it will detect Ubuntu 22.04 as a supported Operating system. The script has been mainly tested against Ubuntu Gnome desktop. However, the script tries to detect the Desktop interface in use and might be able to work against some other desktop interface such as Budgie, Plasma, Linux Mint, Gnome…(Best effort !)

Griffon’s IT Library

ネ申だ……😭

何が素晴らしいかというと「Ubuntu 22.04 LTSに糞なgnome-remote-desktopが標準搭載されてもxrdpへのニーズが無くならないことを百も承知で、リリース直後に速攻で対応した」という点に尽きます。

こういう素晴らしい野良ハッカーのおかげで、ぼくらは今年も快適なUbuntuライフを手軽に堪能出来そうです。めでたしめでたし🙌

Ubuntu 22.04 LTSで自宅PCクラスタを構築する【ハードウェア&初期インストール編】

まずはバラすところから

 クラウド全盛のご時世ですが、当記事では「弁当箱PCをバラす」シーンからスタートです👍

クラウドの仮想マシンはCPUやメモリ、SSDなど多彩な構成からサクッと選べて便利です。でも、クラウドからITに入った世代はCPUやメモリ、SSDが具体的にどういうモノか知らない方も多いのではないでしょうか。どうせなら、知っておいた方がいいですよね🤗

というわけで、バラしてみます。

Lenovo ThinkCentre M75q Gen2の上フタを開いたところ

PCのフタを開けるには基本的にプラスドライバーがあれば十分ですが、ドライバーのサイズがネジと合わないと力を込めても回らずネジ山を潰してしまうという恐ろしい罠があるので、精密ドライバーセットを一式、揃えておきましょう。

Lenovo ThinkCentre M75q Gen2は、HDD無しモデルを選んでも2.5インチマウンターが付属するようです。保守部品は入手に手間がかかることも多いので、この配慮はありがたいですね。というわけで早速マウンターを外します。

Lenovo ThinkCentre M75q Gen2の2.5インチマウンターを外したところ

機械が苦手な方は既にこの写真に恐怖を覚えるかも知れませんが、周辺機器の増設はレゴブロックレベルの難易度です。2.5インチマウンタではSATAケーブルがマザーボード上のコネクタから外れることがあると思いますが、ただの嵌め込み式なので落ち着いてはめ直しましょう。大丈夫です、たぶん。

2TBの2.5インチSSDをデータドライブとして増設!

今回はLenovo ThinkCentre M75q Gen2の2.5インチマウンターに、HDD(ハードディスク)ではなく2TBの2.5インチSSDを増設します。

Lenovo ThinkCentre M75q Gen2の2.5インチ SSDを装着したところ

HDDは内部でディスクが物理的に回転しているので、一般的にSSDより故障のリスクが高いと言えます。純粋なファイル保管用で一日数回しかアクセスしないような用途なら安価なHDDは今でも選択肢となり得ますが、自宅クラスタのサーバー用途では極力SSDを選びましょう

SSDはM.2 2280というガムをひと回り大きくしたサイズの規格が主流となりつつありますが、弁当箱PCではM.2 2280のスロットがひとつしかないことが多く、2台目のデータドライブは2.5インチにするのが現実的です。2.5インチ SATAはSSDとしては無駄にデカいですが、値段的にも少しお安めなので、悪い話ではありません。

なお、2.5インチはSATA3という規格で転送速度は最大6Gbpsです。M.2はSATA3とNVMeの2つの規格がありますが、主流のNVMe最大20Gbpsと高速化しています。とは言え、NVMeでも実効速度に大きな違いはなく、発熱が激しいのが現状のようです。要は「HDDではなくSSDであることが大事で、性能は大差ない」そうです。

SSDを選ぶ際にもうひとつ重要なのは「予算が許す限り大容量のものにする」ことです。というのも、SSDなどの不揮発性メモリは書き込み回数に限界があり、残り容量が少なくなると同じ領域に繰り返し書き込むため劣化しやすいと言われているからです。そういう意味でも、2022年現在では2TBの2.5インチ SATA SSDはコスパ的に悪くない選択肢と言えます。なお、今回は『SanDisk SDSSDH3 2T00』を選びました。

メモリとM.2 NVMe SSDの交換・増設

続いて、Lenovo ThinkCentre M75q Gen2の裏蓋を開きます。

Lenovo ThinkCentre M75q Gen2の裏蓋を開く

この機種のマザーボードはスロットが両面実装になっており、メモリとM.2 SSDは裏側です。まず、裏蓋をスライドしてマザーボードを露出します。

Lenovo ThinkCentre M75q Gen2の裏蓋を開くと、メモリとM.2 SSDのスロットがある

Lenovo ThinkCentre M75q Gen2の裏蓋を開くと、メモリとM.2 SSDのスロットがあります。交換を前提に最小構成で注文したので、メモリ8GB、SSD256GBとなっています。メモリは64GB、M.2 SSDはNVMe 1TBに交換しました。

メモリは64GB、M.2 SSDはNVMe 1GBに交換する

SSDを2台構成にしているのは、システムドライブ(M.2 NVMe)とデータドライブ(2.5インチSATA)を分けるためです。あとあと設定が面倒にはなりますが、大容量データを扱うためには乗り越えたい壁です。クラスタ構成が前提であれば、1台構成でも良い気がしますが……💦

なお、今回はメモリは『Transcend JM3200HSE-32G』2枚、SSDは『Western Digital WD Blue SN570 1TB』を選びました。

周辺機器を認識したかどうかBIOSでチェック

周辺機器の増設が終わったので、ふたを閉じて弁当箱PCを起動します。OSを入れる前に、まずBIOSで周辺機器を認識したかどうかをチェックします。

USBメモリを優先起動する設定にするついでに、SSDを認識したかどうかチェック

BIOS画面の『USB HDD』がUSBメモリ、『M.2 Drive 1』がM.2 SSD(WD Blue SN570 1TB)、『SATA 1』が2.5インチ SSD(SanDisk SDSSDH3 2T00)です。どちらも正しく認識しました🙌

メモリも65536MBとなり、無事3200MHzでの動作を確認

システム概要の画面で、メモリを64GB認識して3200MHzで動いていることも確認します。これで安心🙌

SSDやメモリは未だに相性問題があり、たまにではありますが交換しても動かないことはあります。PCメーカーか周辺機器メーカーの動作確認リストに載っているのが理想ですが、コスパ的になかなかそうもいきません。先人の交換履歴をウェブ検索で確認して、動いているパーツを選ぶのが次善策です。安くて動作が安定したパーツはよく使われているので、地道に検索すれば自分の目的に合ったものが見つかると思います。

Ubuntu 22.04 LTSをUSBメモリでインストールする

手ごろなUSBメモリを購入し、Ubuntu 22.04 LTSISOイメージをダウンロードして格納します。BitTorrentでもダウンロード出来るので、TransmissionなどのBitTorrentクライアントをお使いの方にはお勧めです。

UbuntuのダウンロードはBitTorrentにも対応している

ISOイメージをUSBメモリに格納して起動ドライブにするには、専用のアプリを使います。私はWindowsも使う派なので、Rufusを愛用しています。DVDに焼いてDVDドライブから起動することも可能だとは思いますが、さすがに円盤を常用する時代ではないと思います。USBメモリにもType-C化の波が押し寄せているので、Type-AとType-Cの両方のコネクタがついたUSBメモリをお勧めします。

今回は敢えてサーバー版ではなくデスクトップ版をインストールします。エンジニア的にはセキュリティ上の理由から「最小構成が常に正義」ですが、私は基本情報技術者ではあるものの硬派な本職さんではありませんので、ふだん使いのUbuntuでそのままサーバーやクラスタを管理できる利点を優先しました。おそらく鯖缶ガチ勢の皆様はUbuntuではなくRHEL系のLinuxをお使いだと思いますので、この辺は棲み分け、という感じです🤗

毎度のことながら、初回の起動がうまくいくかドキドキします……。

USBメモリからUbuntu 22.04 LTSのインストーラを起動する

今回は無事、起動しました🙌

最近はLinuxも市民権を得てきたのでPCメーカーがLinuxを公式にサポートすることも多くなってきました。もちろん最近出たばかりのOSをサポートすることはまず無いのですが、Linuxを公式にサポートしている機種の方がドライバなどを含めて安定動作する可能性が高いとは言えると思います。私はコスパがすべてですが💰

Ubuntu 22.04 LTSのインストーラが周辺機器を認識しているかを確かめる

Ubuntu 22.04 LTSのインストーラが起動したら、設定画面で周辺機器を認識しているかチェックします。BIOSが認識しているからといってOSも正しく認識できるとは限らないからです。

Ubuntu 22.04 LTSのインストーラがメモリとSSDを認識しているかチェックする

『Memory』が64GiB、『Disk Capacity』が3.0TBと表示されています。これで、ほぼ安心です🙌

SSDの初期化とパーティションの設定

インストーラを起動し、指示に従ってポチポチ進めていきます。初心者が詰まりやすいほぼ唯一の設定項目がSSDの初期化とパーティションの設定です。ディスクが1台なら言われた通りにポチポチすれば良いのですが、今回はディスクが2台なのでM.2ドライブにOSを決め打ちで入れる必要があります。

SSDの初期化とパーティションの設定は初心者のつまづきポイント

パーティションの設定にはUNIX系のOSに特有のパスという概念を理解する必要があります。すべてのデバイスやデータは『/』というルートパスの下にツリー構造でぶら下がっています。ルートパスの『/』をOS用のドライブ(/dev/nvme0n1)にマウントすることで、M.2ドライブにOSが入ります。ファイルシステムは今回『ext4』としました。

最近のPCではこれとは別に、512MB前後の『efi』パーティションを作る必要があります(無いと怒られます💦)。SATAのデータドライブ(/dev/sda)は『/data』にマウントしました(特に命名ルールはありません)。

あとはインストーラの完了を待ち、画面の指示に従ってUSBメモリを抜いて再起動すれば無事終了です。こうやって書くとまだまだ大変ですね💦 皆さんもあきらめずにがんばってください👍