Ubuntu環境でsambaファイルサーバーを構築する

Ubuntu環境でsambaファイルサーバーを構築する 3DCG
Ubuntu環境でsambaファイルサーバーを構築する

勉強のためにUbuntuサーバーを建てたのでsambaでファイルサーバーを作って保存環境の質を高めたいと思います。

自分はBlenderやHoudiniを使って3DCG制作をしていますが、いろんなデータを多岐に使う必要があり、シミュレーションなどをやると大容量で大量のデータを管理しないといけませんので、ファイルサーバーがあると複数台での作業もやりやすくなるのかなと思っています。

今回はUbuntu環境でsambaを使ってWindowsからも見えるファイルサーバーを作る流れをまとめます。

sambaって何?

もともとはマイクロソフトがwindows用にファイル共有プロトコルであるSMBを開発していたのですが、そのプロトコルを使ってLinux-Win間でのファイルやり取りを行うために生まれたプログラムがsambaです。

開発は30年程度続いており、かなり歴史の古いプログラムの一つで、長い歴史のなかで十分に枯れた信頼性のあるプログラムに熟成されているが魅力です。

いまのところマルチOSでアクセスできるファイルサーバーとしてほぼ一択ではないかと思います。


今回の前提

  • Ubuntu(Desktop / ServerどちらでもOK)
  • ローカルネットワーク内で使用
  • Windows、Linuxからアクセスしたい

家庭内・個人用途 を想定しています。外に公開するなどの内容ではありません。また設定も必要最低限で「とりあえずファイルを保存できる」を達成するのが目標です。

サーバーのIP

家庭内LANの中でのIPを固定しておくと便利です。

通常は家庭用ルーターでLANが組まれていると思いますが、ルーターには大抵DHCP割り当て機能があると思います。

自分の環境はNECのAtermルーターなので、DHCP固定割当設定からIPアドレスを設定しています。

今回は192.168.10.199がサーバーのIPとして進めます。

sambaのインストール

sambaを入れます。

sudo apt update
sudo apt install samba

インストールできたら、サービスが動いているか確認します。

systemctl status smbd

active (running) になっていればOKです。

共有用ディレクトリを作る

例として/srv/share を使います。srvディレクトリはサーバーが提供する保存場所の用途などで使われることの多い場所とのことですが、もちろん任意の場所でも問題ないです。

パーミッションと所有も変更しておきます。

sudo mkdir -p /srv/share
sudo chown -R user:user /srv/share
sudo chmod 775 /srv/share  

ここで user はLinuxのユーザー名です。自分の環境に合わせて変えてください。

samba用ユーザーを登録する

Linuxユーザーと、sambaユーザーは別管理です。このuserはLinuxのユーザーではなくsambaのユーザーのことです。

sudo smbpasswd -a user

ここで設定するパスワードは、Windows等ファイルサーバを使う側からアクセスするときに使うもの です。

ストレージの状態を確認・設定する

ファイルサーバー用に使いたいストレージ(HDDやSDD)を繋げたら、まず状況を確認しましょう。

フォーマット

まずフォーマットです。

lsblk -f /dev/sdx

Linuxでしか扱わないならext4がおすすめです。Windowsにも繋ぎたい場合はNTFSがいいと思います。

自分が購入したHDDはNTFSでのフォーマットがあらかじめされていましたが、Windows側で使う予定はないので、ext4にてフォーマットをし直しました。

sudo mkfs.ext4 /dev/sdx 

マウントの永続化

ストレージのマウントポイントを固定化しておきましょう。

ストレージのUUIDを調べます。

blkid /dev/sdx

以下のような情報が表示されるので、UUIDを控えておきましょう。

/dev/sdc2: UUID="3dxxxacc-xxxx-xxxd-xxxx2-xxxxxxxxx" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Basic data partition" PARTUUID="xxxxxxxx-xxxxx-xxxxxxxxx-xxxxx"

エディタでfstabの末尾に以下の設定を追加します。

sudo nano /etc/fstab
UUID=3dxxxacc-xxxx-xxxd-xxxx2-xxxxxxxxx /srv/share ext4 defaults 0 2

これで該当のストレージはリブート後などでも自動的に/srv/shareにマウントされるようになります。

smb.conf を編集する

設定ファイルを開きます。

sudo nano /etc/samba/smb.conf

一番下に以下のように追記します。

先ほど作ったストレージをマウント予定のディレクトリを指定する感じですね。

[share]
   path = /srv/share
   browseable = yes
   writable = yes
   guest ok = no
   valid users = user

読み込みOK・書き込みOK・ゲスト禁止に設定し、アクセスを許可するユーザを設定しています。

保存したら、sambaを再起動します。

sudo systemctl restart smbd

この時点ですべての用意が整っているはずです。

Windowsからアクセスする

Windowsのエクスプローラで、アドレスバーに以下を入力します。

\\UbuntuのIPアドレス\share

例:

\\192.168.10.199\share

アクセスはもちろんwindowsが既知であればホスト名でも問題ありません。

ユーザー名とパスワードを聞かれたら、smbpasswd で設定したものを入力します。資格情報を記憶するにチェックを入れるとアクセスが永続化します。

問題なければ、共有フォルダが開きます。

ネットワークドライブに割り当てると楽

毎回ファイルサーバーにアクセスするためにホスト名やIPを打つのが面倒ならネットワークドライブとしてドライブレターを付けると便利です。

エクスプローラーのPCを右クリックしネットワークドライブの割り当てを実行して、ネットワークドライブを登録するだけです。

追加できると、以下のようドライブレターが付きストレージのように扱えます。

ただし、ドライブレターはそのWindowsだけ有効です。パスとしてすべての環境で有効ではないので、たとえばドライブレターが入ったパスはLinuxシステム側ではアクセスすることはできません。

ファイル参照が多いツールなどでパスを利用する場合だと、このあたりは致命的なエラーになりかねないので注意が必要です。

よくあるハマりどころ

  • ファイアウォールで445番ポートが塞がっている
  • Linux側のディレクトリ権限不足
  • sambaユーザーを作り忘れている

この3つが原因のことがほとんどです。自分は今のところトラブルらしいトラブルには出会ってませんが、sambaはネット上に情報も沢山あるので、大抵のことは解決し得るのかなと思います。

まとめ

別記事でも書いたのですが、ファイルサーバーを建てたことで保存先に悩むことがなくなり、非常に快適になりました。

Linuxの勉強のためもあって建てたのですが、3DCG作成環境の向上はもちろん、普段のファイル保存も管理がしやすくなり非常に満足しています。

Windows共有フォルダだと、PC電源を切ると使えませんが、常時起動のサーバーならではの使い勝手の良さがありますね。

このまま運用を続けてみて、より設定などを詰めていけるように勉強したいと思います。

コメント

タイトルとURLをコピーしました