Raspberry Pi に Arch Linux をインストール

RaspberryPi4 に Arch Linux をインストールして、クロスのイーサーネットケーブルで接続するまでの方法です。
>Host 192.168.0.10
>RaspberryPi 192.168.0.13

ダウンロードするファイル

>ArchLinuxARM-rpi-4-latest.tar.gz

##マイクロSD カードの作成#

パーティションの削除と作成

```text
# fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/mmcblk0: 14.84 GiB, 15931539456 bytes, 31116288 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9730496b

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1        2048   411647   409600  200M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      411648 31116287 30704640 14.6G 83 Linux
```

ファイルシステムの作成

```text
# mkfs.vfat /dev/mmcblk0p1
# mkfs.ext4 /dev/mmcblk0p2
```

マウントポイントの作成

```text
# mkdir /mnt/raspberry

# mkdir /mnt/raspberry/boot
# mkdir /mnt/raspberry/root
```

マウント

```text
# cd /mnt/raspberry

# mount /dev/mmcblk0p1 boot
# mount /dev/mmcblk0p2 root
```

ダウロードしたファイルの展開

```text
# cd /mnt/raspberry

# bsdtar -xpf /home/uchida/ArchLinuxARM-rpi-4-latest.tar.gz -C root

# sync
```

rootフォルダーから bootフォルダーへファイルを移動

```text
# mv root/boot/* boot
```

boot/config.txt の編集

```text
gpu_mem=64

hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=35
hdmi_drive=2
```

ネットワークの設定

```text:/etc/systemd/network/eth0.network
[Match]
Name=eth0

[Network]
DHCP=false
Address=192.168.0.13/24
Gateway=192.168.0.10
DNS=192.168.1.1
# DHCP=yes
# DNSSEC=no
```

アンマウント

```text
# umount /dev/mmcblk0p1
# umount /dev/mmcblk0p2
```

##MicroSD カードを、Raspberry Pi の底面に差して、電源を入れる。#

クロスケーブルで接続
>User: alarm
>Password: alarm

```text
$ ssh alarm@192.168.0.13
alarm@192.168.0.13's password: 
Welcome to Arch Linux ARM

     Website: https://archlinuxarm.org
       Forum: https://archlinuxarm.org/forum
         IRC: #archlinuxarm on irc.libera.chat
```

```text
$ uname -a
Linux alarmpi 5.10.46-1-ARCH #1 SMP Mon Jun 28 19:14:16 UTC 2021 armv7l GNU/Linux
$ cat /etc/os-release 
NAME="Arch Linux ARM"
PRETTY_NAME="Arch Linux ARM"
ID=archarm
ID_LIKE=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinuxarm.org/"
DOCUMENTATION_URL="https://archlinuxarm.org/wiki"
SUPPORT_URL="https://archlinuxarm.org/forum"
BUG_REPORT_URL="https://github.com/archlinuxarm/PKGBUILDs/issues"
LOGO=archlinux
```

su で root になれます。パスワードは root

```text
[alarm@alarmpi ~]$ su
Password: 
[root@alarmpi alarm]# 
```

##ホスト側で IP FORWARD の設定##
>ホスト経由でインターネットに接続する為に必要です。

```bash
sudo sysctl net.ipv4.ip_forward=1
```

```bash
sudo iptables -t nat -A POSTROUTING -o wlp2s0 -j MASQUERADE
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i enp3s0f2 -o wlp2s0 -j ACCEPT
```

##pacman -Syu でエラーが出た時の対策##
初回に次のようなエラーが出ます。

```text
error: key "77193F152BDBE6A6" could not be looked up remotely
error: required key missing from keyring
error: failed to commit transaction (unexpected error)
```

対策

```text
# pacman-key --populate archlinuxarm
```

こちらを参考にしました。
[Raspberry Pi 4にArch Linuxをインストール](https://tonooo71.github.io/posts/archlinux-on-raspberrypi4)