0
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?

古いNVMeでRaspberry Pi 5にRaspberry Pi OS Liteをインストール

Last updated at Posted at 2025-10-28

はじめに

この記事では、Pi 5のNVMeを設定し、Raspberry Pi OS Liteをインストールし、SSHでPiに接続できるようにする方法と、固定IPの設定方法について説明します。

購入品

使用機材:

  • Raspberry Pi 5(8Go)
  • NVMe Micron 2200 (1To)
  • Raspberry Pi用電源
  • パソコン
  • Raspberry Pi 5用ジュアールNVMeラフト、PCIe Gen 2.0 to M.2 HAT

インストール

まず、NVMeにインストールしたいOSをフラッシュする必要です。パソコンの中に別のNVMeがあります。
グラフィックインターフェースなしのため、デスクトップと推奨ソフトUbuntu Server 24.04 LTSを決めました。

公式サイトからのRaspberry Pi Imagerをダウンロードできます:

⚠️⚠️⚠️ 書き込みを行う前に、NVMeのすべてのデータを転送を大切です。書き込み時にすべてのデータが消去されます!

NVMeにパーティションを作成できるように、まずSDカードにもOSを書き込みます。SDカードから起動して、NVMeのパーティション設定を行うためです。

NVMeを全データを除去する

旧NVMeから新NVMeへパーソナルデータを移行する上で、旧NVMeを残りシステムデータを除去します。

Powershellターミナルにアドミニストレーターで:

diskpart
list disk
select disk X   # クリーンさせたいディスクの番号に「X」を変える
detail disk

ディスクリストを表示、クリーンさせたいディスクを選択します。
Read-only: Yesを見つけると、パーティションを除去不可能です。

それで、次のコマンドを記入します:

attributes disk clear readonly
clean
convert gpt
exit

attributes disk clear readonly → 読み取り専用属性を解除する

clean → NVMeに全データとパーティションを削除する(⚠️完全に)

convert gpt → ラズベリーパイOS用のGPTパーティションのラベルを作成する

Win + Rを押して、diskmgmt.mscに書き込みます。

スクリーンショット 2025-10-03 193056.png

ラズベリーパイOSLite用のNVMeを準備する

これから、NVMeの未割り当て領域にOSを書き込みます。

Raspberry Pi Imagerを起動します。

Choose DeviceRaspberry Pi 5
Choose OSRaspberry Pi OS Lite (64-bit)
Choose Storage → NVMe Micron 2200 (1To)

フラッシュをする前に、OS設定を編集します。

設定の以下のように変更します:

image.png

ディフォルトで、ユーザー名はpiなので、変更することにしました。

SSHキー

コンピューターのターミナル通じて、Raspberry Piに接続するように、SSH (Secure SHellの略称)で、公開鍵認証を使用します。パスワードを記入せずに、Raspberry Piに接続することができます。RSAやED25519キーはブルートフォース攻撃に強く、高いセキュリティを提供します。

それため、コンソールコマンドでSSHキーを生成します:

ssh-keygen -t ed25519

もう存在しない場合は、新しいフォルダーとファイルを作成します。パスフレーズを2回入力すると、秘密鍵と公開鍵の2つのファイルが生成されます:

  • 秘密鍵 (ie. ~/.ssh/id_ed25519) -> コンピューターに残らなければ
  • 公開鍵 (ie. ~/.ssh/id_ed25519.pub) -> Notepadで入って、authorized-keyに内容を写す (または、~/.ssh/authorized_keysのフォルダの中)

例え :

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICv5d7Q8gjI9wO4yTfXzK7EjvH+1jD0... <username>@<computername>

image.png

終わると、SAVEして、Raspberry Pi ImagerがNVMeに書き込んで初めて、bootfs(D:)としてFAT32部分が現れます。
この部分が次の部分の3.26GbのOSのブートに対応しています。

しかし、SSHとWifi設定がフラッシュの上で再現されないかもしれません。

SSHを有効する

bootfsの元に, ssh 「拡張子いらず」という空のファイルを作成する。

右クリック → 新規作成テキスト ドキュメントssh という名前を変更する「.txtを除去」。

