schedule2021-05-14

ラズパイにopenmediavaultを導入して1TBの自宅NASをつくる

自宅のPCが複数になってファイルの共有が大変なのでNASを導入します。 NAS用のPCはどのご家庭にもあるラズパイを使います。

Contents

1. 仕様と環境

ネットワーク仕様

  • PCはWindows 10が3台あるからその間で共有したい。
  • ネットワークは自宅LANの中(外部からは接続しない)
  • ラズパイは有線LANで接続する

NASのPC構成

  • Raspberry 3B+
    • microSD 16GB
    • 外付けSSD 1TB
    • OS: Raspberry Pi OS Lite

NASのアプリケーションはopenmediavaultを利用しました。

nas ▲NASの完成したところ。USBポートの数だけディスクを追加できる!

ラズパイは余っていた3B+を使っていますが、新しいRaspberry Pi 4 4B-64GB - amazonがでてます。技適に対応したみたいですね。microSDはOSイメージを書くだけなので8GB以上あれば十分かと思います。

外付けディスクにはBUFFALO USB3.1Gen1 ポータブルSSD 1TB - amazonを使いました。 SSD 1TBの中では安く1.1万円で買えました。

2. ラズパイのOSのインストールとネットワークに接続

ラズパイのOSを新しく入れ直します。 本題じゃないのでサクサク進めます。

2.1 OSのダウンロード

GUIは不要ですので、ラズパイにはCLIのみのRaspberry Pi OS Liteを新しくいれ直します。

https://www.raspberrypi.org/software/operating-systems/

zipをダウンロードして解凍します。

2.2 balenaEtcher でOSを書き込む

OSをSDカードへ書き込むにはbalenaEtcherを利用しました。 https://www.balena.io/etcher/

インストールしたら先ほどのOSイメージとSDカードを選んで書き込みます。

flash

書き込みに成功しました。

flash-complete

2.3 SSHの有効化と無線LANの設定

SSHの有効化と無線LANの設定は、ラズパイにモニターとキーボードをつないでraspi-configコマンドで設定することもできます。

/boot/sshと空のファイルを作成して再起動するとSSHを受け付けるようになります。

$ sudo touch /boot/ssh
# 再起動
$ sudo reboot

もしくは、OSイメージをフラッシュしてから下記の方法でセットアップすることも可能です。

SDカードのbootの直下にsshファイルを作成するとSSHが有効になる。 ファイルは拡張子なしで中身も書かなくて良い。

同じく、wpa_supplicant.confファイルを作成する。こちらはWi-FiのSSIDとパスワードを書き込む。

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="<接続先のSSID>"
    psk="<平文のパスワード>"
}

boot

詳しくはこちら

外部に公開しないので初期ユーザのままにする。 気になる方はこちらの記事に沿って設定を変えていくと良いと思う。 買ったらまず実施!RaspberryPiのセキュリティ対策

2.4 SSH接続

以上の設定でPCからSSHができるようになっているはず。

# sshコマンド
$ ssh pi@raspberrypi.local

初期のユーザ名/パスワードは pi / raspberry です。

もし繋がらない場合は、ラズパイをモニタに繋げてraspi-configコマンドで設定し直したり、ifconfigでIPを確認してみると良いです。

2.5 ラズパイのセットアップ

ホスト名やパスワードの変更など設定をすませます。ほぼこちらのコマンド通りです。(raspi-configの文言がすこし違ってた)

パスワードの変更

passwd

ホスト名変更

sudo nano /etc/hostname
sudo nano /etc/hosts

とりあえずraspinasとしました。

raspi-configによる設定

sudo raspi-config

raspi-config

ファイルシステムの拡張 6 Advanced Options -> A1 Expand Filesystem

ロケール等の変更 5 Localisation Options -> L1 Locale -> ja_JP.UTF-8 UTF-8 スペースで決定 -> Enter -> ja_JP.UTF-8 UTF-8 -> OK

タイムゾーンの変更 5 Localisation Options -> L2 Timezone -> Asia -> Tokyo

Wi-Fi利用国の変更 5 Localisation Options -> L4 WLAN Country -> JP Japan

Finishで終了する。再起動するか聞かれるのでYesで再起動して設定を反映する。

3. IPを固定する

初期設定ではDHCPが機能しており、起動の毎にIPが採番されます。 これらの記事を参考にeth0のIPを192.168.11.2に固定しました。 Wi-Fiの場合はwlan0を固定してください。

$ sudo nano /etc/dhcpcd.conf

$ sudo cat /etc/dhcpcd.conf
# 以下を末尾に追加した
interface eth0
static ip_address=192.168.11.2/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1

# dhcpcdのリロード
$ sudo service dhcpcd reload

(option) SSHの接続設定を楽にする

sshコンフィグファイルにNASの情報を加えて接続を楽にします。 C:\Users\{ユーザ名}\.ssh\configに以下を加えると> ssh nasで接続出来るようになる。

host nas
 user pi
 hostname 192.168.11.2
 port 22

4. openmediavault の導入

https://www.openmediavault.org/

