概要
Raspberry Pi 5 model B 8GM RAM を購入しました。ArchLinuxARMをインストールしようとしたのですが、2024-09-16 時点では Raspberry Pi 5 への ArchLinuxARM 公式対応版はリリースされていないようでしたので、有志の方のブログを参考にインストールを試みました。
Arch Linux ARM のブータブルメディアを作成する
Arch Linux ARM のブータブルメディア作成のため、下記を準備します。
- VirtualBox 上の Arch Linux 環境
- ブータブルメディアの作成に使用します。
- USBストレージ(16GB)
- ブータブルメディアにするデバイスです。
VirtualBox 上の Arch Linux 環境へUSBストレージを接続します。私の環境では /dev/sdb
として認識されました。
fdisk
コマンドで下記の通りにパーティションを作成します。
# fdisk /dev/sdb Command (m for help): g Created a new GPT disklabel (GUID: 74018460-45A0-404D-BDCB-235D43872A19). Command (m for help): n #EFIシステムパーティション用のパーティション1を作成 Partition number (1-128, default 1): 1 First sector (2048-31389278, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-31389278, default 31387647): +256M Command (m for help): t #パーティション1をEFIシステムパーティションへ変更 Selected partition 1 Partition type or alias (type L to list all): 1 Changed type of partition 'Linux filesystem' to 'EFI System'. Command (m for help): n #ルート(`/`)のパーティション2作成 Partition number (2-128, default 2): First sector (526336-31389278, default 526336): Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-31389278, default 31387647): Command (m for help): p #全てのパーティション情報の確認 Disk /dev/sdb: 14.97 GiB, 16071327744 bytes, 31389312 sectors Disk model: USB Flash Disk 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: gpt Disk identifier: 74018460-45A0-404D-BDCB-235D43872A19 Device Start End Sectors Size Type /dev/sdb1 2048 526335 524288 256M EFI System /dev/sdb2 526336 31387647 30861312 14.7G Linux filesystem Command (m for help): w #パーティション情報の書き込み
先ほど作成したパーティション上でファイルシステムを作成して、ArchLinuxARMのパッケージをインストールします。
wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-aarch64-latest.tar.gz mkfs.vfat -F 32 /dev/sdb1 mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 -F /dev/sdb2 mount --mkdir /dev/sdb2 /mnt/usb # sdb1ではなくsdb2です mount --mkdir /dev/sdb1 /mnt/usb/boot bsdtar -xpf ArchLinuxARM-rpi-aarch64-latest.tar.gz -C /mnt/usb rm -rf /mnt/usb/boot/* wget http://os.archlinuxarm.org/aarch64/core/linux-rpi-16k-6.6.47-3-aarch64.pkg.tar.xz mkdir linux-rpi-16k tar xf linux-rpi-16k-6.6.47-3-aarch64.pkg.tar.xz -C linux-rpi-16k cp -rf linux-rpi-16k/boot/* /mnt/usb/boot/
注意:dev/sdb2
を /mnt/usb
にマウントした後に、dev/sdb1
を mnt/usb/boot
にマウントする必要があります。マウントするデバイス名とマウント先、マウントの順番に注意してください。
ルート /
(sdb2)と/boot
(sdb1)のPARTUUIDを確認します。
# ls -l /dev/disk/by-partuuid/ total 0 lrwxrwxrwx 1 root root 10 Sep 16 20:37 8b1d5d01-24b9-4ba0-b051-351238437d65 -> ../../sdb1 lrwxrwxrwx 1 root root 10 Sep 16 20:37 8b836060-b825-49ba-b9e0-9732563c7f74 -> ../../sdb2
/mnt/usb/boot/cmdline.txt
を開いて、root=PARTUUID=<ルート(sdb2)のPARTUUID>
を設定します。
root=PARTUUID=8b836060-b825-49ba-b9e0-9732563c7f74 rw rootwait console=serial0,115200 console=tty1 fsck.repair=yes
/mnt/usb/etc/fstab
を開いて、/boot
(sdb1) のマウントを設定します。
PARTUUID=8b1d5d01-24b9-4ba0-b051-351238437d65 /boot vfat defaults 0 0
USBストレージを取り出します。
sync && umount -R /mnt/usb
Raspberry Pi 5 で Arch Linux ARM を起動する
USBストレージを Raspberry Pi 5 の任意のUSBポートへ接続して、電源を投入します。
電源不足の場合、起動直後に電力不足のエラー画面が出てブートが止まりますが、電源ボタンを押すとブートを続行できます。
パッケージを更新する
パッケージを更新する前に /etc/pacman.d/mirrorlist
を編集してミラー先を近くのリージョンへ設定することをお勧めします。
pacman-key --init pacman-key --populate archlinuxarm pacman -R linux-aarch64 uboot-raspberrypi pacman -Syu --overwrite "/boot/*" linux-rpi-16k
注意:パッケージの更新により /boot/cmdline.txt
がリセットされることがあります。パッケージの更新後は /boot/cmdline.txt
を確認するようにしましょう。
参考にしたサイト
https://kiljan.org/2023/11/24/arch-linux-arm-on-a-raspberry-pi-5-model-b
情報ありがとうございます。
一点、
“先ほど作成したパーティション上でファイルシステムを作成して、ArchLinuxARMのパッケージをインストールします。
…
11. rm -rf /mnt/usb/*
”
は、
rm -rf /mnt/usb/boot/*
ではないでしょうか。
おっしゃる通りです。typoしていましたので修正しました。
ご指摘ありがとうございます。