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

  1. passwd

OSアップデート。

  1. sudo apt update
  2. sudo apt -y upgrade
  3. sudo apt -y autoremove

時刻同期設定。

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

SSH公開鍵をGitHubから登録。

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

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

  1. sudo tee -a /etc/ssh/sshd_config << EOM > /dev/null
  2. PasswordAuthentication no
  3. PermitRootLogin no
  4. Port 22
  5. EOM

ホスト名変更。

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

  1. sudo hostnamectl set-hostname raspberrypi4

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

  1. sudo timedatectl set-timezone Asia/Tokyo

言語に日本語を追加。

  1. 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.

  1. sudo raspi-config nonint do_wifi_country JP

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

  1. sudo reboot

microSD→USBメモリに変更

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

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

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

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


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

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



実物。



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

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

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

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


  1. sudo apt install -y git

rpi-cloneをダウンロード。

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

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

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

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

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

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

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

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

  1. sudo rpi-clone sda
  2.  
  3. Booted disk: mmcblk0 125.1GB Destination disk: sda 61.5GB
  4. ---------------------------------------------------------------------------
  5. Part Size FS Label Part Size FS Label
  6. 1 /boot 256.0M fat32 -- 1 57.3G -- --
  7. 2 root 116.2G ext4 rootfs
  8. ---------------------------------------------------------------------------
  9. == Initialize: IMAGE partition table - partition number mismatch: 2 -> 1 ==
  10. 1 /boot (30.5M used) : MKFS SYNC to sda1
  11. 2 root (1.2G used) : RESIZE MKFS SYNC to sda2
  12. ---------------------------------------------------------------------------
  13. Run setup script : no.
  14. Verbose mode : no.
  15. -----------------------:
  16. ** WARNING ** : All destination disk sda data will be overwritten!
  17. -----------------------:
  18.  
  19. Initialize and clone to the destination disk sda? (yes/no): yes
  20. Optional destination ext type file system label (16 chars max):
  21.  
  22. Initializing
  23. Imaging past partition 1 start.
  24. => dd if=/dev/mmcblk0 of=/dev/sda bs=1M count=8 ...
  25. Resizing destination disk last partition ...
  26. Resize success.
  27. Changing destination Disk ID ...
  28. => mkfs -t vfat -F 32 /dev/sda1 ...
  29. => mkfs -t ext4 /dev/sda2 ...
  30.  
  31. Syncing file systems (can take a long time)
  32. Syncing mounted partitions:
  33. Mounting /dev/sda2 on /mnt/clone
  34. => rsync // /mnt/clone with-root-excludes ...
  35. Mounting /dev/sda1 on /mnt/clone/boot
  36. => rsync /boot/ /mnt/clone/boot ...
  37.  
  38. Editing /mnt/clone/boot/cmdline.txt PARTUUID to use 7798598e
  39. Editing /mnt/clone/etc/fstab PARTUUID to use 7798598e
  40. ===============================
  41. Done with clone to /dev/sda
  42. Start - 10:27:39 End - 10:29:03 Elapsed Time - 1:24
  43.  
  44. Cloned partitions are mounted on /mnt/clone for inspection or customizing.
  45.  
  46. Hit Enter when ready to unmount the /dev/sda partitions ...
  47. unmounting /mnt/clone/boot
  48. unmounting /mnt/clone
  49. ===============================

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


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

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

  1. sudo raspi-config

「6 Advanced Options」を選択する。


「A6 Boot Order」を選択する。


「B2 USB Boot」を選択する。


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


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

  1. sudo shutdown -h now

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


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

dockerインストール

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

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

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

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

  1. sudo usermod -aG docker `whoami`

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

  1. rm get-docker.sh
  2. exit

dockerの確認。

  1. sudo systemctl status docker
  2. docker -v
  3. Docker version 20.10.10, build b485636

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

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

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

動作確認。

  1. docker-compose -v
  2. Docker Compose version v2.1.0

以上!

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


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

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

検索

Blog Archive

Popular Posts

About Me

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

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

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

どうぞよろしく!

ブログランキング

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

QooQ