openmediavaultは、Debian Linuxに基づく次世代のネットワーク接続ストレージ(NAS)ソリューションです。 機能が豊富で可能な設定も多くあります。初めて使いましたが、設定はモダンなデザインのWEB-GUIで管理できわかりやすかったです。

4.1 openmediavault をインストールする

Raspberry pi 4 でNAS(openmediavault)を構築する方法を参考にインストールしました。

ラズパイにSSH接続して以下を実行していきます。(全部で1時間くらいかかった。。)

# リポジトリ一覧を更新
$ sudo apt update

# アップグレードの実行
$ sudo apt upgrade

$ cd /opt/

# openmediavaultのインストール(20分程度)
$ wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

# 再起動
$ sudo reboot
// IPアドレスの確認
$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.20  netmask 255.255.255.0  broadcast 192.168.1.255

4.2 フォーマットの有効化

NTFSのフォーマット形式に書き込めるようにします。

# NTFSフォーマットの有効化
$ sudo apt-get install ntfs-3g

今回の用途ではWindowsに対応するNTFSフォーマットだけで十分でした。

exFATはフラッシュドライブ向けに最適化された新しい規格のFATです。

# (必要あれば) exFATフォーマットの有効化
$ sudo apt-get install exfat-fuse exfat-utils

参考:ファイルシステム(FAT32、FAT16、NTFS、exFAT、HFS、HFS+、APFS)の違いについて - buffalo.jp

4.3 WEBのGUI (openmediavault)にログインする

/etc/hostnameに設定した名前にブラウザからアクセスします。

初期アカウントは ユーザ名/パスワード = admin / openmediavault です。

http://raspinas/

login

5. openmediavault を設定する

ログインした後のホーム画面です。

home

設定方法はこちらを参考にしました。 とても扱いやすいGUIです!

ここでは以下を設定します。

  • 5.1 一般設定
  • 5.2 外付けディスクのマウント
  • 5.3 共有フォルダの追加
  • 5.4 sambaサービスの共有追加
  • 5.5 ユーザを追加

他にRAIDやアラートなども設定できます。

5.1 openmediavaultの一般設定

タイムゾーンの変更 メニュー日付と時刻 -> タイムゾーンをAsia/Tokyoに変更する。

アップデート管理 メニューアップデート管理 -> パッケージをチェックしてインストールをクリック。

他に管理者パスワードの変更やホスト名の変更ができます。

5.2 外付けディスクのマウント

外付けSSDをマウントします。

メニューファイルシステム -> デバイスから外付けSSDを選択してマウントをクリック -> 変更を適用 。

mount

5.3 共有フォルダの追加

メニュー共有フォルダ -> 追加から先ほどマウントした外付けディスクを選択する。share/フォルダを作成してそこを共有するようにしました。

share

5.4 sambaサービスの共有追加

他のPCから接続する方法を設定します。

メニューSMB/CIFS -> 設定タブ一般設定の有効をチェックする。

smb1

共有タブ -> 追加 -> 先ほど作成した共有フォルダを選択します。設定はデフォルトのままにしました。 変更を適用する。

SMB2

後述しますがパブリック(ゲストに許可)にしてゲストでアクセスしたい場合はWindows10のレジストリエディタでの設定変更が必要で面倒です。次に追加するパスワード付きのユーザでログインした方がいい。

NFSを利用する場合も同じようにしたらOK!

5.5 ユーザを追加

NASに書き込み権限を持ったユーザを追加する。

メニューユーザ -> 追加 -> 適宜ユーザを登録する。

user

ユーザを選択してから特権をクリックして、共有フォルダの権限を設定します。

role

以上でNASの設定は終わり。

6. Windows10からNASにアクセスする

普段使っているWindows10からNASにアクセスします。

6.1 Windows10のSMB 1.0/CIFCを有効にする

今回はNASの接続方式を「SMB/CIFS」にしていまが、 Windows 10 version1709 からSMBv1は有効になっていません

設定からSMBv1を有効にします。

検索などからWindowsの機能の有効化または無効かを開いて SMB 1.0/CIFSを有効にします。 プラグインがインストールされます。

SMBclient

参考: SMBv1クライアント機能を有効にする方法 - elecom

(オプション)Windows 10からゲストアクセスする

Windows10ではゲストアクセスが推奨されていないため、デフォルトではゲストアクセスを許可した共有フォルダにアクセスしても接続出来ません。

ゲストアクセスを許可する方法は次の記事に書きました。

おわりに

以上で自宅でNASが使えるようになりました。

GoogleDriveなどファイル共有のクラウドサービスも便利ですが、容量やネットワークの速度が気になってしまいます。 自宅にNASを作ったことで、その2つが気にならなくなりPC間の共有がしやすくなりました! 書き込み速度もラズパイ3B+とSSDで十分気にならない速さです。 ラズパイと1TBのSSDを合わせて15,000円くらいですが、ラズパイは元々余ってたものなので費用も抑えられたかなと思います。

この記事を書くのも含めて2日かかりました。 構築も楽しめて大変満足!!!