それとも、Wifi設定のためwpa_supplicant.confを作成する :

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
    
network={
    ssid="<SSID>"
    psk="<password>"
    key_mgmt=WPA-PSK
}

Wifiルーターに見ると、<SSID> et <password> を変更する。
フラッシュされたNVMeにその二つファイルを保存する。

{Pi + NVMe}の組み込み

ジュアールNVMeラフトを通じて、NVMeをPiに接続します。このジュアールラフトでIAプロジェクトやリアルタイムでカメラでの画像処理やライトMLが実装されように他のNVMeかHailo-8Lの部品が加えることができるのです。

IMG_20251001_185343844_HDR.jpg

IMG_20251001_185929935.jpg

IMG_20251001_185942341_HDR.jpg

ネットワークに接続したのを確認するように、ターミナルにこのコマンドを書き込んでRaspberryPiをピングすることをええきます:

ping <hostname>.local

ピング統計情報と一連のデータ応答を受け取るはずです。

固定IPを設定

固定IPをセットするように、"Set a static IP address with nmtui on Raspberry Pi OS 12"のJeff Guerlingからの指示に従います:
https://www.jeffgeerling.com/blog/2024/set-static-ip-address-nmtui-on-raspberry-pi-os-12-bookworm

全てのインターフェースの情報をもらえます:

nmcli device status

image.png

:point_right: wlan0(Wifi)に固定IPをセットするように、Wifiの現在のIPをチェックしなければ:

ip addr show wlan0

イーサネットでPiが接続されたら、eth0にセットする。

このような結果を得る:

3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
   link/ether 2c:cf:67:43:a0:2f brd ff:ff:ff:ff:ff:ff
   inet 192.168.1.37/24 brd 192.168.1.255 scope global dynamic wlan0
   ...

必要な情報は以下です:

inet 192.168.1.37/24 

→ 現在 IP アドレス : 192.168.1.37
→ マスク : /24

ネットワークの範囲を示す → 192.168.1.x

:point_right: では、ルーツをチェックする :

ip route

このような結果を得る:

default via 192.168.1.1 dev wlan0
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.37

必要な情報は以下です:

default via 192.168.1.1

ルーターのゲートウェイです。

:point_right: 最後に、DNSサーバーをチェックします:

cat /etc/resolv.conf

このような結果を得る:

# Generated by NetworkManager
nameserver 192.168.1.1
nameserver 8.8.8.8

必要なのは行のnameserverです。DNSサーバーです。
ルーター(192.168.1.1)とたまにGoogle DNS(8.8.8.8, 8.8.4.4)かCloudflare (1.1.1.1)を結構対応することです。

:point_right: つまりに:

  • Address : ip addr showの同じ範囲に空IPを決められます。例えば, 192.168.1.37/24で、192.168.1.50/24を決められる

  • Gateway : 192.168.1.1(default via ...)

  • DNS : 192.168.1.1(nameserver)

今から、PiのIPv4を設定するようにできます:

sudo nmtui edit "preconfigured"

ManualIPv4 Configuration部分を設定し、AddressGatewayDNSに以上の情報を入り込んでいます。次、OKを押す。

最後に、ネットワークマネージャーを起動します:

sudo systemctl restart NetworkManager

すべてが適用されていることを確認するために、次のコマンドを入力する:

nmcli device show wlan0

ここで確認できます:

IP4.ADDRESS[1]:                         192.168.0.50/24
IP4.GATEWAY:                            192.168.1.1

次、Piを起動する:

sudo reboot

Piの新しい固定IPをチェックする:

ifconfig

いま、システムをアップデートする:

sudo apt update && sudo apt upgrade -y

コンピューターにSSHで接続する:

ssh -i C:\Users\<username>\.ssh\id_ed25519 <hostname>@<IP>

<username><hostname><IP>を変更します。

まず、SDカードにブートします。目標は、SDカードに依存せず、NVMeで直接起動することです。

パーティションを識別する:

sudo blkid

image.png

NVMeのUUID(nvme0n1p1とnvme0n1p2)をメモします。
Piの起動するように、Piのポートからの読み取り順を設定します。

EEPROMの設定をチェックする:

