🌎

OpenWrtのインストール済みルーター:Sambaでネットワークストレージ設定、そして、詰まったところ

2024/08/11に公開

はじめに

OpenWrtのインストール済みルーターの設定をいじっています。
前回、IPアドレスごとに速度制限をかけることができました。

https://zenn.dev/takudooon/articles/843ddac877bf4e

今回はネットワークストレージを設定してみました。
使用したルーターにはUSB-Aのポートが付いており、ストレージを接続することができます。
本記事では、設定する上での手順や詰まったところ、その解決方法について説明します。

環境

要点

  • MacからSambaで構築したファイルサーバーにファイルをコピーするには、ストレージをext4のファイルシステム形式に変更する必要があった

手順

  1. ストレージをルーターのUSBポートに接続
  2. ルーターの管理画面の「ネットワークストレージ」画面でストレージが認識されていることがわかります。そして、「Sambaを有効にする」をオンにします。

  1. ユーザーの作成を行います。「追加する」 から任意のユーザー名とパスワードを入力します。

  1. 共有フォルダの作成設定をします。「追加する」 から設定を行う、先ほど作成したユーザーを「読み書き可能なユーザー」もしくは「読み込み限定ユーザー」に追加し適用します。すると、フォルダーへのアクセスリンクが発行されます。

  1. Macからの接続する場合、「移動」→「サーバへ接続」から先ほど発行されたアクセスリンク(Unix-like Samba、smbから始まるリンク)を入力し、さらにユーザー名とパスワードを入力します。すると、共有フォルダにアクセスできます。

詰まったところ

いざ、Macからファイルをコピーしてみたところ、下記のようなエラーが出ました。
ファイル容量が0バイトとなり、コピーに失敗しています。

予期しないエラーが起きたため、操作を完了できません(エラーコード-50)。

Luciの管理画面のログを確認したところ、このようなエラーが出ていました。

fruit_pwrite_meta_netatalk: ad_pwrite [test.jpg:AFP_AfpInfo] failed

試したこと

ストレージのフォーマットの変更:exFAT → HFS+ (失敗)

exFAT(Windows/Macに両対応)からHFS+(Mac OS 拡張(ジャーナリング)、Macの標準的なフォーマット)に変更してみました。しかし管理画面では「ERR FS (Error File System)」と出ており、HFS+は適していないようです。

ストレージのフォーマットの変更:ext4 (成功)

さきほどのエラー文で調べたところ、GL.iNetのコミュニティーページで同様の書き込みがありました。

https://forum.gl-inet.com/t/smb-share-and-failed-write-from-macos/42901/5

それによると、ext4に変更すると解決するとのことでした。

そこで、ストレージをext4に変更しました。
変更にはe2fsprogsを利用します。

brew install e2fsprogs

でインストールし、

diskutil list

で、フォーマット先を探します。そして、フォーマット先のディスク名を指定して下記のコマンドを実行します。
参考:Formatting an external hard drive in ext4 from my mac

sudo $(brew --prefix e2fsprogs)/sbin/mkfs.ext4 /dev/{$DISK_NAME}

実行した際、

Resource busy while setting up superblock

と出た場合、一度、

diskutil unmountDisk {$DISK_NAME}

フォーマット先をアンマウントします。
そして、再度、コマンドを実行します。

Creating filesystem with 62514774 4k blocks and 15630336 inodes
Filesystem UUID: /* 省略 */
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
	4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks):done
Writing superblocks and filesystem accounting information: done

すべて「done」となれば成功です。
管理画面からフォーマットを確認すると、「EXT4」と表示され変更されたことが確認できます。
※ディスク管理に何も表示されない場合は、ルーターを再起動しましょう。

これで、エラーが出ることなくストレージにファイルをコピーできるようになりました。

おわりに

ストレージのフォーマットをext4に変更することで、Macからストレージへファイルをコピーできるようになりました。

これでスマートフォンからファイルサーバーへアクセスできるようにすることで、ファイルのやりとりを行えるようになりました。

この設定ままだと、同一ネットワーク内でしかファイルのやりとりできません。
そのため出先の外部ネットワークからアクセスしたい場合は、VPNの導入検討した方が良いです。
余談ですが、筆者はTailscaleを使っています。

https://tailscale.com/

ネットワークストレージを導入したことで、スマートフォンで撮影した画像や動画ファイルの一時置き場として、Google Driveの代わりに活用できそうです。またその他の活用方法も考えていきたいです。

Discussion