1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi5 に接続した Raspberry Pi SSD キット に ArchLinux を新規インストールする

Last updated at Posted at 2024-12-28

内部接続 NVMe または USB 接続 SSD 等 から立ち上げる事を想定しています。
※ インストール作業は前回の『 Raspberry Pi5 で動く ArchLinux(CUI環境)を MicroSD カードにインストールする https://qiita.com/FukudaGyuuen/items/984c3418cc530302643f 』の MicroSD カードを使用します
※『 Raspberry Pi5に SSD / NVMe を接続して新規インストールします
※ 前回の方法で Windows PC の仮想環境下、または他の Linux PC に SSD / NVMe 等を接続してインストールする場合は、 config.txt / cmdline.txt / fstab の設定をする箇所だけ追加して見て下さい。
※ ファイアウォールの設定の説明はしていません
※ 公開・秘密鍵の作り方は説明していません
※ SSH による遠隔操作をしない時は、それらは全て読み飛ばして下さい
※ 下記のサイトを参考にしています
https://archlinuxarm.org/forum/viewtopic.php?t=16659
https://qiita.com/tyokai/items/38886c6c359ab0d98552
※ 作業環境:Raspberry Pi5( SSH 接続時の説明のみ Windows )

◆ Raspberry Pi5 に ArchLinuxARM がインストールされた MicroSD カードを挿入して立ち上げ root でログインしてください

login:root
password:パスワードの入力

◆ アップデート

# pacmann -Syu

◆ インストールに必要なパッケージをインストール

# pacman -S gdisk f2fs-tools base base-devel devtools dosfstools ntfs-3g

◆ インストールメディアの名称を確認

# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk0       8:0    1 115.4G  0 disk
|-mmcblk0p1   8:1    1   767M  0 part
`-mmcblk0p2   8:2    1 114.7G  0 part
nvme0n1     259:0    0 476.9G  0 disk
├─nvme0n1p1 259:1    0   511M  0 part
└─nvme0n1p2 259:2    0 476.4G  0 part

※ 例は NVMe で、USB接続の場合は sda 等と表示されると思います(以下必要に応じて読み替えて下さい

◆ パーティション等の作成

# gdisk /dev/nvme0n1

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y

Command (? for help): n
Partition number (1-128, default 1): 1
First sector : エンターキー押す
Last sector : 512MiB
Hex code or GUID : EF00
Changed type of partition to 'EFI system partition'

Command (? for help): n
Partition number (2-128, default 2): 2
First sector : エンターキー押す
Last sector : エンターキー押す
Hex code or GUID : 8300
Changed type of partition to 'Linux filesystem'

Command (? for help): w

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/nvme0n1.
The operation has completed successfully.

◆ フォーマット・マウント

# mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 -F /dev/nvme0n1p2
# mkfs.vfat -F 32 /dev/nvme0n1p1
# mount /dev/nvme0n1p2 /mnt               
# mkdir /mnt/boot                          
# mount /dev/nvme0n1p1 /mnt/boot    

◆ 必要なパッケージのインストール

# pacstrap /mnt base base-devel linux-rpi linux-firmware raspberrypi-bootloader firmware-raspberrypi archlinuxarm-keyring f2fs-tools dosfstools openssh nano dhcpcd

◆ マウントポイントの生成

# genfstab -U /mnt >> /mnt/etc/fstab

◆ マウントポイントが生成されたか確認

# cat /mnt/etc/fstab

◆ マウントポイントの修正(必要に応じて)

$ sudo nano /mnt/usb/etc/fstab

※下記のように修正(修正されていれば不要です)
# <file system> <dir> <type> <options> <dump> <pass>
#/dev/mmcblk0p1  /boot   vfat    defaults        0       0
/dev/nvme0n1p1  /boot   vfat    defaults        0       0

※ USB 接続の SSD 等にインストール場合は『 nvme0n1p1 』を『 sda1 』等に読み替えて下さい

◆ 見掛けのルートディレクトリの変更
この作業を行わないと、MicroSD カードに変更を加える事になります

# arch-chroot /mnt

◆ 時刻の設定

# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc
# hwclock 

※正しい時刻が表示されたら成功です

◆ ロケール

# nano /etc/locale.gen
en_US.UTF-8 UTF-8 
ja_JP.UTF-8 UTF-8 

※ Ctrl+w で上記をそれぞれ検索して先頭の # を削除して保存 Ctrl+o 終了 Ctrl+x

# locale-gen

# nano /etc/locale.conf
LANG=en_US.UTF-8
#LANG=ja_JP.UTF-8

※現時点では日本語入力環境を使用しないので先頭に # を入れます

◆ キーボード

# nano /etc/vconsole.conf
KEYMAP=jp106

※上記を記述して保存終了して下さい Ctrl+x で 保存するかに y と答える

◆ ホスト名の設定

# nano /etc/hostname
HOSTNAME

※ ホスト名を記述して保存終了( HOSTNAME は例です )

# nano /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 HOSTNAME.localdomain HOSTNAME

※ 上記を記述して保存終了

◆ ネット環境の設定

● ネットワークの確認
# ip link

● DHCPクライアントの有効化
# systemctl enable dhcpcd@end0.service

※例は『 end0 』で、前述の『 ip link 』で表示されたご自身の有線 LAN に読み替えて下さい

● Systemd サービスの有効化(遠隔操作しない場合は次の root パスワードの設定に進んで下さい)
# systemctl enable systemd-networkd.service
# systemctl enable systemd-resolved.service

● SSH サービスの有効化(遠隔操作しない場合は次の root パスワードの設定に進んで下さい)
$ systemctl enable sshd.service

● SSH の設定(遠隔操作しない場合は次の root パスワードの設定に進んで下さい)
$ sudo nano /etc/ssh/sshd_config

※設定を有効化するために、下記の項目の先頭の # を外します

ポートの設定
Port 22

使用する鍵
HostKey /etc/ssh/ssh_host_ed25519_key

ログインに鍵を使用
PubkeyAuthentication yes

※一旦これで保存終了します

◆ root パスワードの設定

# passwd
New password:
Retype new password:

◆ config.txt の設定

# nano /boot/config.txt

※一番下に追記( usb 接続の場合は nvme を usb に読み替えて下さい)
[all]
dtparam=nvme

※ RTC用バッテリーを接続している場合は以下も記述して下さい
#### Enabling battery charging ####  
dtparam=rtc_bbat_vchg=3000000

◆ cmdline.txt の設定

# nano /boot/cmdline.txt

※下記のように変更します(usb 接続の場合は nvme0n1p2 を sda2 等に読み替えて下さい)
#root=/dev/mmcblk0p2 rw rootwait console=serial0,115200 console=tty1 fsck.repair=yes
root=/dev/nvme0n1p2 rw rootwait console=serial0,115200 console=tty1 fsck.repair=yes

◆ chroot を抜けて再起動

# exit
# shutdown -h now

◆ MicroSD カードを抜いて再度起動

◆ root でログイン

login:root
password:パスワードを入力

◆ アップデートの実行

# pacman -Syu

※上記のアップデートに失敗した時は下記を試してください

◆ pacman-key の初期化(アップデートに失敗した場合

# pacman-key --init
# pacman-key --populate archlinuxarm
# pacman -Syu

◆ ユーザーを追加・パスワード設定

# useradd -m -s /bin/bash USERNAME
# passwd USERNAME
New password:
Retype new password:

※ USERNAME は例です(以下同文)

◆ ユーザーに sudo 権限を与える

# EDITOR=nano visudo

※一番下に追記します
※なお、先頭に # を付けると、その行はすべてがコメント扱いになります

#### My Setings ####
USERNAME ALL=(ALL) ALL

◆ 再起動してユーザーとしてログイン

# exit

login: NSERNAME
password:パスワードの入力

◆ sudo 権限の確認

$ sudo pacman -Syu

※一番最初に色々文言が出ますが、エラーでなければパスワード入力を求めて来ます
※パスワード入力後もエラーが出なければ成功です

◆ SSH 設定の続き(遠隔操作をしない場合は、上記で作業終了です

● SSH サービスの設定ファイルに変更を加える(接続先) ArchLinux
$ sudo nano /etc/ssh/sshd_config

※以下の内容を変更・追記

root によるログインを拒否
#PermitRootLogin prohibit-password の直下に追記
PermitRootLogin no

ログインの試行回数
#MaxAuthTries 6    ->    MaxAuthTries 4

空のパスワードによるログインを拒否
PermitEmptyPasswords no

◆ SSH 接続
※既に接続元( 例は Windows )で公開・秘密鍵を作っているものとします
※インストールしたてで接続先( Raspberry Pi5 )に .ssh フォルダが無いので、下記のコマンドを Windows のターミナルから入力

PS C:\Users\username> cd .ssh
PS C:\Users\username> type id_ed25519.pub | ssh USERNAME@HOSTNAME "mkdir /home/USERNAME/.ssh; cat >> /home/USERNAME/.ssh/authorized_keys"

Are you sure you want to continue connecting (yes/no/[fingerprint])?
yes と入力してリターンキーを押します
なお、 y では通りません

※パスワードの入力を求められますが、この時点では入力するパスワードは『接続先ユーザーのパスワード』です

● Raspberry Pi5 に鍵が登録されたか確認します
$ cd .ssh
$ ls
authorized_keys

※上記が表示されたら鍵の登録は成功しています
※以後、SSH で遠隔操作する時に入力するパスワードは『鍵認証用のパスワード』になります

● 鍵以外ではログインできないようにします
※ これを設定しないと、最終的に普通のパスワードでのログインが出来てしまいます

$ sudo nano /etc/ssh/sshd_config

以下の場所の下に、追記をして通常のパスワードによる接続を拒否します
#PasswordAuthentication yes
PasswordAuthentication no

保存終了します

● sshd のサービスを再起動させます
$ systemctl restart sshd.service

これで終了です
公開・秘密鍵の作成方法( Windows )やファイアウォールの設定は、機会があれば別の項目を作る予定です(必ずやるとは言ってない)
(/・ω・)/ コロコロコロ =〇

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?