Arch Linux 俺のインストール手順の備忘録 (2022年)

####■　前書き
昨年の夏、GigabyteのB560 HD3 (LGA1200ソケット) というINTEL第10世代、11世代に対応するマザーボードを購入、MPUは、Core i5 10400(第10世代)を選択して(実はこの組み合わせには難点があったと今回、思い知ったのであるが。)、ケースもFractal DesignのR5 電源も10年は持ちそうな仕様のものを購入して、組み立て、スタートしたのだが、MPU内蔵グラフィックスの UHD 630 に対応するLinuxディストリビューションが昨年は限定されていて、中にはUSBで起動できないディストリビューションもありました。 Arch Linux もそうだったのですが、今年に入り、起動できるようになり、archinstall というインストールスクリプトがあったので、試しにインストールしてみたら、なかなか良いので、改めて、手動でインストールしなおし、それを備忘録として残します。
Arch Linuxの何が良いか？　自分で好みのパーツを選んで、プラモデルのように組み立てられること。それに尽きます。(archinstall のインストールの場合、homeディレクトリが別パーテーションになっちゃうんですよね。それで満足であれば、わざわざ、手動でのインストールは不要です。)

####■　起動用のisoファイルで起動したあとの処理
まず、最初に忘れずに、キーボードの設定

```
# loadkeys jp106
```
次が、インストールをする対象ドライブの特定

```
# lsblk
```
今回は、新たに購入した M.2 NVMe ドライブにインストールします。　取り付け直後にBIOSで認識されていることを確認してからになりますが、lsblk でも再確認すると nvme0n1 と認識されています。

```
# gdisk /dev/nvme0n1
```
で、対話式に設定して、ブートディレクトリ1とルートディレクトリ2を以下の設定としました。Home ディレクトリは、ルートの下に作り、別パーテーションとはしていません。16GBのメモリを実装しているので、スワップも作成しません。

```
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1050623   512.0 MiB   EF00  EFI system partition
   2         1050624       168822783   80.0 GiB    8300  Linux filesystem
```
gdisk の代わりに、parted でも、同様に行えます。(手順は割愛します。)
パーテーションをフォーマットします。

```
# mkfs.fat -F32 /dev/nvme0n1p1
# mkfs.ext4 /dev/nvme0n1p2

# timedatectl set-ntp true

# mount /dev/nvme0n1p2 /mnt
# mkdir /mnt/boot
# mount /dev/nvme0n1p1 /mnt/boot
```
ここでの注意事項は、ルートディレクトリをマウントしてからブートディレクトリを作成して、マウントすること。適当な順番でここの操作を行うと、思ったようなツリー構造にはならない。作業後、\# df コマンドで意図しているディレクトリ構造になっているか確認すること。

この次に、

```
# pacman -Sy lftp 
```
lftp をインストールしてしまい、自宅内ftpサーバーにおいてある、事前作成済み設定テキストファイルhosts, hostname, mirrorlist やドットファイルを取りに行けるようにする。get したテキストファイルは、どこかのタイミングで、/mnt/etc/(hosts, hostname)や /etc/pacman.d/(mirrorlist), /mnt/etc/pacman.d/(mirrorlist) といったところに配置する。

```
# pacstrap /mnt base base-devel linux linux-firmware intel-ucode dhcpcd
# genfstab -U /mnt >> /mnt/etc/fstab
# arch-chroot /mnt
# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc
# pacman -S nano vi
```
で、エディターをインストールの後、
/etc/locale.gen の en_US.UTF-8 と ja_JP.UTF-8 の行をコメントアウトして有効にした後

```
# locale-gen
```
でロケールを生成する。

```
echo LANG=en_US.UTF-8 > /etc/locale.conf
echo KEYMAP=jp106 > /etc/vconsole.conf 
```
hosts, hostname が、ftpサーバーから持ってきた内容になっているか確認する。

```
# systemctl enable dhcpcd
```
リブート後にネットワークに接続できるように設定しておく。今は、この設定でない方法もあるようですが昔ながらに方法を踏襲しておく。

```
# useradd -m -g users -G wheel -s /bin/bash hoge-chan (仮称ですよ)
# passwd hoge-chan
# visudo 
```
%wheel ALL=(ALL) ALL の行をコメントアウトし、有効にする。
ルートのパスワードは設定せず、特権ユーザーのみ設定する。という最近の流行に従ってみる。
その後

```
# mkinitcpio -P
```

####■　ブート設定
さて、ここから、ブートローダーのインストールになるわけだが、マザーボードが、MBRではなく、UEFIサポートなので、grub はもう使わず、新しい方法を使用してみることにした。　以下のサイトの情報を参考にさせていただきました。ここでは概略のみ。

https://slacknotebook.com/lazy-arch-linux-installation-guide-2021/

こちらも systemd-boot に関する説明サイト
https://wiki.archlinux.jp/index.php/Systemd-boot#.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB


```
# bootctl install
```
/boot/loader/loader.conf を以下の内容に編集する。

```loader.conf
    timeout 5
    editor no
    default arch.conf
```

/boot/loader/entries/arch.conf　は、以下の通り

