NAS (Network Attached Storage)というloacalネットワークで共有できる外付けHDDを自前で構築したい場合、外付けHDDとそれに接続するPCを用意する。
それにSambaというソフトウェアをインストールする。ここではLinuxのDebian, Raspberry pi OSを例に説明する。
参考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
Finderを開いてキーでCommand+kを叩くと、サーバーへ接続というダイアログが出てくるので、
下の+ボタンを押して新しい接続先を作って、上の入力欄にsmb://<Sambaサーバーでのマウント位置のアドレス(IPまたはホスト名)>
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