自宅用のサーバーを自作する(samba導入編)


PCが完成した

先日構成を考えた自作PCだが、パーツが届き完成した。

自作PC組む前ってとりあえずパーツとるよね。
ちなみに中身はこんな感じ。

配線がぐちゃぐちゃだが中身は見えないのでOK?
余談だが、マザーボードのIOパネルが一体型になっていないのに、非常にストレスが溜まった。
これをつけるのに一番時間を食われた。(ただ慣れてないだけ)

とりあえずBIOSからWake on Lanを有効にした。

ASUS PRIME B460M-Aの場合だが
Advanced -> APM Configuration -> Power On By PCIEより有効にできる

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

Sambaを入れる

  • IPを固定する
terminal
cd /etc/netplan/

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

HDDを使用できるようにする

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

terminal
sudo fdisk -l

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

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
sudo fdisk /dev/sda

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

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
sudo mkfs -t ext4 /dev/sda

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

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

terminal
sudo blkid /dev/sda

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

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

terminal
/dev/disk/by-uuid/HDDのUUID /home/winzu44/STORAGE ext4 defaults 0 0

といったように追加する。

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

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
testparm

これを実行して、

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
sudo systemctl restart smbd nmbd

これで起動できたはず。あとはwindowsからアクセスできるようにする。
エクスプローラより、ネットワークを右クリック -> ネットワークドライブの割り当てを選択。

\サーバー名\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