Raspberry Pi 4の初期設定とUSBメモリからブートさせる

2021/11/09

Linux RaspberryPi

t f B! P L

先日購入したRaspberry Pi4の初期セットアップと、

USBメモリからブートさせる、というところまでやったので、ブログに書きまする。

前回の記事は↓から。



まずはHomebrirgeとNASとして動かすために以下の設定をやる。

  • 一般的な初期設定
  • microSDは寿命的にリスク有りなのでUSBメモリに移行
  • dockerをインストール(dockerは一旦不要)

あとRaspberry Pi OSは"Buster"且つ64bit版、GUIは使ってない。


一般的な初期設定

まずは誰もが実施する初期設定。

初期ユーザ(pi)のパスワードを変更。

"raspi-config"を使えばポチポチ設定できるんだけど、エンジニアっぽく極力コマンド端末で済ませるw

passwd

OSアップデート。

sudo apt update
sudo apt -y upgrade
sudo apt -y autoremove

時刻同期設定。

echo "NTP=ntp.nict.jp" | sudo tee -a /etc/systemd/timesyncd.conf

SSH公開鍵をGitHubから登録。

mkdir ~/.ssh
curl -s https://github.com/(GitHub名).keys | tee -a ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

パスワードログインとrootユーザーログインを不可にする。

sudo tee -a /etc/ssh/sshd_config << EOM > /dev/null
PasswordAuthentication no
PermitRootLogin no
Port 22
EOM

ホスト名変更。

俺は"raspberrypi"⇒"raspberrypi4"に変えた。

sudo hostnamectl set-hostname raspberrypi4

タイムゾーンを日本(=東京)に変更。

sudo timedatectl set-timezone Asia/Tokyo

言語に日本語を追加。

sudo dpkg-reconfigure locales

上記コマンドを実行すると言語を選択する画面が出るので、

"ja_JP.UTF-8"を選択する。


次に表示する言語を選択する画面。これも日本語に変える。

ただ、英語のままのほうが良いという話もあるのでお好みで。


ネットワークは有線LANを使っているんだけど、

ログインするたびに以下の警告が表示される。

実害は無いんだけど、気になるのでWiFiの使用する国を日本に変える。

Wi-Fi is currently blocked by rfkill.
Use raspi-config to set the country before use.

sudo raspi-config nonint do_wifi_country JP

以上で初期設定終わり。再起動する。

sudo reboot

microSD→USBメモリに変更

microSDをディスク代わりに使っていると、書き込み寿命が来てサーバシャットダウンと言ったリスクが考えられるので

手持ちのUSBメモリが余っていたのでそちらに切り替え。

あと、USB3.0のほうがスピードが速いので。

SSDにすりゃもっと速いんだろうけど、SATA→USB変換ケーブル持ってないし。


USBメモリは↓のサンディスク製の64GB。

これの前モデルを3年くらい前に買ったやつ。



実物。



Raspberry Pi OSのGUI版であればSDカードの中身をコピーするツールがあるんだけど、

GUI版じゃないので、"rpi-clone"というツールをインストールする。

ツールのダウンロードにgitを使うので、

ついでにgitもインストールしておく。


sudo apt install -y git

rpi-cloneをダウンロード。

git clone https://github.com/billw2/rpi-clone.git

DLしたプログラムをコピーして、後片付け。

sudo cp rpi-clone/rpi-clone* /usr/local/sbin
rm -rf rpi-clone/

USBメモリをポートに挿して、対象となるデバイスを確認する。

以下だと"sda"がUSBメモリということになる。

lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    1  57.3G  0 disk
└─sda1        8:1    1  57.3G  0 part
mmcblk0     179:0    0 116.5G  0 disk
├─mmcblk0p1 179:1    0   256M  0 part /boot
└─mmcblk0p2 179:2    0 116.2G  0 part /

以下のコマンドでmicroSDカードの中身をUSBメモリへコピーする。

途中で確認が入るで"yes"と入力する。

sudo rpi-clone sda

