CentoOS8 Raspberry Pi 4用イメージをダウンロード
https://people.centos.org/pgreco/CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4/
CentOS-Userland-8-stream-aarch64-RaspberryPI-Minimal-4-sda.raw.xz
Raspberry Pi 公式サイト OS書込みツール(Imager)
https://www.raspberrypi.org/downloads/
Raspberry Pi Imager を実行環境にあわせてダウンロード&インストール
Imagerを使って、OSイメージを書込み
外部ストレージ起動に対応したファームウェアに入れ替える
https://github.com/raspberrypi/firmware/tree/master/boot
*.elf *.dat を入れ替え
Download the updated firmware files
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711_bootloader_config.md#usbmassstorageboot*.elf *.dat
from themaster
branch of the Raspberry Pi Firmware Github repo.
PARTUUIDを調べる
すでに稼働中のRaspberry Piや適当なLinux, MacOSのPCに、書き込んだ外部ストレージを接続
※Windowsではどうしようもない
$ sudo blkid /dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="xxxx-xxxx" TYPE="vfat" PARTUUID="xxxxxxxx-01" /dev/mmcblk0p2: LABEL="rootfs" UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="ext4" PARTUUID="xxxxxxxx-02" /dev/sda1: SEC_TYPE="msdos" UUID="xxxx-xxxx" TYPE="vfat" PARTUUID="xxxxxxxx-01" /dev/sda2: LABEL="_swap" UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="swap" PARTUUID="xxxxxxxx-02" /dev/sda3: LABEL="_/" UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="ext4" PARTUUID="xxxxxxxx-03" /dev/mmcblk0: PTUUID="xxxxxxxx" PTTYPE="dos"
cmdline.txtを編集
$ sudo mount /dev/sda1 /mnt/
$ sudo /mnt/cmdline.txt
console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait
↓
console=ttyAMA0,115200 console=tty1 root=PARTUUID=xxxxxxxx-03 rootfstype=ext4 elevator=deadline rootwait
$ sudo umount /mnt/
fstabを編集
$ sudo mount /dev/sda3 /mnt/
$ sudo vi /mnt/etc/fstab
UUID=xxxx-xxxx /boot vfat defaults,noatime 0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 defaults,noatime 0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx swap swap defaults,noatime 0 0
↓
PARTUUID=xxxxxxxx-01 /boot vfat defaults,noatime 0 0
PARTUUID=xxxxxxxx-02 swap swap defaults,noatime 0 0
PARTUUID=xxxxxxxx-03 / ext4 defaults,noatime 0 0
$ sudo umount /mnt/
追加設定
vi /boot/config.txt
# HDMIなしでも起動
hdmi_force_hotplug=1
# SDカードスロットを無効
dtparam=sd_poll_once=on