複数機器間のデータの受け渡しはどのようにされていますでしょうか?
Google DriveやiCloud、OneDriveなどクラウドサービスを使うなどが考えられますが、無料のサービスは15GBまでなど容量制限があります。
USBメモリやSDカードを使う場合もファイルサイズが大きい場合に困ることがあります。
携帯機器だとUSBケーブルやBrueToothでパソコンに接続してデータを吸い上げるなど、様々な通信方法があり、それぞれ使い分けている方がほとんどではないでしょうか。
ラズパイに外付けハードディスクをつないで、OpenMediaVaultというアプリでネットワークドライブにすることで、すべての機器から同じようにアクセスでき、かつ大容量データの保管場所としても利用できて、とても便利なのでやり方を説明します。
私の場合、4TBのハードディスクをNAS※にしましたが、そこまでの大容量は必要ないという方はUSBメモリでも構いません。
※NAS:Network Attached Storage(ネットワークドライブのこと)
本記事の手順は以下の動画にも収めていますので、よろしければ参考にしてください。
使用機器
Raspberry Pi 4 Model B(8GB RAM)
ラズパイの準備
OSイメージの作成
以下の記事を参考にラズパイのOSを書き込んだMicroSDカードを作成します。
Ctrl+Shift+Xで立ち上げた設定画面で、Enable SSHにチェクを入れ、piユーザのパスワードを設定し、その下にあるWi-Fiの設定も行います。
Raspberry Pi OS (other)からRaspberry Pi OS Lite (32-bit)を選択する必要がありますのでご注意ください。
ラズパイ起動
作成したMicroSDカードをラズパイに差し込み起動します。
ユーザ名はpi、パスワードは上記SSHのところで設定したパスワードでログインします。
以下のコマンドでIPアドレスを確認します。
ifconfig
inetに続いて192.168.xxx.xxxのように表示されている部分がIPアドレスになります。
この値はDHCPにより自動で割り当てられ、変わる可能性があります。
ネットワークドライブとなるラズパイのIPアドレスが変わってしまうと使いづらいので、IPアドレスを固定にする設定をします。
sudo vi /etc/dhcpcd.conf
viの使い方がわからない場合は、以下の動画を参考にしてください。
以下に私の設定例(IPアドレスを192.168.1.24にする例)を記載します。
static ip_address=192.168.1.24/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.1
上記記述がコメントになっている部分があると思うので、行頭の#を消してIPアドレス部分を編集すると簡単です。
routersとdomain_name_serversの末尾の数値は1から変えないようにします。
以下のコマンドで再起動して、再度ifconfigで固定したIPアドレスになっていることを確認してください。
sudo reboot
再起動したら、今度はSSHログインをします。
パソコンのターミナルから以下のコマンドでSSHログインします。
ssh pi@192.168.1.24
@以降のIPアドレス部分はお使いのものに置き換えてください。
OpenMediaVaultの設定
外付けドライブをネットワークドライブ(NAS)にするための無料アプリOpenMediaVaultインストールと設定方法を紹介していきます。
インストール
SSHログインしたターミナルに以下のコマンドをコピペしてOpenMediaVaultをインストールします。
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
インストールが終わると自動的に再起動がかかります。
OpenMediaVaultをインストール後は、ラズパイを立ち上げると自動的にOpenMediaVaultがWebサーバーとして起動するようになり、他の機器からブラウザで操作できるようになります。
設定画面を開く
パソコンのブラウザを立ち上げ、アドレスバーにIPアドレスを打ち込みます。(私の場合192.168.1.24)
以下のようなOpenMediaVaultのログイン画面が出るので、ID:admin, PW:openmediavault(初期パスワード)でログインします。
adminパスワード変更
初期パスワードからお好みの文字列にパスワードを変更します。
日付と時刻の設定
System→Date&Timeを開き、Use NTP serverにチェックが入っていることを確認します。
ディスクのマウント
Storage→Disksから対象のディスクを選択し、消しゴムマーク(Wipe)を押して消去します。
Wipeを押すとQuickまたはSecureの選択画面になりますが、Secureにしておいた方が安全です。
Storage→File Systemsから+を押してCreateします。
Diskを選択し、TypeをEXT4にしてSaveを押します。(ラズパイに対応したファイルフォーマットがEXT4のため)
File systemに作成したEXT4のものを指定し、コメントにNASなどと入れてSaveを押します。
Storage→Shared FoldersからCreate(+マーク)を押し、以下のようにName, Relative path, Commentを入力し、Saveを押し、右上のチェックマーク(Apply)を押します。
NASユーザの設定
Users→UsersからCreate(+マーク)または、すでにnas_userがある場合は選択し、鉛筆マーク(Edit)を押します。
ここで、ネットワークからアクセスするユーザはpiユーザとは別のアカウントにしておいた方が良いようです。(一度試して、Home directoryが上書きされ、不都合が生じました)
パスワードを入力し、Groupsはusersにチェックを入れてSaveを押します。
Users→Settingsから、Enabledにチェックを入れ、Locationに作成したディレクトリを割り当て、Saveを押します。
SMB設定
Services→SMB/CIFS→Settingsから、一番上のEnabledにチェックを入れ、WorkgroupにNASGROUP、Home directoriesの下にあるEnabledにもチェックを入れ、Saveを押します。
最後に右上のチェックマーク(Apply)を押して、OpenMediaVaultの設定は完了です。
接続確認
各種機器からネットワークドライブにアクセスできることを確認します。
Mac
Finderメニューの移動からサーバへ接続を選択します。
サーバのアドレスにはsmb://に続いてIPアドレスを入れます。
ユーザ名とパスワードはOpenMediaVaultで設定したnas_userのものを指定します。
Macのパスワードを聞かれた場合は入力します。
以下の画面ではnas_userを選択します。
これでネットワークドライブにアクセスできます。
Windows
エクスプローラを開き、アドレス入力部に¥¥に続けてIPアドレスを入れます。
以下の画面でnas_userとパスワードを入力します。
これでネットワークドライブにアクセスできます。
Linux
マウント用のディレクトリを作成します。
sudo mkdir /mnt/nas
以下のコマンドでNASユーザ名とパスワードを指定してmount
します。
sudo mount -o username=nas_user,password=PASSWORD //192.168.1.24/nas_user /mnt/nas
PASSWORDやIPアドレス部分はお使いのものに置き換えてください。
これで/mnt/nas
の下が見えるようになるので、ls
, cp
, rm
, mkdir
, rmdir
などのコマンドをsudo
付きで通常のディレクトリと同様に扱えるようになります。
ファイルコピーの方法として、ローカルからNASにコピーする場合は以下のように行います。(FILENAMEはコピーしたいファイル名を入れます)
sudo cp FILENAME /mnt/nas
NAS上のファイルをカレントディレクトリ(今いるディレクトリ)にコピーする場合は以下です。
sudo cp /mnt/nas/FILENAME .
GUIで接続するには「ファイル」を開いて下の方にある接続先アドレス入力部に以下のように入力してConnectをクリックします。
初回接続時はNASユーザ名とパスワードを聞かれるので、入力するとNASにつながります。
Android
Play StoreからX-ploreというアプリをインストールします。
歯車マークのShowをタップし、LANにチェックを入れます。
X-ploreは画面端の青い矢印をタップすることで左右の画面を行き来する独特なユーザーインターフェイスになっています。
片方の画面でコピーしたいファイルにチェックを入れ、もう一方の画面でコピー先を指定してチェックを入れます。
最後にコピー元の画面上のCopyボタンを押すとファイルが指定の場所にコピーされます。
iOS
iPadで試しましたが、追加アプリは不要でネットワークドライブを使えました。
ファイルマネージャをタップします。
画面左上の < ファイル から ・・・マークをタップします。
サーバへ接続をタップします。
smb://に続けてIPアドレスを入力し、接続をタップします。
ユーザ名とパスワードを入力して次へをタップします。
これでネットワークドライブにアクセスできます。
トラブルシューティング
OpenMediaVaultインストール後に無線LANがつながらなくなる
OpenMediaVaultインストール後に無線LANがつながらなくなった場合、以下のコマンドをお試しください。
sudo omv-firstaid
まず、1 Configure network interfaceを選択してEnterを押します。
wlan0を選択します。
IPv4の設定をするか聞かれるのでYesを選択します。
DHCPv4を使うか聞かれるが、固定IPアドレスにしたいのでNoを選択します。
設定したいIPアドレスを入力します。
ネットマスクを入力します。(以下は上位24ビットがネットワークアドレスの例)
デフォルトゲートウェイを入力します。
たいていの場合、IPアドレスの4つの数字のうち最後の1つを1にすれば良いと思います。(詳しくはIPアドレス関連の記事をGoogle検索してください)
IPv6の設定をするか聞かれるのでNoを選択します。
DNSサーバーについて聞かれるので、デフォルトゲートウェイのアドレス(私の場合192.168.1.1)を入力します。
WOL(Wake on LAN、遠隔で電源ONするか)を有効にするか聞かれるのでNoを選択します。
無線LANのSSIDを入力します。
無線LANのパスワードを入力します。
これでしばらく待てば無線につながるはずです。
うまくつながらない場合、DHCPv4をYesにしたり、Wi-Fi機器の電源を一度切って立ち上げ直すことで接続が復活する場合がありました。
まとめ
OpenMediaVaultを利用して、ラズパイにつないだ4TBの大容量HDDをネットワークドライブ(NAS)にする方法を紹介しました。
OpenMediaVaultはGUIに対応していないなど、多少クセのあるツールであり、ハマリポイントも多数ありますが、一度動いてしまえば大変便利なものだと感じています。
サイズの大きなファイルもPC、モバイル、ユーザ問わず共有できて、家庭内のデータのやり取りがかなり便利になりました。
Raspberry Pi 4 Model B(8GB RAM)
書籍紹介
Raspberry Pi はじめてガイド―[Raspberry Pi 4完全対応]
OSのインストールから、プログラミングや電子工作例など、これからラズパイを学ぶのに最適な一冊です。
参考文献
openmediavault 5.x documentation(https://openmediavault.readthedocs.io/en/5.x/index.html)
ラズパイでNASを作成してみました その2(https://bsblog.casareal.co.jp/archives/4779)
ラズベリーパイで固定IPアドレスを設定する(https://mugeek.hatenablog.com/entry/2019/05/27/230256)
RaspberryPi3にOpenMediaVault5をインストールしたら無線LANが使えなくなった(https://qiita.com/shimajiroxyz/items/96f49ac8565f62c840c1)