Raspberry Piの初期設定

##この記事は
Raspberry Piの初期設定手順を纏めたものです。
適宜追記します。

##前段
[Raspberry Pi 購入からCLI接続まで](https://qiita.com/suzuki_cs/items/11ea0622a8e85c216e7e)
[raspbianのIP確認と固定IPの設定](https://qiita.com/suzuki_cs/items/81ca607e307d90794b8a)
ここまでやって、思う存分SSHで触り放題になったところからです。

##Linuxよく分からんからググったシリーズ
###現在のユーザー状況
見えていませんが、rootという最強権限を持ったユーザーがいます。
ログに表示されている`pi@raspberrypi`の通り、現在は`pi`ユーザーで操作をしています。
`sudo`を使用することで、`root`権限でコマンドを実行します。
`shutdown`等のシステムに致命的な影響を与えるコマンドは、`pi`には実行権限が無い為、実行出来ません。
また、現段階では`root`にパスワードが設定されていない為、`sudo`コマンドがそのまま実行されています。
業務でLinuxを扱う場合には、ユーザの切り分けやパスワードの適切な設定が必要ですが、現状はHobby用途ということでこのままやっていくこととします。概念として把握しておきましょう。

###apt-getとは
CLIからパッケージをインストールするコマンド。
WindowsとかだとWebサイトから欲しい何かをダウンロードしてダブルクリックして実行〜ってやるけれども、Linux系統だとCLIで`コマンド+パッケージ名`でインストールが可能。強い。
**Debian/Ubuntu系列はapt/apt-get**
**Redhut/Cent系列はyum**

##設定事項
###ソフトウェアアップデート
OSのアップデートとソフトウェアの個別アップデートを以下のコマンドで纏めて行います。
`apt-get update`
`apt-get upgrade`
これはDebian/Ubuntu系ディストリビューションのコマンドになり、詳細は以下他、各自ググりましょう。（これgetいらねぇのかなぁ）
[Linux Ubuntu — apt-get update / upgrade の違い](https://qiita.com/YumaInaura/items/dd50ba59c245a0a5f3f1)

バージョン確認します。

```Console.log
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux
pi@raspberrypi:~ $
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 9.4 (stretch)
Release:	9.4
Codename:	stretch
pi@raspberrypi:~ $
```

コマンド2つを実施します。
これは1時間程度かかりました。

```Console.log
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get upgrade
```

**注意**：各種インターネット情報には`sudo rpi-update`の実行が記載されています。実態としてははβ版を先行インストールするようなものなのらしいので、一旦控えます。

バージョンを再度確認しますが、変わっていませんでした。

```Console.log
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.14.71-v7+ #1145 SMP Fri Sep 21 15:38:35 BST 2018 armv7l GNU/Linux
pi@raspberrypi:~ $
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 9.4 (stretch)
Release:	9.4
Codename:	stretch
pi@raspberrypi:~ $
```

`sudo shutdown -r now`で再起動し、再度バージョン情報を確認します。
無事、kernelの更新がされたことを確認出来ました。良かったですね。

```Console.log
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux
pi@raspberrypi:~ $
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 9.4 (stretch)
Release:	9.4
Codename:	stretch
pi@raspberrypi:~ $
```

###NTPと時刻関連
`timedatectl status`で時刻設定を確認します。

```Console.log
pi@raspberrypi:~ $ timedatectl status
      Local time: 木 2019-06-20 10:23:09 JST
  Universal time: 木 2019-06-20 01:23:09 UTC
        RTC time: n/a
       Time zone: Asia/Tokyo (JST, +0900)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no
pi@raspberrypi:~ $
```

`Network time on`が`yes`になっている為、NTP設定は有効であることを確認。
どこを見に行ってるのか、ということは、`/etc/systemd/timesyncd.conf`に設定が書かれているので、`cat`します。
すると、**どこも見に行ってない**ですね。

```timesyncd.conf
pi@raspberrypi:~ $ cat /etc/systemd/timesyncd.conf
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.

[Time]
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
pi@raspberrypi:~ $
```

なので、設定ファイルを修正します。参照先は`ntp.nict.jp`で良いでしょう。

```timesyncd.conf（抜粋）
[Time]
NTP=ntp.nict.jp
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
```

`sudo systemctl restart systemd-timesyncd.service`で再起動して完了です。

###ストレージの増設及びsambaによるNAS化
ストレージの増設及びNASとして利用したい場合は、以下の記事に従って実施します。
[RaspberryPi2でMacとWindows両対応のNASを構築する](https://qiita.com/rkonno/items/54b2e4b8770c8b0b2bcd)
`df -Th`でRaspberry Piにマウントされているストレージを確認出来ます。

```Console.log
pi@raspberrypi:~ $ df -Th
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
/dev/root      ext4        13G  3.9G  8.2G   33% /
devtmpfs       devtmpfs   459M     0  459M    0% /dev
tmpfs          tmpfs      464M     0  464M    0% /dev/shm
tmpfs          tmpfs      464M  6.7M  457M    2% /run
tmpfs          tmpfs      5.0M  4.0K  5.0M    1% /run/lock
tmpfs          tmpfs      464M     0  464M    0% /sys/fs/cgroup
/dev/mmcblk0p6 vfat        71M   23M   49M   32% /boot
/dev/sda1      fuseblk    120G   44G   76G   37% /mnt/ssd/ssd1
tmpfs          tmpfs       93M     0   93M    0% /run/user/1000
/dev/mmcblk0p5 ext4        30M  398K   28M    2% /media/pi/SETTINGS
pi@raspberrypi:~ $
```

`service samba restart`を実行するとFailedが出ます。

```Console.log
pi@raspberrypi:~ $ sudo service samba restart
Failed to restart samba.service: Unit samba.service is masked.
pi@raspberrypi:~ $
```

これは`samba-ad-dc.service`に関するエラーと思われますが、ざっとさらった感じだとWindowsのActiveDirectory関連のようで、NAS機能自体は問題なく使えたので問題なし。

##次にやること
何か発生したら都度書きます。