自宅用のサーバーを自作する（samba導入編）

#PCが完成した
[先日構成を考えた自作PC](https://qiita.com/winzu44/items/e54ae6b9548a562e0f6b)だが、パーツが届き完成した。
![0_dz1m8HR86w5xk1RAfGDQ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1852474/ca719dee-2ab8-7d2e-19df-1a4a0fc22f46.jpeg "自作PC界隈でよく見るパーツ並べるやつ")
自作PC組む前ってとりあえずパーツとるよね。
ちなみに中身はこんな感じ。
![JBpIR_zKTDy2BNGdUv1SmA.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1852474/44251f1b-4c9b-4339-e1a2-d936193726b7.jpeg "配線ぐちゃぐちゃでわろける")
配線がぐちゃぐちゃだが中身は見えないのでOK？
余談だが、マザーボードのIOパネルが一体型になっていないのに、非常にストレスが溜まった。
これをつけるのに一番時間を食われた。~~（ただ慣れてないだけ）~~

とりあえずBIOSから**Wake on Lan**を有効にした。
![elvs2se3RU2IwxTcsr0iRg.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1852474/12081d5b-fea5-40f1-6237-ef7f660139e0.jpeg)
**ASUS PRIME B460M-Aの場合だが**
**Advanced -> APM Configuration -> Power On By PCIE**より有効にできる

OSは**Ubuntu server20.04**を入れた。
ちなみにインストール時、SSHを使うようにチェックを入れた。
これ以降の作業は、SSH経由で行った。

#Sambaを入れる
- **IPを固定する**

```terminal:terminal
cd /etc/netplan/
```
のディレクトリに降りる。 
そこでyamlファイルを作成し、IPを固定する。

**HDDを使用できるようにする**
- 
今回のPCは、起動用のSSDとストレージ用のHDDに分けている。
自分の場合、デフォルトではHDDが使えなかったので初期設定を行う必要があった。
手順としては、
**1, パーティションを作成**
**2, HDDをフォーマットする**
**3, マウントする**
という流れになる。
```fdisk -l```コマンドを実行して、HDDが物理的に接続されているかを確認する。

```terminal:terminal
sudo fdisk -l
```

これで、接続されているドライブの一覧が出てくる。

```terminal:terminal
...
Disk /dev/sda: 1.84 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: WDC WD20EZBX-00A
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
...
```



これより、```/dev/sda```にHDDが接続されていると分かる。
ここから、```fdisk```コマンドでパーティションを作成する。

```terminal:terminal
sudo fdisk /dev/sda
```

そうしたら、コマンドを入力するよう求められる。新しく作成するのでnを入力。

```terminal:terminal
Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
# 基本的にpでOK
Select (default p): p
# パーティションを分ける予定がないのであればこれ以降はエンター連打でOK
Partition number (1-4, default 1): 1
First sector (2048-3907029167, default 2048): 2048
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-3907029167, default 3907029167): 

Created a new partition 1 of type 'Linux' and of size 1.8 TiB.
```
そうしたら、フォーマットする。今回はext4で行った。

```terminal:terminal
sudo mkfs -t ext4 /dev/sda
```
とする。
最後にマウントする。適当にディレクトリを作成して、
```sudo mount /dev/sda "作ったディレクトリ"```
とすればOK。

ただし、このままでは再起動時にマウントが外れてしまうことがあるので、（90日ぶりに再起動したら外れてた...。）自動でマウントできるようにする

```terminal:terminal
sudo blkid /dev/sda
```

として、マウントしたいHDDの```UUID```と```type```を取得する

そのHDDは```/dev/disk/by-uuid/HDDのUUID```に存在するので、
これを```/etc/fstab```に追加する。このファイルをエディタで開いて、


```terminal:terminal
/dev/disk/by-uuid/HDDのUUID /home/winzu44/STORAGE ext4 defaults 0 0
```
といったように追加する。

追加したら、```sudo mount -a``` で正しくマウントできるか確認する。
記述内容が正しければ、エラーは出ないはず。
これによって再起動しても自動的にマウントが外れなくなる。

# sambaのインストール

```terminal:terminal
sudo apt install samba
```
でインストールを行う。

# sambaの設定
/etc/samba内のsmb.confを書き換える。

[global]以下に
```unix charset = UTF-8
dos charset = CP932
```

```workgroup = WORKGROUP```
のままでOK（windowsならこのままで行ける）
 
```interfaces = 127.0.0.0/8 10.0.0.0/24```
 127......のアドレスはlocalhost, 10...のアドレスはプライベートIPアドレスを表す？

末尾に以下を追記する

```
 [Share]
   path =  /home/winzu44/shared/
   writable = yes
   guest ok = yes
   guest only = yes
   create mode = 0777
   directory mode = 0777
```
___windowsからアクセスするときは、[Share]の名前を使うので注意。___

最後に記述したファイルが正しいかどうかを確認する。

```terminal:terminal
testparm
```
これを実行して、

```terminal:terminal
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions
```

こうなればOK。

最後にsambaを起動する。

```terminal:terminal
sudo systemctl restart smbd nmbd
```

これで起動できたはず。あとはwindowsからアクセスできるようにする。

エクスプローラより、ネットワークを右クリック -> ネットワークドライブの割り当てを選択。
![serverPNG.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1852474/6199748b-6e24-4bb0-6cbe-e7aad5e6c079.png)
``\\サーバー名\smb.confに記述したディレクトリ名`` でアクセスできるようになる。

上記のコマンドでnmbdが起動せず、タイムアウトしてしまう場合、とりあえず
```terminal:terminal
sudo systemctl restart smbd 
```
でsmbdのみを起動する。

この時は、``\\サーバーのIPアドレス\smb.confに記述したディレクトリ名`` としてネットワークフォルダを割り当てる。

#参考
https://tarufu.info/ubuntu-hdd-attach/
https://beightlyouch.com/blog/programming/ubuntu-fileserver-nas/#toc6
https://atmarkit.itmedia.co.jp/ait/articles/1803/09/news034.html