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運用しましょう)

インストール手順

Pi Imagerで焼き込む

Pi Imagerで焼き込むのはとても簡単です

  1. Pi Imagerを起動する
  2. OSの選択では、Raspberry Pi OS(Other)を選び、Raspberry Pi OS Lite(32-bit)を選びます
  3. SDカードをmacOSに接続して予め、FAT32で全体を初期化しておきましょう
  4. 書き込むをクリックして待つ
  5. 書き込みが終わるとSDカードが取り外されるので、そのままRaspberry Piに差し込んで起動するだけ

WiFiの設定やSSHの設定も歯車から行えるので、同時にやっておくと良いでしょう。後からWiFiのSSID設定等をCUIでやらずに済みます。

図:一番手軽な構築手段

OSの設定をする

困ったことに、Raspbian OS Liteはデフォルトのキーボードが英語キーボードで、「パイプ」の入力が出来なかったので、まずはこれをどうにかします。ターミナル画面なので、以下の作業をします。デフォルトのログインは、ユーザ:pi / パスワード:raspberryです

  1. 以下のコマンドを入力して最低限キーボードの設定のみ変更します
  2. CUIですがグラフィカルな画面が出るので、5. Localisation Optionsを選択してTabで移動して、SelectをEnter
  3. L3 Keyboardを選ぶ
  4. Generic 105-key PC (Intl.)を選ぶ
  5. otherを選ぶ
  6. Japaneseを選ぶ
  7. Keyboard Layoutでは一番上のJapaneseを選択
  8. このあとの 2つの設定は全てデフォルトのまま、Enterで進める
  9. 設定が終わると、元の画面に戻るので、Finishを選んで設定を終わらす

SSHにpiユーザを追加しておくと、リモートで操作可能になるので、以下のコマンドを入れておきましょう。Pi Imgerからも設定可能です。基本今後直接Raspberry Piを操作するのはSSHからの操作にして、キーボードやマウスは取り外しておきます。

OpenMediaVaultをインストール

インストール自体はとても簡単です。

  1. ターミナル画面なので、以下のコマンドを入力して実行。あとは全て全自動でセットアップやインストール作業は行われます。

    sudo bashの前の「パイプ」は、Shiftキー + ¥マークで入力できます。
  2. 結構時間が掛かりますので終わるまで待ちます。
  3. 終わったら自動で再起動されます。

この時点では、IPアドレスが固定ではなくDHCPで起動するたびに割り振られる設定になってるので、後でIPアドレス固定化を行っておきましょう。とりあえず、ターミナル画面でIPアドレスを調べておきます

eth0にinetの値として、192.168.50.139みたいな文字があります。これがIPアドレスです。

SSH接続

Pi Imagerやadduserでユーザを別途追加していた場合、SSHが使えるようになっているので、セットアップした後はモニタに繋がず、キーボードもマウスも無しの状態で運用するのがベストです。

遠隔でシャットダウンしたり設定をしたい場合には、macOSのターミナルから

といったコマンドを打つことで接続します。パスワードを入力したらRaspberry PiをmacOSから操作が可能になります。piの部分がユーザで、@以下がラズパイのIPアドレスです。

図:ターミナルからSSHで遠隔操作が基本

シャットダウン

ラズパイをシャットダウンしましょう。ターミナル画面から以下のコマンドを入れてから電源を切断するようにしないと、NASが破損する可能性もありますので要注意。

設定関係

システム設定

初期設定を変更する

macOSのChrome上から「https://192.168.50.139」を実行して開くと妙に格好いいログイン画面が出てきます。以下のID/PASSで入ります。

  • UserName : admin
  • Password : openmediavault

まずは、右上の歯車からLanguage => Japaneseに変更して、UIを日本語に変更します。また、パスワードの変更をクリックして、デフォルトパスワードを変更しておきましょう。

図:クールなログイン画面

図:まずは日本語UIに変更する所から

タイムゾーンの設定

