Raspberry Pi 4でファイルサーバを作成する
Windows11でSMB1.0対応が完全に終了するという事とChromebookからNASに標準機能でアクセスできるように、現在のASUS TUF-AX3000の標準機能ではなく、Raspberry Pi4を使ってNASを構築してみようとチャレンジしてみました。
今回利用するのは、Raspbian OS Lite + OpenMediaVaultです。通常のRaspbianではOpenMediaVaultがインストール出来ませんのでご注意ください。
今回使用する環境
Pi Imagerがあれば別にOSをダウンロードする必要性は無いので、インストールして起動して指示に従って焼き込むだけです。今回は、macOSで作業を行っています。
Raspbian OS LiteはGUIを持たないCUIのOSですが、実際に利用する場合は設定以外では殆ど操作しないので、怖がらずにチャレンジしましょう。今回は有線LANケーブルで接続しています(NASなので無線運用は遅くなるので原則有線LAN運用しましょう)
※2024年10月、Raspberry Pi 5でもチャレンジしましたが問題なく構築することができました。
※Raspberry Pi 3B+は有線LANが1000BaseといってもUSB2.0仕様なので最大300Mbpsしか出ない。Raspberry Pi 4からはUSB3.0仕様でフルスピード出るようになってるのでファイルサーバ構築にはピッタリです(3B+以前は100Baseなので論外)
図:ダッシュボードで環境確認もできる
Reaspberry Piでサーバ構築する意義
ASUS TUF-AX3000があるのだから、自分でわざわざ15,000円も出してラズパイでファイルサーバ構築なんてしなくていいのでは?なんて言ってしまう人がいます。また、BuffaloあたりのNASだっていいじゃんという人も居ますね。構築するには技術が必要ですし、手間も掛かります。
しかし、Raspberry Piで構築する意義は非常に大きいです。
- SDカードを複製すれば環境をすぐに新しいラズパイに再現できるので、ラズパイが壊れても短時間で復旧できる。
- USB3.0ポートが2つあるので、メインのHDDからサブのHDDへのバックアップが容易に取れる。今までは一旦外してmacOS上で2つ繋いでSync!Sync!Sync!で差分バックアップとかやらせてました。
- メインのHDDが破損しても、バックアップのHDDにすげ替えて容易に復旧できる。
- 簡易NASと違い、SMARTといった機能やプラグインで機能拡張することができる(例:DLNAサーバなど)
- ASUS TUF-AX3000はSMB1.0までしか対応していないので、Windows11やChromebookで使う時に困る(両者現在デフォルトで非対応です)。OpenMediaVaultはSMB3.0まで対応してる(これは販売されてる簡易NASでもこういうのが未だに出回ってたりする)
- ディスク容量の確認であったりCPUの負荷状況、ネットワークの状態をモニターすることができる。
- macOS標準のHFS+に対応しててそのままのファイルシステムでマウント可能。もちろんNTFSにも対応してる。
- macOSで利用するTimemachineに対応してるので遠隔バックアップをやらせることが可能。(という事になってるけれど、M1 Macだと全然うまく動作しないばかりかオカシナ不具合が出るので使わないほうがいい)
- RAIDを構築することも可能
- ラズパイなので非常に省メモリであり省エネ。
- Raspberry Pi5の場合相当リソースに余裕があるので、ファイルサーバ以外の仕事も任せようと思えば可能。
などなど。下手なNAS買うよりもトータルでの利便性や可用性を考えるとコストは断然安くつくだけじゃなく、自分でコントロール出来るのが大きな利点。とりわけmacOS使いにとっては利点が大きいので、使わない手はありません。
図:Timemachineで遠隔バックアップ可能らしいが
インストール手順
Pi Imagerで焼き込む
Pi Imagerで焼き込むのはとても簡単です
- Pi Imagerを起動する
- OSの選択では、Raspberry Pi OS(Other)を選び、Raspberry Pi OS Lite(32-bit)を選びます
- SDカードをmacOSに接続して予め、FAT32で全体を初期化しておきましょう
- 書き込むをクリックして待つ
- 書き込みが終わるとSDカードが取り外されるので、そのままRaspberry Piに差し込んで起動するだけ
WiFiの設定やSSHの設定も歯車から行えるので、同時にやっておくと良いでしょう。後からWiFiのSSID設定等をCUIでやらずに済みます。
※BarenaEtcherでもイメージファイルを書き込み可能です。
図:一番手軽な構築手段
OSの設定をする
困ったことに、Raspbian OS Liteはデフォルトのキーボードが英語キーボードで、「パイプ」の入力が出来なかったので、まずはこれをどうにかします。ターミナル画面なので、以下の作業をします。デフォルトのログインは、ユーザ:pi / パスワード:raspberryです
※最新版はRaspberry OS Liteの初回起動時にJapaneseキーボード選択できるようになってるのでこの作業は不要です。
- 以下のコマンドを入力して最低限キーボードの設定のみ変更します
1sudo raspi-config - CUIですがグラフィカルな画面が出るので、5. Localisation Optionsを選択してTabで移動して、SelectをEnter
- L3 Keyboardを選ぶ
- Generic 105-key PC (Intl.)を選ぶ
- otherを選ぶ
- Japaneseを選ぶ
- Keyboard Layoutでは一番上のJapaneseを選択
- このあとの 2つの設定は全てデフォルトのまま、Enterで進める
- 設定が終わると、元の画面に戻るので、Finishを選んで設定を終わらす
SSHにpiユーザを追加しておくと、リモートで操作可能になるので、以下のコマンドを入れておきましょう。Pi Imgerからも設定可能です。基本今後直接Raspberry Piを操作するのはSSHからの操作にして、キーボードやマウスは取り外しておきます。
※最新版だとsshというグループが存在しないようで動作しないので直接sshで接続する
1 |
sudo adduser pi ssh |
OpenMediaVaultをインストール
インストール自体はとても簡単です。ただし最新版は初回起動時にユーザ登録を促されるので、登録したらそのユーザでログインすることになります。
- 有線LAN接続し、Raspberry Piを起動する
- ターミナル画面なので、以下のコマンドを入力して実行。あとは全て全自動でセットアップやインストール作業は行われます。
123wget https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/installchmod +x installsudo ./install -n - 結構時間が掛かりますので終わるまで待ちます。
- 終わったら自動で再起動されます。
この時点では、IPアドレスが固定ではなくDHCPで起動するたびに割り振られる設定になってるので、後でIPアドレス固定化を行っておきましょう。とりあえず、ターミナル画面でIPアドレスを調べておきます
1 |
ip a |
eth0にinetの値として、192.168.50.139みたいな文字があります。これがIPアドレスです。ウェブアクセス時にも使うので控えておきます。
SSH接続
最新版はデフォルトでSSHが使えるようになっているので、セットアップした後はモニタに繋がず、キーボードもマウスも無しの状態で運用するのがベストです。
遠隔でシャットダウンしたり設定をしたい場合には、macOSのターミナルから
1 |
ssh pi@192.168.50.100 |
といったコマンドを打つことで接続します。フィンガープリント云々については、yesと入力してEnterでオッケー。パスワードを入力したらRaspberry PiをmacOSから操作が可能になります。piの部分がユーザで、@以下がラズパイのIPアドレスです。
ただし移行の作業はTerminalは不要なのでこの操作はラズパイ自体に何か変更を加えたい場合に使う手段になります。
図:ターミナルからSSHで遠隔操作が基本
シャットダウン
ラズパイをシャットダウンしましょう。ターミナル画面から以下のコマンドを入れてから電源を切断するようにしないと、NASが破損する可能性もありますので要注意。
1 |
sudo shutdown -h now |
設定関係
システム設定
初期設定を変更する
macOSのChrome上から「http://IPアドレス」を実行して開くと妙に格好いいログイン画面が出てきます。以下のID/PASSで入ります(httpsじゃないので注意)。
- UserName : admin
- Password : openmediavault
まずは、右上のユーザアイコンからLanguage => Japaneseに変更して、UIを日本語に変更します。また、パスワードの変更をクリックして、デフォルトパスワードを変更しておきましょう。
図:クールなログイン画面
図:まずは日本語UIに変更する所から
タイムゾーンの設定
他にも変更する必要のある場所があります。
- システム⇒日付と時刻を開く
- タイムゾーンがEurope/Londonになってるので、これをAsia/Tokyoに変更する
- 時刻サーバは国内の「ntp.nict.jp」に変更する
- 保存を実行する
図:タイムゾーンがヨーロッパになってるので
アップデートの実行
システム⇒アップデート管理を開き、アップデートを実行すると、OpenMediaVaultのいろいろなアプデが表示されます。OSのアップデート等も出てくるので、ここで一括で最新の状況にしておくと良いでしょう。一番最後に作業をすれば良いと思います。
図:定期的にアプデを実行しておきましょう
図:アップグレード中の様子
ネットワーク設定
ここで行う作業は、IPアドレスの固定化です。これを行わないと、起動するたびにIPアドレスが変更されてしまうので、必ず行っておきましょう。
- ネットワーク⇒インターフェースを開く
- +アイコンをクリックして、イーサネットを選択します。
- デバイスはeth0を選択する
- IPv4のメソッドをスタティックに変更
- アドレスは自分の環境は192.168.50.xの割当になってるので、192.168.50.100辺りに設定しておきました(自動割当で他のデバイスに被らないであろうアドレスの為に)
- ネットマスクは255.255.255.0を指定
- ゲートウェイはこのラズパイがぶら下がってるルーターのアドレスなので、192.168.50.1としておきました。
- 保存をクリックする
- 右上に警告が出るので、クリックして、適用をクリックする。
- だいぶ待たされますが辛抱強く待ちます。
- OpenMediaVault側は503エラーの画面になります。
- 自動再起動はされないので、ラズパイ側で以下のコマンドで再起動する
-
1sudo shutdown -r now
- ラズパイの再起動が終わったら、http://192.168.50.100にアクセスしてみるとログイン画面になるのでログインする
- 何故か言語設定がまた英語に戻ってるので、UIを日本語に戻す
これでIPアドレスが固定化されたので、以降は192.168.50.100でアクセスできるようになり変更されることがありません。
図:IP固定化はマストです
ストレージ設定
まさか、SDカードだけでNAS運用はありえないので、ここで外付けHDDを接続してNASの母体とします。設定する前に、ラズパイに外付けHDDを接続します。新規追加ではHFSPLUSは無いのですが、既存のHDDがHFSPLUSならばマウントはできるので、その手順で今回はHFS+のディスクを追加してみます。
- HDDを接続させてちょっと時間を於いたら、ストレージ⇒ディスクを開く
- 目当てのディスクが表示されていたら認識されてるのでOK
- 次に、ストレージ⇒ファイルシステムを開く
- ▶️アイコンをクリックして、ディスクを選択しマウントを実行。対応してるファイルシステムはこちら。
- ファイルシステム選択で、先程認識された/dev/sdaを選ぶ。閾値は空き容量が指定値を超えた場合に警告を出す値です。
- 保存をクリック
- ここでまた黄色の警告帯が出るので、✔をクリックして、「はい」で反映する
- 次に、ストレージ⇒共有フォルダを開く
- 右上のプラスアイコンをクリックして、名前を適当に入れ、ファイルシステムを選択。
- Releative Pathの右端のアイコンをクリックして、HDD以下のフォルダを選択する
- 保存をクリックする。これをHDD直下のフォルダの数だけ繰り返す
- ここでまた黄色の警告帯が出るので、✔をクリックして、「はい」で反映する
後で、ユーザを追加するので、再度各ユーザ毎の権限設定を追加しておくと良いでしょう。但し、通常はHDD直下のフォルダはマウントが出来ないので、共有フォルダではHDD以下のフォルダを全部指定して、共有するような形を設定に追加しなければなりません。
図:ファイルシステムの図
図:マウントした図
図:共有フォルダ設定
ユーザ設定
現時点だと、ユーザは初回起動時に登録したユーザが登録済みです。ここに、ユーザのIDを追加で登録していきます。
- ユーザ⇒ユーザを開く
- プラスアイコンをクリックして、作成をクリックする
- 名前、メアド、パスワードの設定のみでOK。必要ならばグループ設定等細かい設定も可能になっています。
- 黄色い帯が出るので、✔をクリックして、「はい」を実行する
- これでユーザが新規に追加された
図:ユーザを追加しておく
サービス設定
Windows等からアクセス可能にしておく為に以下の設定を追加しておきます。この設定をしないと、前述共有フォルダで追加した各種フォルダ類がログオンできても出てこなくなってしまいます。
- サービス⇒SMB/CIFSをクリック
- 有効にチェックを入れる。ワークグループはデフォルトのWORKGROUPのままでOK
- 保存をクリックする
- 黄色い帯が出るので、✔をクリックして、「はい」を実行する
- 更に同じセクションの共有タブをクリックする
- プラスアイコンをクリックして、有効にチェックを入れ、共有フォルダで先程設定したフォルダを選択する。共有フォルダで設定した分だけ、全て繰り返し作業で1つずつ登録していく。
- 黄色い帯が出るので、✔をクリックして、「はい」を実行する
- 何故か、Timemachineサポートがあります。
macOSの場合、ネットワークに「raspberrypi - SMB/CIFS」として出てくるようになります。
また、高度な設定に於いてはデフォルトでMinimum Protocol VersionがVersion2が指定されていますが、3に変更することも可能です。SMB3に変更時は上部の適用を実行が必要になります。
図:これを有効にしないとネットワークに出てこない
図:この設定をしないと、ログインできてもフォルダが表示されない
図:SMB3に変更してみた
その他の設定
SMART情報がエラーで表示されない
HDDの健康状態を表示してくれるSMARTの機能がOpenMediaVaultには標準で備わっています。現在使っているのは、Western DigitalのWD HC510 10TBです。早速と思って、左サイドバーからストレージ→S.M.A.R.Tを開いて詳細情報を開いたら盛大に真っ赤なエラーが表示されました。
そこで調べてみると以下の手順でこのトラブルを修正できました。HDDは/dev/sdaとなります。
- SSHでraspberry piに接続する
- 以下のコマンドを実行し、最初のほうにある「/dev/sda: USB bridge」の所にある「0x152d:0x0539」の部分が自分のUSBコントローラのデバイスIDとなります。
1sudo smartctl -x /dev/sda
sudo lsusbでも調べられます。この場合、152d:0539と表示されるので、0xをそれぞれの頭につけると良いです。この値を控えておきます。 - 次に、ターミナルでファイルを作成します。
1sudo nano /etc/smart_drivedb.h - nanoが起動して空っぽのファイルが作成されるので、以下の内容を記述します。
123456{ "USB: ; EMTEC X200","0x152d:0x0539","","","-d sat"}
0x152d:0x0539の部分が2.で取得したデバイスIDになりますので、ここに書き込みます。 - Control+oを実行し保存し、Control+xでnanoを終了します。
- 最後に以下のコマンドをターミナルで実行します。
1sudo systemctl restart smartmontools.service - 再度、OpenMediaVaultのSMARTのページを開くとエラーにならずにきちんとデバイスの情報が出てくるので、詳細情報を開くと様々なHDDの状態の情報が得られました。
図:USBのデバイスIDを調べる
図:SMART情報が収集出来ました。
図:ダッシュボードもきちんと表示された
プラグインをインストールしようとしたらエラー
openmediavault-borgbackupというバックアップ用のプラグインを追加してみようと思い、OpenMediaVault上でインストールをしたら、また真っ赤な赤いダイアログが出てエラー。SSHで接続してそもそもsudo apt update自体が「Failed to execute command」「Temporary failure resolving」というエラーでアプデが出来なかった。
ということで、以下の処置をしてみたところ解決してプラグインのインストールが出来るようになりました。
- SSHでRaspberry Piに接続する
- 以下のコマンドを実行してみてgoogle.comにpingが通るかチェック
12345sudo -secho "nameserver 8.8.8.8" >> /etc/resolv.confchmod 644 /etc/resolv.confexitping google.com - これで駄目な場合は、OpenMediaVaultの管理画面に入る
- 左サイドバーからネットワーク→インターフェース→eth0をクリックして、編集をクリックしてを開く
- 高度な設定の中にあるDNSサーバーに8.8.8.8を入力して保存する
- 上部の✔をクリックして「はい」をクリックする
これで再度、システム→プラグインを開き、openmediavault-borgbackupを検索してインストールすると無事にインストール出来ました。
図:DNSに値を入力する
図:無事にインストール出来た
通知機能を使う
SMTPリレーサービス
Raspberry PiおよびOpenMediaVaultの各種項目についてSMTP経由で通知を送る機能が装備されています。何か障害があればメールから察知することが可能になるので、早めに処置をすることが可能です。
今回はGoogle WorkspaceのGmailのSMTPリレーサービスを使ってみようと思います。詳細な設定方法は以下のエントリーを参考にしてください。事前にアプリパスワードを取得しておく必要があります。
また、今回はSMTPリレーとしては
- SMTP認証を必須
- TLSによる暗号化を必須
として設定しています。
OpenMediaVaultに設定する
OpenMediaVaultにログインして以下の手順でセットします。
- 左サイドバーから通知→設定を開きます。
- 上部の有効にチェックを入れて、SMTPサーバーには「smtp-replay.gmail.com」を入力(フリーアカウントの場合はsmtp.google.com)
- TLSを使ってるのでポート番号は587を指定
- 暗号化モードは自動で設定
- 送信者のメールアドレス、ユーザ名、レシピエントのプライマリメールには自身のGWSのメアドを指定
- 認証を要求にチェックを入れる
- パスワードには生成しておいたアプリパスワードを入力する
- 一旦右下の保存をクリック
- 上部に黄色い帯が出てくるので✔をクリックして「はい」をクリックする
- この後、テストをクリックして自身にテストメールが届いたら成功。ちょっとだけ時間経過して届きます。
図:通知用のSMTP設定
図:通知される内容
通知内容
前述で通知される内容としては、OpenMediaVaultのシステムに関するものが列挙されていました。しかしこれ以外にも
- ログインに関する情報
- Raspberry PiのOSのアップデートに関する情報
などについても実はアプデ通知が飛んでくるようになります。またそれだけではなく、アップデートではOpenMediaVaultのプラグイン等のアップデートだけじゃなく、このOS本体のアップデート(eepromなど)についてもGUI上からできるようになっています。よって、別途SSHでログインして・・・なんてやらなくても問題有りません。
図:アップデート通知がメールで届く
図:OMV上からOSのeepromをアプデ
システムのバックアップを取る
OpenMediaVaultの入ってるSDカードについてフルバックアップを取ることをオススメします。なにかあった時に別のSDカードに復元したり、破壊してしまった場合に元に戻す場合にもバックアップを取っていれば速やかにファイルサーバを復旧出来ます。しかし、OpenMediaVaultにその機能はなく、またmacOSのコマンドラインからddコマンドで取る手法もありますが、今回はApplePi Baker V2というGUIのツールでバックアップを取ってみます。
インストールした後に手動でシステム設定のプライバシーにあるフルディスクアクセスにて手動でこのApplePi Bakerに許可を与えておきましょう。
- OpenMediaVaultからまずシャットダウンしておきます。
- SDカードを抜いて、リーダーなどを使ってmacOSに接続します。
- ApplePi Baker V2を起動して、Select DiskをクリックしSDカードを選択します。
- Disk to Fileをクリックして保存場所を指定します。保存形式をいくつか選べますが、今回はIMG形式で保存しています。
- Saveをクリックするとバックアップ開始。中身はDDコマンドでバックアップ取ってるのと同じです。
- バックアップしたものはファイルサーバにでも保存しておきましょう。
復元はBarena Etcherなどで復元することが可能です。もちろんこのツールで逆に復元も出来ます。結構いろいろなシーンで使えそうなRaspberry Pi使うなら持っておきたいツールです。
図:手動でフルディスクアクセスの許可追加
図:イメージバックアップを取る
ディスクのバックアップ
概要
自分自身、10TBのHDDを2台用意して1台はOpenMediaVaultのファイルサーバ用として、もう一台は定期的なバックアップ用に利用しています。ファイルサーバ用はHFS+にて、バックアップ用はexFATにてファイルシステムをフォーマットしております。
これまではmacOS上で2台をつなげてSync!Sync!Sync!にて差分バックアップを取っており、その度にHDDをルータから取り外してはmacOSに2台を繋げてといった処理をしていました。これが大変手間なので、今回OpenMediaVaultの標準機能で「差分バックアップ」できないか?調査しました。
ディスクを追加する
標準機能のRsyncを利用してバックアップを取るのですが、HDDをRaspberry Piのポートに繋げば設定できるということにはならないです。ファイルサーバ用のディスクを追加した時と同様にまず、ファイルサーバとして使える用に設定が必要です。
- あらかじめ、バックアップディスク側にファイルサーバのルート直下のディレクトリと同じディレクトリ構成を作っておきます。サブディレクトリは不要です。
- ストレージ→ファイルシステムにて、2つ目のディスクをマウントします。
- ストレージ→共有フォルダにて、2つ目のディスク内のフォルダを1つずつ追加(但し同じ名前は使えないので、bk_testのようにbk_を頭につけると良い)
- 既存ユーザに3.のフォルダに対してパーミッションは設定不要です。
- サービス→SMB/CIFS→共有にて、3.同様に作成したbk_testを追加してあげます。
ここまでで、ディスクとしての準備はオッケーです。
バックアップタスクを追加する
ファイルサーバを開くとディスクは2つでも、ディレクトリは一緒になって表示されWindowsのようにドライブで分かれていたりはしません(UNIX特有のものです)。
故にソースディレクトリ→ターゲットディレクトリへのバックアップを行うタスクを作る必要があります。
- サービス→Rsync→タスクを開きます。
- +ボタンの作成をクリックする
- Source Shared Folderにはファイルサーバ側の特定のディレクトリを指定します。
- Destination Shared Folderにはバックアップ側の特定のディレクトリ(bk_testなど)を指定します。
- 時間等を指定して定期自動実行ができますが今回はスポットなのでスルーします。
- 下の方にあるオプションはデフォルトのままでオッケーです(ただし削除をチェックを入れると完全同期になるので、ファイルサーバ側で削除されてるものは、バックアップ側でも削除されるようになります)
- 保存をクリックする
Windowsの場合はあまり無いかもしれないのですが、macOSの場合、ディレクトリに色々と隠しファイルやらドットファイルやら、.DS_Storeやらが自動的にできてしまい、このままバックアップをするとOperation Permittedというエラーが出て同期できませんでした的なエラーが出ます。実際には眼に見えるファイルは全部同期されてるので問題ないのですが、気持ちが悪い。
故に、追加オプションとして、以下のような文言を自分は追加しています。追加オプションに関する公式ドキュメントはこちら。これでエラーなく綺麗にバックアップが取れます。
1 |
--no-o --no-g --no-perms |
図:タスクを作成中の様子
図:追加オプションを指定
差分バックアップを取る
作成したタスクを手動で実行してみます。今回はソース元およびターゲット先どちらもファイルサーバ上で見えるようにして、バックアップできているか?確認できるようにしています。
実行手順は簡単です。タスクの画面上にあるタスクを選択して、▶️の実行ボタンをクリックするだけ。
ターミナルな画面が出て進行状況を確認できます。まず初回バックアップをしてみます。全てのものがコピーされるので時間が相当に掛かると思います。
次に、ソース元に1個だけファイルを追加し、再度タスクを実行するとあっという間に完了します。デフォルトで差分バックアップとなっているので、1回目のように時間が掛かることがありません。The synchronisation has completed successfully.と出れば成功です。ターゲット先に確かにコピーされていました。
ディレクトリ単位で追加しバックアップしたいタイミングで手動で行うか?自動的に行わせるか?はあると思いますが、問題なのは共有で追加していたりするので、ディスクをアンマウント出来ないです。するためには追加した共有設定・バックアップタスク等を削除が必要になってしまうので、バックアップ用のディスクは常に稼働し繋げておく必要性があります(ここが悩ましいところ。自分はバックアップディスクは回し続けたくないので、バックアップ完了後に外すので)。
図:バックアップ完了
DLNAサーバ
プラグインを追加することで、OpenMediaVaultにてDLNAサーバを構築することが可能です。プラグインの導入は至って簡単。
- 左サイドバーからシステム→プラグインを開く
- minidlnaで検索して出てくるプラグインを選択し、インストールを実行する
- インストールが完了すると左サイドバーのサービスの下にMiniDLNAとして出てくる
設定自体も非常に簡単です
- MiniDLNAの設定を開く
- 有効にチェックを入れて保存をクリックする
- 適当なサーバー名を入れる
- 黄色い帯が出たら✔︎をクリックして反映する
- 次に共有をクリックする
- 左上の+ボタンをクリックして追加する
- 共有フォルダを選択では、すでにOMVに登録済みの共有フォルダ一覧が出てくるので選択する(ルートフォルダしか選べない)
- メディアは「すべてのメディア」でオッケー
- 保存をクリックして、
- 黄色い帯が出たら✔︎をクリックして反映する
登録してもすぐにDLNAクライアントにすぐ出てくるわけじゃないので、しばらく時間が必要です。今回は試しにBubbleUPnP for DLNA/Chromecastをスマフォに入れて接続してみました。
- 右下のLibraryをクリックしたら、上部にあるプルダウンから自分が設定したサーバー名が出てくる
- 画面上部のBrowseをクリックすると登録したフォルダが出てくる(出てきていない場合は、一旦アプリを終了させる)
- 出てくると登録したフォルダ内の動画や音楽を開くことができる
- Now Playingのレンダリング先は基本Local Rendererを選択しますが、ここからFire TV Stickなどを選ぶ場合は、上部のキャストのアイコンをタップして選ぶ
- 再生が開始される
他のRendererを指定するとスマフォをリモコンとして、他のデバイスに再生できるのがDLNAの良いところ。ファイルサーバを開いて直接MX Playerなどで開くのも良いのですが、
図:MiniDLNAのインストール
図:DLNAクライアントで開く
実際に使ってみる
Finderから接続
Finderからネットワークを開いて「raspberrypi - SMB/CIFS」をダブルクリック、別名で接続するか?Finderのメニューから移動⇒サーバへ接続にて、「smb://192.168.50.100」で接続をします。
許可を求められるので、「接続」をクリックし、ユーザIDとパスワードをセットします。キーチェーンに保存しておけば、次回以降はログイン画面は出てこなくなります。
他にもFTPやらNFSやらの設定もあり、単純なSambaでファイルサーバを組むよりも遥かに使いやすく、下手な市販のNASを買うよりも高機能です。一度設定してしまえば、SDカードのバックアップを取っておけば壊れてもすぐに差し替えができる点も強みです。
図:IPアドレス直で接続するか?ネットワークから開くか
図:無事にフォルダを開けた
マウントできない問題
M1 MacのMontereyでは全く問題なくマウントできたのですが、なぜか同じMontereyのIntel Macでは接続で問題が起きたと称して、接続できず。別名で接続もできずに困り果てました。
どうもこの問題、BigSurから発生してるトラブルで、macに新しいアカウントを作って接続すると全く問題なく接続できるのに、長年アプデを重ねてきたアカウントだと、このsamba broken問題が発生するケースがあるようで。
色々試してみた結果、以下の手順で修復することが可能です。
- ターミナルを起動する
- 以下のコマンドを実行する
12echo "[default]" | sudo tee -a /etc/nsmb.confecho "protocol_vers_map=2" | sudo tee -a /etc/nsmb.conf
/etc/にnsmb.confを作成して、smb v2プロトコルに固定して接続する設定のようです。 - 再度、finderから接続するとゲスト接続し、別名で接続もきちんと機能してマウントできました。
図:非常に厄介な問題
オリジナルの項目が見つからないため、操作を完了できません
さて、無事に入れたわけですが、今度は「オリジナルの項目が見つからないため、操作を完了できません」と出て、ファイルの読み出しができず、コピーができませんでした。
なぜ、M1 Macでは問題ないのに、Intel Macではこの問題が出るのかわかりませんが、以下の設定を行ってファイルにアクセスできるようになりました。
- OpenMediaVaultにて、別のユーザアカウントを作成する
- ストレージ⇒共有フォルダを開く
- 対象のフォルダを選び、ツールバーの特権アイコンをクリックする
- 対象のアカウントに対して、パーミッションのRead/Writeをクリックしてオンにする
- 保存を実行する。これをフォルダの数だけ繰り返す
図:厄介な問題2
HFS Plus特有の問題
自分の環境がまさにこれなのですが、以前から発生していたことでもありますが
- 一部のディレクトリが権限はあるのに、「項目を読み出すアクセス権限がない」と表示されてコピーや上書きが出来ない
- 一部のディレクトリに⛔️マークがついて開くことも読み出すことも出来ない
ということが発生しています。FirstAidsを掛けてみたりしましたが解決せず。なので、この場合は対象のディレクトリ単位で一旦削除して、改めてHDDに作成し直すことで直ります。よって一旦Raspberry Piをシャットダウンして取り外しmacOS側に接続して作業が必要になります。
NTFSやExFATなどの場合には発生しないようです。ディスク上でも問題が見受けられないのですが・・・ディレクトリに対して追加はできているので、ファイル個別に問題が発生してるようです(特にVMware Fusionの仮想マシンのファイルで発生してる)。
図:このようなエラーが出るディレクトリがある
Chromebookから接続
macOSからの接続や、Android、Fire TV Stick / Chromecastは無事にできました。しかし一番の目的であるChromebookのファイルアプリからファイルサーバに接続できるか?実際にやってみました。
ルーター接続のHDDの場合、古いSMB1.0であるためFile System for Windowsが必要でしたが、今回のファイルサーバの場合標準機能のSMB接続で自動的にファイルサーバを認識してどのフォルダをマウントするか?ID/PWを入力して接続するだけで問題なく中身を操作することができました。
もちろんCX File Explorerを使っての接続も難なく可能です。
図:リストに自動で出てくる
ディスクが全部読み取り専用になる問題
何がきっかけだったのかは不明ですが、一般的にOSのアップグレード、ディスクの着脱、着脱時にきちんとアンマウントしなかった等が原因で、それまで読み書きの出来ていたOpenMediaVaultの全ての共有フォルダが読み取り専用になってしまいアップロード出来ない現象に遭遇しました。(AndroidからもmacOSからもWindowsからもアクセス出来ないのでクライアント側の問題じゃない)
そこで以下のいくつかの処置をしてみた所問題なく復旧できました。
- 一旦共有フォルダすべてをOpenMediaVault上から削除(実際のディスク上のフォルダが削除されるわけじゃない)、ディスクをアンマウントして取り外す
- macOSにつなげてディスクユーティリティ上からFistAidでディスクを全てチェック(問題は検出されず)
- 一応フルバックアップを取って再度Raspberry Piに接続
- SSHでターミナルからRaspberry Piに接続し、以下のコマンドを実行する
1sudo omv-firstaid - この中で、5, 7, 8, 9を実行し完了させる(多分、9が効果あるようだ)
- 改めて、OpenMediaVault上でディスクをマウントし、共有フォルダを追加し、ユーザにパーミッションを再設定の一連の作業を行う
- 実際にアクセスしてみて、ファイルの追加ができれば成功。
何かの拍子で、OSレベルでディスクがReadOnlyになってしまったようで、/etc/fstabなどを調べてみたりしたもののわからず。redditでは、以下のコマンドを実行して強制再マウント→再起動してみたら?とありましたが、今回はこれは実行していません。
1 2 |
sudo mount -o remount, rw / touch /forcefsck |
Raspberry Piの弱点は軽すぎてケーブルなどの接触で外れやすい点なので、なるべく人の手の届かない所で尚且つ安定的な状態で固定して利用するようにしましょう。
また、OSのアップデートやプラグインの追加、停電やアンマウントせずに取り外す、OMVで大きな設定変更やプラグインの追加などがあった場合には遭遇しやすいので要注意です。
図:omv-firstaidでチェックする
macOS 15.x SequoiaでTimemachine先として使えない
メインマシンはmacOS 15.xのSequoiaにバージョンアップしてあるのですが、仕事用マシンはSonomaのままにしてあります。SonomaのマシンではOMVのTimemachineサポートしたフォルダに対して、バックアップ指定もバッチリ出来ているのですが、Sequoiaについてはメインのマシン理由は不明ですが、VMで立てたマシンからはなぜか接続出来る・・・・
ユーザー名が・・・みたいな内容は自分には当てはまらず。AppleのコミュニティにあったようにFirewallをオフにしてみても症状は変わらず。現在接続が出来ていない状況が続いています。
この原因ですが、自分の場合こちらのサイトにあるように特定のファイルを削除することで回復することが出来ました。以下のコマンドをターミナルから実行します。
1 |
sudo rm /etc/nsmb.conf |
再度、Timemachine設定してみたら、見事に成功しました。しかし、今度はバックアップを実行してみたら失敗する・・・Firewallはオフにしてあるのに・・・原因のさらなる追求が必要です(SonomaのVM内でも失敗してるのでOMV側の問題の可能性もありえる)
※また不可解なことにどこかのフォルダをTimemachine Supportをオンにすると無関係のフォルダでファイルをリネームしようとしたりフォルダを新規作成時に名前をつけようとするとコード43のエラーで「操作を完了できません」エラーが出て名称未設定になったりする問題がある。現状このTimemachineサポートは使わないほうが良いかもしれん。
※Sambaとしては使えるけれどTimemachineをオンにするとオカシナ挙動になる件はここでも語られてる。オプション追加設定をしなければならないらしいが、Montereyから続くAppleのSMBの魔改造が原因の模様で解決する見込みが無いようだ。
図:どう頑張ってもつかえない
図:VMのSequoiaからはつながる・・・
図:無事に復旧出来ました。
図:けれどリネーム出来なくなるおかしなエラー
関連リンク
- 第41回「見た目も中身もコンパクトに!Raspberry Pi ZeroをCUI環境で動かそう」
- ファイル共有プロトコル、SMBとCIFSの違いを正しく理解できていますか?(前編)
- macだけでRaspberry Piに接続してみた
- ラズパイで自宅ファイルサーバを作る ~自作NAS「openmediavault」編~
- Windows で SMBv1、SMBv2、および SMBv3 を検出、有効化、および無効化する方法
- macOS Big Sur でNASやファイルサーバに接続できない時の対処法
- AVM FRITZ!Box: SMB-Problem mit macOS 12 Monterey und wie man es behebt
- macOS で SMB 1 や NetBIOS を無効にする方法
- [Catalina] オリジナルの項目が見つからないため、操作を完了できません。
- How to Create a NAS with Raspberry Pi 5
- rsyncだけで実現する!ファイルのバックアップ手法6選 【コマンド例編】
- Raspberry Pi 4をopenmediavaultでNAS化したら、SeagateのHDDのSMARTが取得できず、悪戦苦闘して解決した
- Rpi4: s.m.a.r.t does not show devices #1703
- Allow options like device type for smartctl to be selected in S.M.A.R.T GUI #1667
- Raspberry Pi で Btrfs HDD を SMARTテストする
- raspbian buster InRelease Temporary failure resolving
- How to backup OMV System/configuration
- fix problems with TimeMachine backup on openmediavault – set up and troubleshooting
- MacでmicroSDカードのバックアップとリストア
- ApplePi-Baker v2 – Backup & Restore SD cards, USB drives, etc.
- Time Machine support option frags permissions to copy/delete on all OMV SMB shares
- Configure Samba to Work Better with Mac OS X
- フリーNASのOpenMediaVaultにPaperless-NGXを構築する
- CasaOSで自分NASを構築する
- RaspberryPiにパーソナルクラウドOS「CasaOS」を導入する
- TrueNAS SCALEを使ってNAS+サーバーを作ってみる ストレージ構築編
- 『なんでDLNAなんでしょうか?』 のクチコミ掲示板
- No permission to write on sub-folder of a drive hfsplus filesystem shared as shared folder