tanaka's Programming Memo

プログラミングについてのメモ。

ラズパイ4にSambaを入れてファイルサーバーにする

学校のファイルサーバーが不安定になることがあって、そんな時にささっと代替手段を用意したい。他にも、サーバーやWebの勉強の際に手軽にインストールができるサーバーが欲しいとか、Phaserを動かしてみたいとか、ルキグラの描画に使えそうとか、あれこれ野望が浮かび、ラズパイ4を購入しました!

購入したラズパイと、Sambaのインストール手順です。

2019/12/11 nanoの終了時にYキーを押す手順が抜けていたので追加。 2019/12/12 ラズパイが見えない時の対策を追加。

目次

購入したもの

購入したのは、千石電商さんの秋葉原店にあったスターターパックです。電源やMicro HDMIケーブルなどを自分で選ぶのに不安があったのと、ヒートシンクやファンを揃えるのが面倒というのがありました。それらが揃っている優れたパックでした。

f:id:am1tanaka:20191208203742j:plain
ラズパイ4スターターパック32G

ケースは純正のものではなく、200円上乗せしてヒートシンクとファンが付いているやつにしました。熱対策は万全!SDカードは32GB。これで税込み11,630円。お手頃価格!

最初のインストール時に、スターターパック以外に以下が必要になります。

  • USBマウス
  • USBキーボード
  • HDMIが繋がるモニター

以上は手持ちのを使いました。

下準備

以下の公式ページを見ながら初回のインストール作業を済ませます。

projects.raspberrypi.org

インストールが終わったら、SSHを使えるようにします。レグポンさんの以下のページを参考にしました。

regpon.hatenablog.com

  • ウィンドウの上からターミナルをクリックして起動したら、以下を入力します。
sudo raspi-config
  • 設定ウィンドウが開くので、5 Interfacing Options を選択します
  • P2 SSH を選択します
  • Yesを選択して、Okします

これでSSHは有効になりますが、外部から簡単に接続できるようにホスト名を設定しておきます。

  • ターミナルから以下を入力します
sudo nano /etc/hosts
  • 最後の127.0.0.1で始まる行の最後を以下のように書き換えます。raspの部分は好きに書き換えてください
127.0.0.1    raspberrypi.local
  • [Ctrl]+[X]キーを押すと保存するか聞いてくるので、[Y]キー > [Enter]キーで保存します
  • 続いて以下を入力します
sudo nano /etc/hostname
  • 1行目を、先に入力した???.localのホスト名に書き換えます
raspberrypi.local
  • 先ほどと同じく、[Ctrl]+[X]キーを押して、[Y]キー > [Enter]キーで保存して、エディターを閉じます
  • 以下で、ラズパイを再起動します
sudo reboot

以上で外部から接続できるようになります。Windowsからの場合、PuTTYなどのSSHクライアントソフトで接続します。

www.putty.org

接続時に設定したホスト名(この例通りならraspberrypi.local)を入力すれば、ラズパイに接続して、IDとパスワードの入力を求められます。IDはpiで、パスワードはインストール時に設定したものを入力してください。

これ以降の作業は、Windowsなどの端末側から操作できます。

Sambaの設定

Sambaの設定の情報は、Raspberrypi公式マガジンのWebサイトのものが参考になりました。

magpi.raspberrypi.org

ここからは、PuTTYを使ってSSH接続をして操作しました。ログインは、ユーザーIDをpi、パスワードはインストール時に設定したものです。

Sambaのインストール

  • ターミナルを起動して、以下を入力してSambaのインストールをします
sudo apt update
sudo apt upgrade
sudo apt install samba

元のドキュメントにあったsamba-common-binはなくても大丈夫でした。

  • キー入力を求められるので、Yキーを押します

以上でインストールが始まるので、終わるまで待ちます。

共有フォルダーの作成

以下を入力して、Sambaで共有するフォルダーを作成します。

sudo mkdir /home/pi/shared

piのホームディレクトリー下にフォルダーを作ることで、そのまま権限の管理ができます。

pi以外のユーザーでやろうとすると権限周りの設定がややこしくなります。特に問題はなさそうなので、piのままでよいかと思います。

Sambaの設定を行う

まずは、以下を実行して、最初の設定のバックアップをとっておきます(最初の1回目でこれをやらずに設定ファイルの変更を間違えて、ラズパイの再インストールからやり直しました^^;)。

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup

