RaspberryPi Raspbian ヘッドレスインストール（Buster編）

#はじめに
- 備忘的な記事です。
- ラスパイになるべく接続しないでセットアップしたい。（電源のみ）
- Windows10 環境で。
- Raspberry Pi Imagerを使わない

[前回](https://qiita.com/nori-dev-akg/items/a8361e728a66a8c3bdba) は Stretch Liteをインストールしたけど、今回は Buster Desktop。ハードは同じ RaspberryPi 3B のまま。

#ハードウェア
- RaspberryPi3B：初めてのラズパイです。
- microSD card：32GB class10
- 無線LAN環境：家庭内LAN
- PC：Windows10

# Raspbian Buster with desktop
最近、「Raspberry Pi Imager」というものができてイメージの書き込みを行ってくれます。ここではイメージファイルのバックアップなどをしたい人向けです。初めての人は素直に「Raspberry Pi Imager」を使った方がいいかもしれません。私の場合は、イメージのスナップショットを取りたいのでイメージ読み書き用ツールを使っています。

今回は Desktop にしました。
[ここからダウンロード](https://www.raspberrypi.org/downloads/raspbian/)
ダウンロードには 30分ぐらいかかるので、その間にSDカードとか準備しておきましょう。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/c13c5306-b183-1659-fdb2-d31d6b9a22fa.png" width=60%>

#microSDカード
Amazonで有名所の16か32GBであれば1000円もしない。[ここらへん](https://www.amazon.co.jp/s?k=microsdhc+32gb+class10&i=computers&__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&ref=nb_sb_noss_1)

使う前にフォーマットしておきましょう。[SDメモリカードフォーマッター](https://www.sdcard.org/jp/downloads/formatter/)
[カードの選択]でドライブを確認して、[クイックフォーマット]で[フォーマット]。
すぐ終わる。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/dbad6687-136c-37f8-8ad5-a66b5ace6c89.png" width=50%>

#イメージを書き込む
書き込む前に、ダウンロードしたファイル(YYYY-MM-DD-raspios-buster-armhf.zip)を解凍して、YYYY-MM-DD-raspios-buster-armhf.img を取り出しておく。

イメージを書き込むツールを用意する。ここでは Win32DiskImager を使う。
Win32DiskImager の最新版は、以下と少し違うかもしれないが。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/e07eab39-33f5-735d-83f1-9ba3b2dfd380.png" width=50%>
解凍したイメージファイルを指定して、[Write]を押せば書き込みが始まる。
(↑画像ではファイル名が違うが上記の YYYY-MM-DD-raspios-buster-armhf.img を指定する)
自分の環境で3分ぐらい掛かりました。

自分は v0.8を使っています。v1.0が出ているのですが、どうも上手く行かず。
https://sourceforge.net/projects/win32diskimager/files/Archive/

# SSH
おそらく、Buster も SSH は有効になっていないと思うので、これもやっておく。
イメージのルートに "ssh" というファイルを置けば有効になるので、エクスプローラでイメージのルートで右クリック「新規作成」－「テキスト文書」－ファイル名を「ssh」(拡張子なし)。中身は空でよい。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/ff73b4aa-0eee-9401-e4e7-35f78371b336.png" width=40%>

# WiFi設定
WiFi設定も有線接続無しでできる仕組みがRaspbianには予め用意されている。これもイメージのルートに"wpa_supplicant.conf"という設定ファイルを置いておけばやってくれる。
注意事項としてこのテキストファイルの改行コードはLFでないといけないらしいので、メモ帳ではなくてエディタを使って改行コードを確認しよう！

```wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="SSID名"
    psk="暗号化キー"
}
```
先程のSSHと同じくSDカードのルートに作成しておく。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/6843762e-e2b8-a8c5-0123-9353cd473fb9.png" width=30%>
この wpa_supplicant.conf も ssh ファイルも作成してとっておこう！また今度使うだろうから！

# RaspberryPi 起動
microSD を RaspberryPi に挿して、電源用microUSBを繋いで起動！
RaspberryPi の赤LEDが点灯、緑LEDのチカチカ落ち着いたら多分OK！
ヘッドレスインストールなのでまだまだ。

# RaspberryPi 探し
[こちらのページ](https://qiita.com/xshell/items/af4e2ef8d804cd29e38e)のWindowsの場合を参考にコマンドプロンプトで

```
C:\>for /l %i in (0,1,255) do ping -w 1 -n 1 192.168.0.%i
```
そのあとに

```
c:\>arp -a
  :
  192.168.0.203         b8-27-xx-xx-xx-xx     動的
  :
```

b8-27 で始まるアドレスがRaspberryPiです。
見つかればちゃんと動いてますよ！

##TeraTermPro
TeraTerm の説明は省略
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/80e60be8-43f1-ae1e-0583-d839eb676138.png" width=50%>

ユーザ：pi
パスワード：raspberry

##初期設定
※2021.03.07 更新
Terminalが繋がったら初期設定を済ませておく。
configツールで行う

```
$ sudo raspi-config
```
最低限以下のものは変えておきましょう。

* rootパーティションの拡張
  6.Advanced Options
   EXPAND FILESYSTEM (次回起動時に拡張されます。)

* 地域設定
  5.Localisation Option
   L1 Locale
    ja-JP.UTF-8 UTF-8

* タイムゾーンの変更
  5.Localisation Option
   L2 Timezone
    Asia > Tokyo

* Wi-Fiの国コード
  5.Localisation Option
   L4 WLAN Country
    JP

* ホスト名
  1 System Options
   S4 Hostname
    [新しいホスト名]（自分は raspi01 ）

* パスワード
  1 System Options
   S3 Password
   [コマンドラインになるので、そこで新しいパスワードを入力]

[Finish] で reboot するように言われるので reboot。

##IP固定化
RaspberryPi はアドレスが変わっても困りますので固定しておく！

```
$ sudo vi /etc/dhcpcd.conf
```
下の方に下記を追加する。192.168.0.31 が固定IP。環境に合わせて変更すること。

```/etc/dhcpcd.conf
       :
interface wlan0
static ip_address=192.168.0.31/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
```
実はここでハマりました。Stretchのときは上記で繋がったんですが、下のように
"static domain_search=" と "noipv6" が無いと繋がらなかった。結構悩んでしまいました。
もしかしたらDesktop版だから？ Stretch Lite版では繋がっていたかと・・・。

```/etc/dhcpcd.conf
       :
interface wlan0
static ip_address=192.168.0.31/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
static domain_search=
noipv6
```
domain_search= は空でよい。
noipv6は「IPv6を使わない」という意味。

##sudo apt-get update
ここまで来たら、お約束！やっておきましょう。

```
$ sudo apt-get update
$ sudo apt-get upgrade
```
20分ぐらい掛かった・・・。
※あとあと気付いたのだが、ここでエラーが出ていたよう。下記のsambaのインストールのところ。

##リモートデスクトップ
せっかくDesktop版をインストールしたのでRDPを入れておく。
ウチはWindowsベースなので、リモートデスクトップを使っている。
これでヘッドレスのままデスクトップが見れる！

```
$ sudo apt-get -y install xrdp
```
以前は、vncとか必要でしたけど、今は xrdp をインストールすれば完了です。
Windows の リモートデスクトップ を起動して、IPアドレス（orホスト名）と 「pi」 を入力して[接続]
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/8c964dde-649e-b429-e479-1f6f45c530bd.png" width=40%>
チェックをいれて
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/0fa9135a-23fd-6a63-684d-f17a60b2d943.png" width=40%>

pi とパスワードを入れて
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/1266d58e-a0fa-a0d7-2291-3d179d7e7f04.png" width=40%>

「はい」
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/79db97c9-6268-2fd9-672f-888b0559603f.png" width=70%>
できた！

##バックアップ
ここまでのスナップショットをバックアップとして取っておく！これ大事！
一旦、RaspberryPiを終了させて、Win32DiskImager で、今度はSDカードの読み込みをする。
ここでは、[Read]ですよ！！間違えないように！！

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/c3662d18-324c-0988-f0d9-4002641fcbda.png" width=70%>

こうしておけばいつでもセットアップ後の環境まで戻せるもんね！
↓ こんな感じに取ってあります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/03e94f2f-311b-eb8a-a022-84d3581f3bfc.png" width=50%>

## Samba のインストール
Windows と RaspberryPi のファイルの交換は Sambaがあった方が便利なのでインストール。
と思ったらエラー・・・。

```
$ sudo apt-get install samba
       :
エラー:1 http://raspbian.raspberrypi.org/raspbian buster/main armhf python-samba armhf 2:4.9.5+dfsg-4
  404  Not Found [IP: 93.93.128.193 80]
エラー:2 http://raspbian.raspberrypi.org/raspbian buster/main armhf samba-common all 
        :
```

なんで？と思ったら、apt-get update でエラーが出てるのに気付く。がーーーん。

```
pi@raspi01:~ $ sudo apt-get update
ヒット:1 http://archive.raspberrypi.org/debian buster InRelease
取得:2 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]
パッケージリストを読み込んでいます... 完了
E: Repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' changed its 'Suite' value from 'testing' to 'stable'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
```

以下をすると良いとあったので実行

```
sudo apt-get update --allow-releaseinfo-change
```

再度

```
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install samba
```
途中、DHCP の WINS がなんとか聞かれたけど取り敢えず「いいえ」にした。
/etc/samba/smb.conf に以下を追加

```/etc/samba/smb.conf
[pi]
   comment        = RaspberryPi
   path           = /home/pi
   guest ok       = yes
   force user     = pi
   read only = no
   browsable = yes
   create mode    = 0644
```
samba 再起動

```
$ sudo service smbd restart
$ sudo service nmbd restart
```

これでエクスプローラーで pi ユーザのホームディレクトリが見えればOK！
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/203949/ae45e476-e2dd-097a-0687-468f65e962ad.png" width=50%>

以上、お疲れ様でした。

#SpecialThanks!!

https://qiita.com/xshell/items/af4e2ef8d804cd29e38e