Raspberry Pi Imager を使ったOSセットアップ

# Raspberry Pi Imager を使ったOSセットアップ
 - Raspberry-Pi 4 を使用
 - 作業端末はWindows

# 全体構成
この順に構築していく予定です、今回はOS設定編となります。

 - OSインストール・環境設定
 - コンテナ環境構築
 - アプリケーション導入
    - ファイルサーバ
    - VPNサーバ
    - TBA

# OSインストール・環境設定

## 利用モデル
Raspberry Piは以下のものを購入。
色々遊んでみるだけなのでもっとロースペックでもよかった。
よくわからないけど、セットを買えば問題無いよね！の精神で購入。
[https://www.amazon.co.jp/gp/product/B07ZRF5BC1/](https://www.amazon.co.jp/gp/product/B07ZRF5BC1/)

## SDカードの準備
ファイルシステムはFAT32でないとダメらしい。
最初はNintendo SwitchのSDカードを引っこ抜いて使おうと思っていたが、
上記セットに同封されていたため今回はこれを使用。

## Raspberry Pi Imager でメディア作成
サイトからexeファイルをダウンロード
https://www.raspberrypi.org/downloads/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132357/37337e02-52ab-514a-c460-5c23f26e410d.png)

インストールし、そのまま管理者権限で起動
OSと書き込み先ボリュームを指定して、[WRITE]を選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132357/999c447b-ec53-8513-c970-0890d97e9a54.png)

完了まで暫くかかった。30分強かも
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132357/7e79ce16-946e-b292-3592-deafdeb9b6e8.png)

## OS設定
SDカードをラズパイに挿し電源起動、HDMIケーブルでディスプレイを写して操作

 - SSH有効化

 - VNC有効化

有効化を確認

```
# netstat -ant
稼働中のインターネット接続 (サーバと確立)
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態
tcp        0      0 0.0.0.0:5900            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
```
ここでifconfigでIPアドレスを確認し、SSH接続での作業に切り替え

 - vimインストール

```
# apt install ^vim$
```

 - IPアドレス固定

```

# vi /etc/dhcpcd.conf
==追記=====
interface wlan0
static ip_address=172.22.1.253/22
static routers=172.22.0.1
static domain_name_servers=172.22.255.1

# service sshd restart
```

 - ディストリビューション、ファームウェア最新化

```
# apt-get dist-upgrade
# rpi-update
# apt-get update
# apt-get upgrade
```

ここで一度再起動し、再度ログイン

```
# shutdown -r now
```

 - ユーザ作成、sudo設定

```
# adduser batch
# vi /etc/sudoers
==追記=====
batch   ALL=(ALL)   NOPASSWD: ALL
```

 - 秘密鍵・公開鍵作成

```
# su - batch
$ ssh-keygen -t rsa -b 4096
$ scd .ssh/
$ schmod 600 id_rsa
$ smv id_rsa authorized_keys
$ ls -l
合計 8
-rw------- 1 batch batch 3381  5月 25 22:01 authorized_keys
-rw------- 1 batch batch  743  5月 25 22:01 id_rsa.pub

```

id_rsa.pubはローカルへダウンロード

 - sshd_config修正

ログイン確認は既存セッションを残したまま行いましょう。

```
# vi /etc/ssh/sshd_config
==以下を変更====
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
```

 - エイリアス設定

.bashrc に書き込もうと思ったが、内容をみると
.bash_aliase の方が適していそうだったためそちらに記載

```
# vi .bash_aliase
==以下を記載====
alias ll='ls -la --color=auto'
```
 - Swap無効化

設定反映には再起動が必要

```
# swapoff --all
# systemctl stop dphys-swapfile
# systemctl disable dphys-swapfile

# free -h
              total        used        free      shared  buff/cache   available
Mem:          3.7Gi        88Mi       3.1Gi       8.0Mi       611Mi       3.5Gi
Swap:            0B          0B          0B


```

 - 利用しないログ出力の無効化

```
# vi /etc/rsyslog.conf
==以下をコメントアウト====
#daemon.*                       -/var/log/daemon.log
#lpr.*                          -/var/log/lpr.log
#mail.*                         -/var/log/mail.log
#mail.info                      -/var/log/mail.info
#mail.warn                      -/var/log/mail.warn
#mail.err                       /var/log/mail.err
#*.=debug;\
#       auth,authpriv.none;\
#       news.none;mail.none     -/var/log/debug
```

 - その他

パーティションも設定したかったがめんどくさいのでやめた
アプリケーション導入後にログローテート設定を入れるようにする

## バックアップ取得
この状態でバックアップファイルを取得しておく

Win32 Disk Imager をインストール
[https://sourceforge.net/projects/win32diskimager/](https://sourceforge.net/projects/win32diskimager/)

Win32 Disk Imagerを起動した状態で、ラズパイのSDカードを作業PCに接続

[ImageFIle] にバックアップイメージのファイル名
[Device] にSDカードが認識されているデバイス名を指定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/132357/34787772-5514-1924-db06-67c127a53bac.png)

30分程度でバックアップ取得が完了。

# 参考サイト
[Raspberry Pi-01〜土台環境構築編〜](https://gloria.cool/technology-memo/raspberrypi/raspberrypi-01-base/)
[Raspberry Pi 3 (Raspbian Jessie)の無線LANに固定IPアドレスを設定する](https://qiita.com/momotaro98/items/fa94c0ed6e9e727fe15e)
[【Raspberry Pi】SDカードを丸ごとバックアップする方法について](https://raspi.taneyats.com/entry/backup-sdcard#Win32-Disk-Imager%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B)