他にも変更する必要のある場所があります。

  1. システム⇒日付と時刻を開く
  2. タイムゾーンがEurope/Londonになってるので、これをAsia/Tokyoに変更する
  3. 時刻サーバは国内の「ntp.nict.jp」に変更する
  4. 保存を実行する

図:タイムゾーンがヨーロッパになってるので

アップデートの実行

システム⇒アップデート管理を開き、アップデートを実行すると、OpenMediaVaultのいろいろなアプデが表示されます。OSのアップデート等も出てくるので、ここで一括で最新の状況にしておくと良いでしょう。一番最後に作業をすれば良いと思います。

図:定期的にアプデを実行しておきましょう

ネットワーク設定

ここで行う作業は、IPアドレスの固定化です。これを行わないと、起動するたびにIPアドレスが変更されてしまうので、必ず行っておきましょう。

  1. ネットワーク⇒インターフェースを開く
  2. eth0のラインをクリックして、鉛筆アイコンをクリックする
  3. IPv4のメソッドをスタティックに変更
  4. アドレスは自分の環境は192.168.50.xの割当になってるので、192.168.50.100辺りに設定しておきました(自動割当で他のデバイスに被らないであろうアドレスの為に)
  5. ネットマスクは255.255.255.0を指定
  6. ゲートウェイはこのラズパイがぶら下がってるルーターのアドレスなので、192.168.50.1としておきました。
  7. 保存をクリックする
  8. 右上に警告が出るので、クリックして、confirmをチェックして、OKをクリック。
  9. 自動再起動はされないので、ラズパイ側で以下のコマンドで再起動する

  10. OpenMediaVault側は503エラーの画面になりますが、放置します。
  11. ラズパイの再起動が終わったら、192.168.50.100にアクセスしてみるとログイン画面になるのでログインする
  12. 何故か言語設定がまた英語に戻ってるので、UIを日本語に戻す

これでIPアドレスが固定化されたので、以降は192.168.50.100でアクセスできるようになり変更されることがありません。

図:IP固定化はマストです

ストレージ設定

まさか、SDカードだけでNAS運用はありえないので、ここで外付けHDDを接続してNASの母体とします。設定する前に、ラズパイに外付けHDDを接続します。今回はHFS+のままのこれまでルーターに接続していたHDDをそのまま接続させました。

  1. HDDを接続させてちょっと時間を於いたら、ストレージ⇒ディスクを開く
  2. 目当てのディスクが表示されていたら認識されてるのでOK
  3. 次に、ストレージ⇒ファイルシステムを開く
  4. プラスアイコンをクリックして、マウントを実行。対応してるファイルシステムはこちら。
  5. ファイルシステム選択で、先程認識された/dev/sdaを選ぶ。閾値は空き容量が指定値を超えた場合に警告を出す値です。
  6. 保存をクリック
  7. ここでまた黄色の警告帯が出るので、✔をクリックして、Confirmに⇒「はい」で反映する
  8. 次に、ストレージ⇒共有フォルダを開く
  9. 右上のプラスアイコンをクリックして、名前を適当に入れ、ファイルシステムを選択。
  10. Releative Pathの右端のアイコンをクリックして、HDD以下のフォルダを選択する
  11. 保存をクリックする。これをHDD直下のフォルダの数だけ繰り返す
  12. ここでまた黄色の警告帯が出るので、✔をクリックして、Confirmに⇒「はい」で反映する

後で、ユーザを追加するので、再度各ユーザ毎の権限設定を追加しておくと良いでしょう。但し、通常はHDD直下のフォルダはマウントが出来ないので、共有フォルダではHDD以下のフォルダを全部指定して、共有するような形を設定に追加しなければなりません。

図:ファイルシステムの図

図:マウントした図

図:共有フォルダ設定

ユーザ設定

