[Raspberry Pi4]ラズパイ 4にArch Linuxを入れてみた
はじめに
最近、5の国内販売が始まったからか、何かと話題のRaspberry Piですが、我が家にあるのは4です。
家のLinux環境を徐々にArch環境にしていこうと思っており、その一環でラズパイにもArchを入れてみることにしました。
動機と作業環境
我が家のRaspberry Pi 4は、8 GBモデルです。なので、インストールするOSは64bit版が良いです。
Archの32bit版を入れている記事はちょこちょこ見つかりましたが、64bit版は無さそうだったので、記事にしてみます。
なお、面倒臭いので、直接SSDに環境をインストールします。
bootloaderを最新化しないと、USBストレージからの起動はできなかったと思いますので、bootloaderを最新化していない方は、予め最新化してください。
作業環境
PC:EndeavourOS
ラズパイ:Raspberry Pi 4 8 GB RAMモデル
ストレージ:ESD-EMN0128GBKR
インストール作業
基本的にはArchの公式マニュアルに従えば良いです。
気をつけるところは5.でwgetしてくるイメージを間違えないことです。
私はrootとhomeを分けておきたかったので、少しアレンジして以下の手順で進めました。
1. PCでの作業
まずはPCにストレージを接続します。
microSDカードに入れる場合も同じです。
1-1. デバイスの確認
ストレージがどこで認識されているかを調べます。
私は/dev/sdaでした。
以降は、この前提で進めますので、ご自身の環境にあわせて読み換えてください。
$ lsblk
1-2. パーティションの切り分け
画面の指示に従いつつ、パーティションを設定します。
私は以下の通りにパーティションを設定しました。
rootとhomeを分けない場合は、/dev/sda3は不要です。
/dev/sda1:200 MB /boot
/dev/sda2:50 GB /root
/dev/sda3:残り /home
この作業をするとストレージの中身が消えますので、必要なデータはバックアップしておきましょう。
# fdisk /dev/sda
1-3. フォーマット
作成したパーティションをフォーマットします。
それぞれ次のようにファイルシステムでフォーマットします。
/dev/sda1:fat32
/dev/sda2:ext4
/dev/sda3:ext4
# /dev/sda1のフォーマット
# mkfs.vfat /dev/sda1
# /dev/sda2のフォーマット
# mkfs.ext4 /dev/sda2
# /dev/sda3のフォーマット
# mkfs.ext4 /dev/sda3
1-4. マウント
まずマウント先を作ります。
boot、root、homeを作ります。
あくまでも一時的なものなので、tmpディレクトリを作ってその中に作ります。
$ mkdir tmp && cd tmp
$ mkdir boot
$ mkdir root
$ mkdir home
次に作成したパーティションを対応するディレクトリにマウントしていきます。
# mount /dev/sda1 ./boot
# mount /dev/sda2 ./root
# mount /dev/sda3 ./home
1-5. イメージのダウンロードと展開
インストールイメージをダウンロードします。
公式の手順5.のURLではなく、下の方に書いてあるURLを使ってください。
$ wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz
インストールイメージを展開します。
展開先を間違えないように気をつけましょう。
# tar -vxf ArchLinuxARM-rpiaarch64-latest.tar.gz -C ./root
# sync
bootディレクトリとhomeディレクトリのデータを移動します。
bootディレクトリの移動先を間違えると地獄を見ますので気をつけて下さい。
ちなみにhomeディレクトリも間違えると割と酷い目にあいます。
# mv ./root/boot/* ./boot
# mv ./root/home/* ./home
1-6. fstabの編集
# sed -i ‘s/mmcblk0/sda1/g’ ./root/etc/fstab
# echo ‘/dev/sda3 /home defaults 0 1’ >> ./root/etc/fstab
1-7. Wi-Fiの設定ファイルを生成
SSIDとパスワードはご自身のものに置き換えてください。
# echo -e ‘country=JP\nnetwork={\n ssid=\"your-ssid\"\n key_mgmt=WPA-PSK\n proto=WPA WPA2 \n psk=\"your-pass\"\n}’ > ./root/etc/wpa_supplicant.conf
ここまででPCでの作業は終了です。
2. Raspberry Piでの作業
SSDとディスプレイ、キーボードをラズパイに接続して電源を入れます。
無事起動したら、rootユーザでログインします。
2-1. パスワードの変更
任意のパスワードを設定してください。
# passwd root
2-2. ユーザ追加
alarmユーザを使い続けてもいいですが、一応新ユーザをつくります。
hogeユーザを追加する場合です。
ご自身のユーザ名にあわせて変更してください。
# useradd -m hoge
# passwd hoge
2-3. alarmユーザの無効化
初期ユーザはパスワードが公開されているので、セキュリティ的にまずいです。
# passwd -l alarm
# usermod -s /bin/false
2-4. Wi-Fiの有効化
ネットワーク接続のデーモンを有効化しておきます。
# systemctl enable wpa_supplicant@wlan0
# systemctl enable dhcpcd@wlan0
ネットワーク設定ファイルを生成します。
# echo -e ‘[Match]\nName=wlan0\n\n[Network]\nDHCP=yes\nIPv6AcceptRA=no’ > /etc/systemd/network/wlan0.network
2-5. ホスト名変更
ホスト名を変更します。
hogeberrypuにする場合は以下の通り。
# hostnamectl hostname hogeberrypi
2-6. 再起動
# shutdown -r now
2-7. ネットワーク接続の確認
以下のコマンドでwlan0にIPアドレスが付与されているかを確認します。
# ip a
もしもIPアドレスが付与されていなければ、どこかの設定がうまくいっていないです。
以下のコマンドでエラーログが出ていないか確認してみてください。
# systemctl status dhcpcd@wlan0
# systemctl status systemd-networkd
# networkctl status wlan0
2-8. pacman用の署名更新
署名が古くなっている場合があるようです。
更新しておきます。
# pacman-key --init
# pacman-key --populate archlinuxarm
2-9. パッケージの更新
直近のパッケージアップデートをインストールします。
# pacman -Syyu
2-10. avahiのインストール
ホスト名で名前解決できるようにしておきます。
IPアドレスだとsshをするとき不便なので。
固定IPにして運用するなら必要ないです。
# pacman -S avahi
# systemctl enable avahi-daemon.service
# systemctl start avahi-daemon.service
ここまでやれば、ssh経由で接続できるようになるはずです。
あとはご自身の使いたいようにセットアップしてください。
お疲れ様でした。