```arch.conf
    title Arch Linux
    linux /vmlinuz-linux
    initrd /intel-ucode.img
    initrd /initramfs-linux.img
    options root="UUID=xxxxx......xxxxx" rw
```

UUIDは、長いので、以下のコマンドで、出力を arch.conf にくっつけてから、編集する。

```
# blkid /dev/nvme0n1p2 >> arch.conf
```

/boot/loader/entries/arch-fallback.conf　
も念の為、同様に作成しておく。
ここまでで一段落です。やっと再起動できるようになりました。ここで休憩するのも良いでしょう。

```
# exit
# umount -R /mnt
# reboot
```

####■　Xの設定
再起動して、立ち上がったら、hoge-chan でログインして、X の設定に入ります。

```
$ sudo pacman -Syyu 　#おまじない。 
$ sudo pacman -S plasma lxdm konsole kate dolphin gwenview
```
KDE Plasma のデスクトップです。
Plasmaデスクトップインストールの際に、どの系統のフォントを使用するか尋ねられますので、今回は迷わず、IBM-Plex font系を選択しています。今まで、noto font を使用していましたが、糸へんの「糸」の字、直線の「直」の字が、おい、これ違うだろ。という字に表示されることがありまして、以来、IBM-Plex系に切り替えました。noto fontのGoogleさん。今までお世話になりました。
KDEデスクトップは過去にもインストールした経験がありますが、なんとなくアイコンの配色が、ちぐはぐでゴチャゴチャした印象があり、メニュー階層がややこしい。とかの理由で xfce を常用していましたが、今年に入り試しにインストールしたPlasma デスクトップが美しかったので、よろめきました。という理由で、アプリもKDE系で固めています。
lxdm は、ログインの際に「ウィンドウマネージャー」や「言語」切り替えができるので愛用しています。

```
$ sudo systemctl enable lxdm 
```
により、いきなりXで起動します。　また、

```
/etc/lxdm/lxdm.conf 
```
の中に、auto-login ユーザーを設定できる箇所があります。

さらには

```
$ sudo pacman -S libreoffice libreoffice-ja
$ sudo pacman -S tk   <--- python-idle を使用するため。
$ sudo pacman -S audacity vlc <--- LPレコードのデジタル化のため、audacity を使用 
```

日本語入力は、

```
$ sudo pacman -S fcitx5-im fcitx5-mozc 
```
をインストールの後、

``` :.xprofile
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS="@im=fcitx5"
```
タスクバーにインプットメソッドの設定アイコンが表示されるので、configure からキーボードに mozcを追加する。

####■　プリンターの設定
以下のサイトの情報を参考にさせていただきました。

https://misoni.me/blog/using-printer-on-arch-linux/


たまたまCanon の TS5130 というwi-fiネットワークプリンターを使用していますが、これが、Arch Linux で使用できます。
(yayのインストールは、割愛します。)

```
$ yay -S cnijfilter2
$ yay -S print-manager cups system-config-printer
$ sudo systemctl enable cups.service
```

をインストールしました。
システムメニューの中のプリンターから、プリンター検索するとネットワークプリンターの Canon TS5130 が見つかり、印刷できるようになりました。

####■　(番外編)マザーボードとMPU、M.2 NVMe SSD 等
昨年の夏に購入したマザーボードには、M.2 SSDのスロットが2つありました。M.2 には、SATA仕様とNVMe仕様があり、後者が新しい高速メモリーになります。で、最近、NVMeメモリーの価格もこなれてきていたので、KIOXIA製 と Crucial製の2280仕様の500GBメモリを２つ買ってみました。500GBなんて、完全にオーバースペックで、256GBで十分なサイズなのですが価格がほとんど変わらないので、500GBを購入して、２つのスロットに装着してみました。KIOXIAって東芝四日市だろうし、crucialのパッケージには、cricial by micron と記載されていて、国内正規品という銀ピカシールがあります。ということは、日立、NECそして三菱電機の血を引き継いだ元エルピーダ、そう広島製になりますでしょうか。これだけで泣けちゃうんですけど。

で、悲劇が起こりました。認識されたのは、２つのスロットのうち片方だけ．．．．こんなことってあって良いのでしょうか？　でも、PC組立マニアの間では既知情報のようです。完全に勉強不足でした。下記サイトで説明がありました。繰り返します。こんなことって、あっていいの？　


https://youtu.be/I2o1TzlnT38

####■　(番外編)使用できていない M.2 NVMe を何に使いましょう。
1. 売却する。
2. 現行MPUを売却して、i5 11400(第11世代) に買い換える。はっきり言って私用途には、オーバースペック
3. M.2メモリーケースを購入して、外付けUSBメモリーとして利用する。仕様としてはスペックダウンになるけれど、使わないままお蔵入りよりはまし。
4. 外付けUSBメモリーなら、Raspberry Pi (要購入)でも使用できるだろうから、それで、NASでも作成してみる。
5. 小型ベアボーンキット(要購入)に取り付けて遊ぶ。
6. 現在所有している M1 Macbookが、256GB なので、換装してみる。(これは冒険)

良い案がありましたら、コメント欄にお願いします。

以上です。