Booted disk: mmcblk0 125.1GB               Destination disk: sda 61.5GB
---------------------------------------------------------------------------
Part      Size    FS     Label           Part   Size    FS  Label
1 /boot   256.0M  fat32  --              1       57.3G  --  --
2 root    116.2G  ext4   rootfs
---------------------------------------------------------------------------
== Initialize: IMAGE partition table - partition number mismatch: 2 -> 1 ==
1 /boot               (30.5M used)   : MKFS  SYNC to sda1
2 root                (1.2G used)    : RESIZE  MKFS  SYNC to sda2
---------------------------------------------------------------------------
Run setup script       : no.
Verbose mode           : no.
-----------------------:
** WARNING **          : All destination disk sda data will be overwritten!
-----------------------:

Initialize and clone to the destination disk sda?  (yes/no): yes
Optional destination ext type file system label (16 chars max):

Initializing
  Imaging past partition 1 start.
  => dd if=/dev/mmcblk0 of=/dev/sda bs=1M count=8 ...
  Resizing destination disk last partition ...
    Resize success.
  Changing destination Disk ID ...
  => mkfs -t vfat -F 32  /dev/sda1 ...
  => mkfs -t ext4  /dev/sda2 ...

Syncing file systems (can take a long time)
Syncing mounted partitions:
  Mounting /dev/sda2 on /mnt/clone
  => rsync // /mnt/clone with-root-excludes ...
  Mounting /dev/sda1 on /mnt/clone/boot
  => rsync /boot/ /mnt/clone/boot  ...

Editing /mnt/clone/boot/cmdline.txt PARTUUID to use 7798598e
Editing /mnt/clone/etc/fstab PARTUUID to use 7798598e
===============================
Done with clone to /dev/sda
   Start - 10:27:39    End - 10:29:03    Elapsed Time - 1:24

Cloned partitions are mounted on /mnt/clone for inspection or customizing.

Hit Enter when ready to unmount the /dev/sda partitions ...
  unmounting /mnt/clone/boot
  unmounting /mnt/clone
===============================

以上でUSBメモリへコピーが出来た。


次にブートローダーを変更する。

raspi-configで設定できるようになった。

sudo raspi-config

「6 Advanced Options」を選択する。


「A6 Boot Order」を選択する。


「B2 USB Boot」を選択する。


これでUSBブートできるようになった。


一旦シャットダウンしてmicroSDカードを抜く。

sudo shutdown -h now

これでUSBメモリを起動ディスクとすることが出来た。


※追記
以下のdockerはやっぱり止めました。
というのも、NASツールである「OpenMediaValut」にdockerの機能が追加できるようなので、
OpenMediaVaultを先にインストールしたほうが良いと判断したため。
OSに直接dockerを入れるには以下の手順を実施してください。

dockerインストール

次にdockerをインストールする。

以下のコマンドを実行してインストール用のシェルをダウンロードして実行。

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

"docker"というグループをpiユーザーに紐付け。

sudo usermod -aG docker `whoami`

一旦ログアウト。ついでにダウンロードしたシェルファイルも削除。

rm get-docker.sh
exit

dockerの確認。

sudo systemctl status docker
docker -v
Docker version 20.10.10, build b485636

次にdocker-composeをインストール。

最新版のv2をインストールする。

mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/download/v2.1.0/docker-compose-linux-aarch64 -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
sudo ln -s $HOME/.docker/cli-plugins/docker-compose /usr/local/bin/

動作確認。

docker-compose -v
Docker Compose version v2.1.0

以上!

次はHomebridgeを移行しようと思います。


----------------追記

続き書きますた。HomebridgeじゃなくてNASの導入!

検索

Blog Archive

Popular Posts

About Me

自分の写真
性別:男
年齢:ついに40over
趣味:Snowboard、パソコン、iPhone、子育て

仕事:ユー子の社内SEとしてサーバ、NW等のインフラ全般をやってます

日々生活していく中で思ったことなどをつらつらと書いていきます。

どうぞよろしく!

ブログランキング

ブログランキング・にほんブログ村へ

QooQ