OpenWrtのインストール済みルーター:Sambaでネットワークストレージ設定、そして、詰まったところ
はじめに
OpenWrtのインストール済みルーターの設定をいじっています。
前回、IPアドレスごとに速度制限をかけることができました。
今回はネットワークストレージを設定してみました。
使用したルーターにはUSB-Aのポートが付いており、ストレージを接続することができます。
本記事では、設定する上での手順や詰まったところ、その解決方法について説明します。
環境
- ルーター
- OpenWrt
- バージョン 21.02
- ストレージ
- Logitec SSD LMD-SPE025UAC
- USB-C/A両対応で便利
要点
- MacからSambaで構築したファイルサーバーにファイルをコピーするには、ストレージをext4のファイルシステム形式に変更する必要があった
手順
- ストレージをルーターのUSBポートに接続
- ルーターの管理画面の「ネットワークストレージ」画面でストレージが認識されていることがわかります。そして、「Sambaを有効にする」をオンにします。
- ユーザーの作成を行います。「追加する」 から任意のユーザー名とパスワードを入力します。
- 共有フォルダの作成設定をします。「追加する」 から設定を行う、先ほど作成したユーザーを「読み書き可能なユーザー」もしくは「読み込み限定ユーザー」に追加し適用します。すると、フォルダーへのアクセスリンクが発行されます。
- 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のコミュニティーページで同様の書き込みがありました。
それによると、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を使っています。
ネットワークストレージを導入したことで、スマートフォンで撮影した画像や動画ファイルの一時置き場として、Google Driveの代わりに活用できそうです。またその他の活用方法も考えていきたいです。
Discussion