現時点だと、ユーザはラズパイ標準のpiユーザしか登録されていません。ここに、ユーザのIDを追加で登録していきます。

  1. ユーザ⇒ユーザを開く
  2. プラスアイコンをクリックして、作成をクリックする
  3. 名前、メアド、パスワードの設定のみでOK。必要ならばグループ設定等細かい設定も可能になっています。
  4. 黄色い帯が出るので、✔をクリックして、Confirm⇒「はい」を実行する
  5. これでユーザが新規に追加された

図:ユーザを追加しておく

サービス設定

Windows等からアクセス可能にしておく為に以下の設定を追加しておきます。

  1. サービス⇒SMB/CIFSをクリック
  2. 有効にチェックを入れる。ワークグループはデフォルトのWORKGROUPのままでOK
  3. 保存をクリックする
  4. 黄色い帯が出るので、✔をクリックして、Confirm⇒「はい」を実行する
  5. 更に同じセクションの共有タブをクリックする
  6. プラスアイコンをクリックして、有効にチェックを入れ、共有フォルダで先程設定したフォルダを選択する。共有フォルダで設定した分だけ、全て繰り返し作業で1つずつ登録していく。
  7. 黄色い帯が出るので、✔をクリックして、Confirm⇒「はい」を実行する
  8. 何故か、Timemachineサポートがあります。

macOSの場合、ネットワークに「raspberrypi – SMB/CIFS」として出てくるようになります。

図:これを有効にしないとネットワークに出てこない

図:この設定をしないと、ログインできてもフォルダが表示されない

マウントしてみる

Finderから接続

Finderから「raspberrypi – SMB/CIFS」をダブルクリックして、別名で接続するか?Finderのメニューから移動⇒サーバへ接続にて、「smb://192.168.50.100」で接続をします。

許可を求められるので、「接続」をクリックし、ユーザIDとパスワードをセットします。キーチェーンに保存しておけば、次回以降はログイン画面は出てこなくなります。

他にもFTPやらNFSやらの設定もあり、単純なSambaでファイルサーバを組むよりも遥かに使いやすく、下手な市販のNASを買うよりも高機能です。一度設定してしまえば、SDカードのバックアップを取っておけば壊れてもすぐに差し替えができる点も強みです。

SMB1.0では接続の出来ないChromebookでも、OpenMediaVaultの場合バッチリ接続出来ました。

図:IPアドレス直で接続するか?ネットワークから開くか

図:無事にフォルダを開けた

図:Chromebookでも接続出来ます。

マウントできない問題

M1 MacのMontereyでは全く問題なくマウントできたのですが、なぜか同じMontereyのIntel Macでは接続で問題が起きたと称して、接続できず。別名で接続もできずに困り果てました。

どうもこの問題、BigSurから発生してるトラブルで、macに新しいアカウントを作って接続すると全く問題なく接続できるのに、長年アプデを重ねてきたアカウントだと、このsamba broken問題が発生するケースがあるようで。

色々試してみた結果、以下の手順で修復することが可能です。

  1. ターミナルを起動する
  2. 以下のコマンドを実行する

    /etc/にnsmb.confを作成して、smb v2プロトコルに固定して接続する設定のようです。
  3. 再度、finderから接続するとゲスト接続し、別名で接続もきちんと機能してマウントできました。

図:非常に厄介な問題

オリジナルの項目が見つからないため、操作を完了できません

さて、無事に入れたわけですが、今度は「オリジナルの項目が見つからないため、操作を完了できません」と出て、ファイルの読み出しができず、コピーができませんでした。

なぜ、M1 Macでは問題ないのに、Intel Macではこの問題が出るのかわかりませんが、以下の設定を行ってファイルにアクセスできるようになりました。

  1. OpenMediaVaultにて、別のユーザアカウントを作成する
  2. ストレージ⇒共有フォルダを開く
  3. 対象のフォルダを選び、ツールバーの特権アイコンをクリックする
  4. 対象のアカウントに大して、パーミッションのRead/Writeをクリックしてオンにする
  5. 保存を実行する。これをフォルダの数だけ繰り返す

図:厄介な問題2

関連リンク

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。