Samba関係

NAS (Network Attached Storage)というloacalネットワークで共有できる外付けHDDを自前で構築したい場合、外付けHDDとそれに接続するPCを用意する。
それにSambaというソフトウェアをインストールする。ここではLinuxのDebian, Raspberry pi OSを例に説明する。




Sambaのサーバー構築


参考1 : 外付けHDDをラズパイに接続
参考2 : ラズパイに4TBの外付けHDDを接続しNAS(ファイルサーバー)を構築してみた
まず外付けHDDを用意し、exFATでフォーマットする。フォーマット形式はNTFSとexFATがある。

次に、今回NASにするPC(今回はlinux)にHDDをつなぎ、パーティション等の設定をする。 まずsudo fdisk -lでHDDが認識されていること、パスを確認/dev/sda等に割り当てられているはず。 次にパーティションを設定するために以下のコマンドでpartedを呼び出して、pコマンドでHDDの情報を表示。

$ sudo parted <HDDのパス>
(parted) p

Partition Table の部分がGPT以外の場合は(parted) mklabel gptでgptに変更。 gptになっていることができたら、今存在するパーティションを削除。

(parted)rm <削除するパーティション番号>

pコマンドで削除されていることを確認。 次にパーティションを振り分ける。

$ sudo parted -a optimal <HDDのパス> mkpart primary <ファイルシステム[ntfs or ext4]> <[0% or 前のパーティションの割合]> <何%まで使うか (+前のパーティション割合)>

sudo fdisk -lで振り分けとパーティションのパスを確認。 パーティションのフォーマットを行う。

$ sudo mkfs -t <ファイルシステム[ntfs or ext4]> -Q -L <パーティションのラベル (任意)> <パーティションのパス>

linux上でマウントする。 mkdirでマウントで紐付けるディレクトリ(マウント位置)を作成する (例 : sudo mkdir /mnt/NAS)。

$ sudo mount <パーティションのパス> <マウント位置>

df -Thで正しくマウントできているか確認。 更に起動時に自動的にマウントをするために/etc/fstabを編集する。
まずはsudo blkidでパーティションのUUIDを調べて、/etc/fstabに次のように追記する。

<パーティションのUUID> <マウント位置> <ファイルシステム> defaults,nofail 0 0

Sambaをインストールする。

$ sudo apt install samba

/etc/samba/smb.confにSambaの設定を追記。 userは存在するユーザーにすること。

[<表示名 (任意)>]
path = <マウント位置>
read only = no
guest ok = Yes
force user = <guestで接続する際のユーザー>

次にSambaにユーザーを登録 (存在するユーザー)。

$ sudo smbpasswd -a <ユーザー名>

そしてSambaの再起動。

$ sudo systemctl restart smbd

Sambaのクライアント側について


Windows

Mac

Finderを開いてキーでCommand+kを叩くと、サーバーへ接続というダイアログが出てくるので、 下の+ボタンを押して新しい接続先を作って、上の入力欄にsmb://<Sambaサーバーでのマウント位置のアドレス(IPまたはホスト名)>

Linux

LinuxでSambaの共有ディレクトリを行う場合少し面倒。 まずid <ユーザー名>でUIDとGIDを取得。 mkdirで自PCでのマウント位置を作成。

$ sudo mount -t cifs -o user=<ユーザー名>,password=<パスワード>,uid=<UID>,gid=<GID> //<Sambaサーバーのアドレス>/<Sambaサーバーでのマウント位置> <自PCのマウント位置>

起動時に自動的にマウントするように以下を/etc/fstabにSambaの設定を追記。

//<Sambaサーバーのアドレス>/<Sambaサーバーでのマウント位置> <自PCのマウント位置> cifs username=<ユーザー名>,password=<パスワード>,uid=<UID>,gid=<GID> 0 0