以下で、設定ファイルを開きます。

sudo nano /etc/samba/smb.conf

ファイルの一番下に、以下を入力します。

path = /home/pi/shared
available = yes
valid users = pi
browsable = yes
writable = yes

詳細は、Samba.orgのドキュメントにありますが、一先ず上記のように追記すればOKです。

[Ctrl]+[X]キーを押したら、[Y]キー > [Enter]キーを押して、エディターを保存して閉じます。

念のため、以下を実行して、設定に間違いがないかを確認しまs。

testparm

色々と表示されますが、最後にLoaded services file OKと表示されれば問題ありません。違う表示が出たら設定を間違えた可能性があるので、smb.confをnanoエディターで開くところからやり直して、入力した文字に間違いがないか確認してください。

パスワードの作成

Samba用のパスワードを設定しておく方が安全でしょう。以下を実行します。

sudo smbpasswd -a pi

パスワードの入力を促されるので、ラズパイへのログイン用のものとは違うシンプルなパスワードを決めて入力してください。入力して[Enter]キーを押すと、もう一度確認を求められるので、同じパスワードを入力して[Enter]キーを押します。

以上できたら、Sambaサーバーを再起動するために、以下を入力します。

sudo service smbd restart

これでラズパイ側の設定は完了です。

Windows側の設定

この段階では、まだWindowsからラズパイが見えません。Windowsの設定が必要です。

  • 検索バーにcontrolと入力して、コントロールパネルが見つかったらクリックします
  • プログラムの文字をクリックします
  • Windowsの機能の有効化または無効化をクリックします。管理者権限が必要です
  • 下にスクロールして、SMB 1.0/CIFSファイル共有のサポートの左の+をクリックして開きます
  • SMB 1.0/CIFSクライアントにチェックします
  • OKをクリックしてウィンドウを閉じます

再起動が必要な場合は、再起動してください。以上完了したら、エクスプローラーのネットワークにラズパイのファイルサーバーが表示されます。

接続時には、IDとパスワードが必要になります。IDはpi、パスワードはSambaのインストール時に設定した簡単なパスワードです。

pisharedの2つのフォルダーが見えるようになると思います。piホームフォルダーが丸ごと見えるのでぎょっとしますが、読み取り専用なので悪さはできません。ラズパイ上で作業する時は、piではないユーザーを作った方がよさそうです(Linuxなので、管理者であるpiで通常の作業をしないのは当然ではありますが)。

macからのアクセス

maciOSAndroidのデバイスからなら、そのままファイルサーバーにアクセスできるそうです。macの場合、FinderのNetworkを開けば見えるので、Windowsと同様に操作できます。

ラズパイが見えない時の対処(2019/12/12追記)

PuTTYなどのSSHクライアントからの接続失敗

SSH????.localに接続しようとして失敗した時は、IPアドレスで接続して、設定を保存したらそれ以降は接続できるようになりました。

ネットワークにラズパイが出てこない

直に接続を試みます。Windows10で、[Windows]キー+[R]キーを押して、ファイル名を入力して実行するダイアログを表示して、以下を入力します(\は円記号)。

\\IPアドレス\pi

例えば、ラズパイのIPアドレスが192.168.1.2の場合は、\\192.168.1.2\piと入力します。ユーザーとパスワードの入力画面になったら、ユーザーをpi、パスワードはSambaで作成したパスワードを入力します。

これでダメな場合は、Sambaが動作しているかを確認します。ラズパイのターミナルで以下を実行します。

service smbd status

動作していない場合は、sudo service smbd restartで再開します。

また、有線で接続しているラズパイに、無線LANで接続しているPCから接続しようとした時に、ネットワークの場所が違っていたようで見つかりませんでした。どちらも同じルーター下の有線で接続したら見えるようになりました。

まとめ

以上で、外部ストレージを使わないラズパイ単体での簡易ファイルサーバーの出来上がりです。自分の用途は、ちょっとしたリソースの共有が目的なので30GBもあれば十分です。もっと大容量で、という場合は、外部ストレージの設定例もあちこちありました。日本語の情報はほぼ外部ストレージを利用するものでした。

ラズパイをカバンに入れておけば、LAN環境ですぐにファイルサーバーにできて重宝しそうです!

参考URL