sudo rpi-eeprom-config

image.png

EEPROMの設定を編集します:

sudo -E rpi-eeprom-config --edit

BOOT_ORDER行を変更する :

BOOT_ORDER=0xf614

0xf = ループ
0x6 = NVMe
0x1 = SD
0x4 = USB
➡️ 0xf614 = とりあえぜUSB、次SD、最後NVMe

ポートの読み取り順は右から左に行います。

このサイトから、Raspberry Pi用ブート順番の設定を確認することができます:
https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#BOOT_ORDER

Ctrl + O, Enter puis Ctrl + X

再起動する :

sudo reboot

Piに再接続し、ブートローダーを更新して、設定が反映されていることを確認します。

sudo rpi-eeprom-update
sudo rpi-eeprom-config

Piをシャットダウンする :

sudo poweroff

SDカードを取り外し、NVMeはそのままにしておく。
今から、Piを起動すると、ブートはNVMeから行います。

SSHで接続の問題

Piに接続するとき、このようなメッセージが表示される場合あります:

image.png

known_hostsに内の古いキーをクリーンアップする :

ssh-keygen -R <IP>

PiにSSHで説明することができます:

ssh -i C:\Users\<username>\.ssh\id_ed25519 <hostname>@<IP>

対応する値によって、username, hostname et IPを変更します。

パーティションリストをチェックするため、lsblkコマンドを実行しています。

image.png

Piが正常にNVMeにブートされたということです。

OSとデータを分離

OSがクラッシュした場合に備えて、データを守るために、OSとデータを分けます。
それのため、定期的にバックアップを取られるデータ専用のパーティションを作成します。

とりあえず、そのままNVMeをしておき、SDカードからPiをブートします。

アップデート :

sudo apt update && sudo apt upgrade -y

SDカードにPiが起動しましたので、nvme0n1p2の部分は未割り当て領域になりました。では、nvme0n1p2のパーティションがOSDATA部分に分けることができます。

Raspberry Pi OS Liteを使用しています。つまり、GUI(グラフィックユーザーインターフェース)はありません。では、パーティションを分けて行うように、gpartedじゃなくてpartedを使用します:

sudo parted /dev/nvme0n1

現在調子をチェックする:

print

image.png

ブート領域がある1番のパーティションと、未割り当て領域がある2番のパーティションを表示します。

32GBに2番のパーティションをリサイズします:

resizepart 2 32 GB

空き領域を使って新しいパーティションを作成する:

mkpart primary ext4 32GB 100%

partedを終了します:

quit

いま、新しいパーティションをext4にフォーマットする:

sudo mkfs.ext4 /dev/nvme0n1p3 -L data

マウントします:

sudo mkdir /mnt/data
sudo mount /dev/nvme0n1p3 /mnt/data

毎回の起動時にマウントするため、パーティションのUUIDを確認します:

lsblk -f

image.png

/etc/fstabの中に追加します:

sudo nano /etc/fstab

//boot/firmwareの行が表示されます。/mnt/dataのパーティションも起動する時にマウントされなければなりません。次の行に/etc/fstabを追加します:

/dev/nvme0n1p3   /mnt/data   ext4   defaults,noatime   0   2

/dev/nvme0n1p3 → パーティションのパス
/mnt/data → パーティションがマウントされてほしいフォルダー
(必要であればsudo mkdir -p /mnt/dataでフォルダーを作成できる)

ext4 → (Fourth Extended Filesystem):OSがNVMe上にファイルを保存・整理・アクセスできるようにするファイルシステムです。

defaults → ディフォルトオプション(NVMe への書き込みを少しでも減らすために、noatimeオプションを指定することができます)

0 2 → dumpfsckの設定(データパーティションのため)

/etc/fstabの中に追加する:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx   /mnt/data   ext4   defaults   0   2

ディバイスの名前が変えられるので、UUIDを使用する。

起動せずにテストする:

sudo umount /mnt/data
sudo mount -a
df -h

全てのパーティションがマウントされました。

次回予告

➡️ Ubuntu Server 24.04.3 LTSを{Pi 5+NVMe}に起動と開発環境構築

参考文献

0
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
0
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?