1
1

ラズパイにSambaをインストールしてWindowsのファイル置き場にする

Last updated at Posted at 2024-06-01

はじめに

Robocopyの検証をするために、ラズパイでNASを構築する

Windowsマシン1台でも検証は可能であるが、より本番環境に近しい環境のほうが安心できる
また、UNCパスで指定した場合とネットワークドライブにマウントした際で挙動が違ったような気もするので
そのへんを検証するためにも、NASがあると便利だと思った次第

余談:UNCパスとは

Gigazineさんの記事が分かりやすかったので、文章を引用させていただきます
(引用元;https://gigazine.net/news/20230429-windows-file-path/)

UNCは「Universal Naming Convention」の略で、UNCパスはネットワーク上のデバイスに保存されたフォルダやファイルの位置を示すパスです。例えば、IPアドレス「192.168.1.15」に存在するデバイス内の「Media」フォルダの位置は、以下のように表記できます。

\\192.168.1.15\Media

また、以下のように自身のアドレスを指定することで、ローカルのフォルダにアクセスすることも可能です。

\\localhost\C$\Windows
\\コンピューター名\C$\Users\Windows
\\ローカルIPアドレス\C$\Users\Windows

私の環境紹介

  • Windows 11 Home
  • Raspberry Pi3 Modle B+
    • OS: Debian 12 (Bookworm)
  • USBフラッシュメモリ

Windows11マシンとラズパイは192.168.10.0/24セグメントに属している
ラズパイにはUSBフラッシュメモリを挿しておく

ラズパイを最新の状態にする

平均して半年に1回くらいしかラズパイは触らないので
まずはapt update && apt upgradeする

image.png

bullseyeからbookwormにアップデートされた
Wikipediaでも加筆が望まれているくらい新しいOSってこと(違う
image.png

OpenMediaValutをインストール・・・できなかった

Copilotに要約してもらったところによると、以下のようなアプリらしい
Debianベースで、SMB対応して、小規模向けとのこと。

openmediavault は、Debian Linux ベースの次世代ネットワークアタッチドストレージ(NAS)ソリューションです。SSH、(S)FTP、SMB/CIFS、RSync などのサービスを含んでおり、これらはすぐに利用できます。フレームワークのモジュラーデザインにより、プラグインを追加して機能を拡張できます。openmediavault は主に小規模オフィスや自宅オフィス向けに設計されていますが、これに限定されることはありません。深い知識を必要とせずに、誰でも簡単にインストールしてネットワークアタッチドストレージを管理できる、使いやすいアウトオブザボックスのソリューションです。 😊📦🔗

こちらの記事に従って、インストールスクリプトを実行したところ
ラズパイのライト版じゃないとダメだとと怒られた
GUIで操作できないライト版ではないと動かないらしい
ラズパイは1つしか持っておらず、GUIが無いのは心もとないので、このアプリのインストールは断念

Sambaで我慢する

Sambaは、Linux上でWindowsのネットワーク機能を実現するソフトウェアです。

Sambaをインストールする

sudo apt install samba

Windowsのエクスプローラーでラズパイにアクセスする

Windowsボタン+R で、出てきた窓に\\{ラズパイのIPアドレス}を入力

image.png

資格情報を聞かれるので、ひとまずpiアカウントで入る

image.png

デフォルトではこんな感じ
nobodyフォルダに入ろうとしても、再度資格情報が聞かれて、ここはpiユーザでも入れない

image.png

フォルダをつくる

sharenotshareをつくる。notshareが見えないよね?の確認もかねて。

sudo mkdir /samba-share-dir
sudo mkdir /samba-share-dir/share
sudo mkdir /samba-share-dir/notshare

# shareだけに権限付与
sudo chmod 777 /samba-share-dir/share

Sambaコンフィグ設定

/etc/samba/smb.confの末尾に以下を追加

[samba-share-dir]
path = /samba-share-dir/share
browseable = yes
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
force user = pi

サービス再起動

sudo systemctl restart smbd

Windowsからアクセスする

エクスプローラーでF5を押して更新すると、新しいフォルダが見えた
コンフィグの[ ]で囲んだ文字列が共有フォルダとして見えるらしい

image.png

単純にshareにしてわかりやすくした

image.png

ためしにtest.txtを作って、中に文字列を書いてみる

image.png

ラズパイ側でファイル確認

ラズパイ側でも同じ結果が見えた

cat /samba-share-dir/share/test.txt
this is test message!!

ラズパイをネットワークドライブに割り当てる

共有フォルダを右クリックして、ネットワークドライブに割り当てるだけ

image.png

ラズパイの空き容量が見えるという副次的な効果があることを発見

image.png

おわりに

ラズパイのアップデートやら、Sambaセットアップやらで記事を書き始めて4時間くらいかかったけど
本題はこれから...Robocopyの検証をせねば

追記(2024.6.2)

Robocopyを試した結果
正常時と異常時のそれぞれのログを掲載する
なお、試行回数は3回に制限している

正常時
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows の堅牢性の高いファイル コピー                              
-------------------------------------------------------------------------------

  開始: 2024年6月2日 16:12:28
   コピー元 : C:\batch\src\
     コピー先 : \\192.168.10.81\share\

    ファイル: *.*
	    
  オプション: *.* /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /R:3 /W:3 

------------------------------------------------------------------------------

	                   1	C:\batch\src\
	                   1	C:\batch\src\新しいフォルダー\
	                   0	C:\batch\src\新しいフォルダー - コピー\

------------------------------------------------------------------------------

                  合計     コピー済み      スキップ       不一致        失敗    Extras
   ディレクトリ:         3         0         3         0         0         0
     ファイル:         2         0         2         0         0         0
      バイト:         8         0         8         0         0         0
       時刻:   0:00:00   0:00:00                       0:00:00   0:00:00
   終了: 2024年6月2日 16:12:28
ネットワーク遮断時のログ
-------------------------------------------------------------------------------
   ROBOCOPY     ::     Windows の堅牢性の高いファイル コピー                              
-------------------------------------------------------------------------------

  開始: 2024年6月2日 16:14:18
2024/06/02 16:14:18 エラー 53 (0x00000035) コピー先のファイル システムの種類を取得しています \\192.168.10.81\share\
ネットワーク パスが見つかりません。

   コピー元 : C:\batch\src\
     コピー先 = \\192.168.10.81\share\

    ファイル: *.*
	    
  オプション: *.* /S /E /DCOPY:DA /COPY:DAT /PURGE /MIR /R:3 /W:3 

------------------------------------------------------------------------------

2024/06/02 16:14:18 エラー 53 (0x00000035) コピー先ディレクトリにアクセスしています \\192.168.10.81\share\
ネットワーク パスが見つかりません。
3 秒間待機しています... 再試行しています...
2024/06/02 16:14:21 エラー 53 (0x00000035) コピー先ディレクトリにアクセスしています \\192.168.10.81\share\
ネットワーク パスが見つかりません。
3 秒間待機しています... 再試行しています...
2024/06/02 16:14:24 エラー 53 (0x00000035) コピー先ディレクトリにアクセスしています \\192.168.10.81\share\
ネットワーク パスが見つかりません。
3 秒間待機しています... 再試行しています...
2024/06/02 16:14:48 エラー 53 (0x00000035) コピー先ディレクトリにアクセスしています \\192.168.10.81\share\
ネットワーク パスが見つかりません。

エラー: 再試行が制限回数を超えました。

2024/06/02 16:14:48 エラー 53 (0x00000035) コピー先ディレクトリを作成しています \\192.168.10.81\share\
ネットワーク パスが見つかりません。
3 秒間待機しています... 再試行しています...
2024/06/02 16:14:51 エラー 53 (0x00000035) コピー先ディレクトリを作成しています \\192.168.10.81\share\
ネットワーク パスが見つかりません。
3 秒間待機しています... 再試行しています...
2024/06/02 16:14:54 エラー 53 (0x00000035) コピー先ディレクトリを作成しています \\192.168.10.81\share\
ネットワーク パスが見つかりません。
3 秒間待機しています... 再試行しています...
2024/06/02 16:14:57 エラー 53 (0x00000035) コピー先ディレクトリを作成しています \\192.168.10.81\share\
ネットワーク パスが見つかりません。

エラー: 再試行が制限回数を超えました。

2024/06/02 16:14:57 エラー 53 (0x00000035) コピー先ディレクトリを作成しています \\192.168.10.81\share\
ネットワーク パスが見つかりません。

追記(2024.6.8)

Robocpyバッチファイルを載せるのを忘れていた

@echo off

rem ミラーリング元
set src="C:\batch\src"

rem ミラーリング先
set dst="\\192.168.10.81\share"
net use %dst% {ここにパスワードを入力} /user:pi

rem ログファイルを作成するフォルダ
set logfolder="C:\batch\log"
set logfile=%logfolder%"\robocopy_%date:~0,4%-%date:~5,2%-%date:~8,2%.log"

robocopy.exe "%src%" "%dst%" /MIR /LOG+:"%logfile%" /COPY:DAT /R:3 /W:3

exit

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1