こんにちはー、ニアです。
今回は、去年夏頃に購入したRaspberry Pi 4と自宅に余っている外付けHDD(USB接続)でNASを作ってみました。
1. 用意するもの
- Raspberry Pi 4 Model B(メモリ4GB)
- microSDHCカード(Raspberry Pi OSをインストール済)
- Raspberry Pi 4用ケース
- USB接続タイプの外付けHDD(バッファローのHD-LB1.5TU3)
2. Raspberry Pi 4にOpenMediaVaultをインストール
Raspberry Piに入れているOS(Raspberry Pi OS)がDebianベースなので、今回はOpenMediaVaultというNASシステムをインストールします。
今回は、MacからRaspberry PiにSSH接続してセットアップするため、Raspberry Piのターミナルを開き、ifconfigコマンド実行します。
ifconfig
そこで表示されたIPアドレスに、MacからSSH接続します。
ssh pi@192.168.X.X
# piユーザーのログインパスワードを入力します。
パッケージの一覧リストとインストール済パッケージを更新します。
sudo apt update
sudo apt upgrade
OpenMediaVaultをインストールします。インストールには数十分かかります。
cd /opt/
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
インストールを完了したら、Raspberry Piを再起動します。
結局Raspberry Piの方で再起動操作しました。
3. OpenMediaVaultを設定する
Raspberry Piを再起動したら、ターミナルからifconfigコマンドでIPアドレスを確認し、ブラウザから「http://{IPアドレス}」でアクセスします。
ユーザー名 | パスワード |
---|---|
admin | openmediavault |
ログインするとダッシュボード画面が表示されます。
3.1. IPアドレスを固定する
Raspberry PiのIPアドレスを設定するために、「システム」→「ネットワーク」画面を開きます。
今回は無線LANを設定するので、「wlan0」のインターフェースを選択し、「編集」ボタンを押します。
(※Raspberry Piを有線LANに接続している場合は、「eth0」のインターフェースを選択します)
IPv4のにある「メソッド」「アドレス」「ネットマスク」「ゲートウェイ」を設定し、「保存」ボタンを押します。
メソッド | 「スタティック」を選択すると、IPアドレスを指定することができます。 (ちなみに「DHCP」を選択した場合、IPアドレスは自動的に設定されます) |
アドレス | Raspberry PiのIPアドレスを指定します。 |
ネットマスク | サブネットマスクを指定します。 |
ゲートウェイ | Raspberry Piに接続しているルーターのIPアドレスを指定します。 |
なお、OpenMediaVaultの設定を変更すると、それを適用するかどうかの確認バーが上部に出るので、設定を適用する時は「適用」ボタンを押します。
先ほどはRaspberry PiのIPアドレスを固定したので、適用後Macとのはセッションが切断してしまうので、Raspberry PiのターミナルからifconfigコマンドでIPアドレスの確認し、変更後のIPアドレスでアクセスします。
3.2. 外付けHDDをext4でフォーマットする
今回使用する外付けHDDは、exFATでフォーマットしてあります。
外付けHDDをRaspberry PiのUSB 3.0に接続します。接続したら、dfコマンドで確認します。
df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/root ext4 26G 9.7G 15G 40% /
...
/dev/sda1 exfat 1.4T 12M 1.4T 1% /media/pi/USB-HDD
次にfdiskコマンドで、外付けHDDのパーティションを作り直します。
sudo fdisk /dev/sda1
# パーティションの情報を確認します。
Command (m for help): p
Disk /dev/sda1: 1.4 TiB, 1500299395072 bytes, 2930272256 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf4f4f4f4
Device Boot Start End Sectors Size Id Type
/dev/sda1p1 4109694196 8219388391 4109694196 1.9T f4 SpeedStor
/dev/sda1p2 4109694196 8219388391 4109694196 1.9T f4 SpeedStor
/dev/sda1p3 4109694196 8219388391 4109694196 1.9T f4 SpeedStor
/dev/sda1p4 4109694196 8219388391 4109694196 1.9T f4 SpeedStor
# 既存のパーティションを削除します。
Command (m for help): d
Partition number (1-4, default 4):
Partition 4 has been deleted.
Command (m for help): d
Partition number (1-3, default 3):
Partition 3 has been deleted.
Command (m for help): d
Partition number (1,2, default 2):
Partition 2 has been deleted.
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
# GPT形式のパーティションテーブルを作成します。
Command (m for help): g
Created a new GPT disklabel (GUID: 48F6A820-1291-F142-AEF6-C9BAE7ED7B4C).
The old exfat signature will be removed by a write command.
# パーティションを作成します。
Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-2930272222, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2930272222, default 2930272222):
Created a new partition 1 of type 'Linux filesystem' and of size 1.4 TiB.
# パーティションの設定を保存します。
Command (m for help): w
The partition table has been altered.
Failed to remove partition 1 from system: Invalid argument
Failed to remove partition 2 from system: Invalid argument
Failed to remove partition 3 from system: Invalid argument
Failed to remove partition 4 from system: Invalid argument
Failed to add partition 1 to system: Invalid argument
The kernel still uses the old partitions. The new table will be used at the next reboot.
Syncing disks.
OpenMediaVaultからRaspberry Piの再起動やシャットダウン操作をすることができますよ。
外付けHDDはOpenMediaVaultの操作でマウントする必要があるので、もしRaspberry Pi上でマウントされたままの場合、一旦umountコマンドでアンマウントします。
umount /dev/sda1
mkfs.ext4コマンドで、外付けHDDをext4形式でフォーマットします。
sudo mkfs.ext4 /dev/sda1
mke2fs 1.44.5 (15-Dec-2018)
Found a gpt partition table in /dev/sda1
Proceed anyway? (y,N) y
Creating filesystem with 366284032 4k blocks and 91578368 inodes
Filesystem UUID: d20f306b-2167-4c4d-ac43-d8131612c114
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks):
done
Writing superblocks and filesystem accounting information: done
OpenMediaVaultの「ストレージ」→「ファイルシステム」を開き、外付けHDDを選択して、「マウント」ボタンを押します。
マウントが完了したら、OpenMediaVaultで外付けHDDを利用できるようになります。
3.3. 共有フォルダとユーザーを作成
NASにアクセスするユーザーを作成します。
「アクセス権の管理」→「ユーザー」を開き、「追加」ボタンを押します。
ユーザー情報を入力し、「保存」ボタンを押します。
名前 | ユーザー名を入力します。 |
コメント | ユーザーの説明を入力します(任意) |
メールアドレスを入力します(任意) | |
パスワード、 パスワードの確認 | パスワードを入力します。 |
次に、共有フォルダを作成します。
「アクセス権の管理」→「共有フォルダ」を開き、「追加」ボタンを押します。
共有フォルダの情報を入力し、「保存」ボタンを押します。
名前 | 共有フォルダの名前を入力します。 |
デバイス | 共有フォルダを設置するストレージを選択します。 ここでは、外付けHDDを選択します。 |
パス | 共有フォルダの相対パスを指定します。 |
パーミッション | 共有フォルダのパーミッションをドロップダウンから選択します。 管理者、ユーザー、その他に対して設定します。 |
コメント | 共有フォルダの説明を入力します(任意) |
先ほど作成した共有フォルダを選択し、「特権」ボタンを押して、共有フォルダの権限画面を開きます。
先ほど作成したユーザーの読み/書きのチェックボックスを入れて、「保存」ボタンを押します。
先ほど作成した共有フォルダを選択し、「ACL」ボタンを押して、共有フォルダのACLの変更画面を開きます。
先ほど作成したユーザーの読み/書き、パーミッションの選択を確認し、「既存のすべてのパーミッションを置き換える」のスイッチを入れて、「適用」ボタンを押します。
3.4. SMBの設定
「サービス」→「SMB/CIFS」を開き、一般設定にある「有効」のスイッチを入れます。
「共有」タブを選択し、「追加」ボタンを押します。
先ほど作成した共有フォルダを選択し、「保存」ボタンを押します。
これで、NASの設定はひとまず完了です。
4. WindowsやMacからNASにアクセス
WindowsやMacからNASアクセスしてみます。
4.1. macOSからアクセス
DockにあるFinderを右クリックし、「サーバーに接続」を選択します。
アドレス欄に「smb://{Raspberry PiのIPアドレス}」を入力し、「接続」ボタンを押します。
最初の接続時、接続するかどうかのダイアログが出るので、「接続」ボタンを押します。
ログインのダイアログが出たら、ユーザの種類から「登録ユーザ」を選択し、3.3.で作成したユーザー名(名前のところに入力)とパスワードを入力して、「接続」ボタンを押します。
NASに接続したら、3.3.で作成した共有フォルダを選択します。
共有フォルダが開けば成功です。
とりあえず、テキストファイルをNASに入れました。
4.2. Windowsからアクセス
エクスプローラーのアドレスバーに「\\{Raspberry PiのIPアドレス}\{3.3.で作成した共有フォルダ名}」を入力し、移動ボタンを押します。
ネットワーク資格情報の入力のダイアログが出たら、3.3.で作成したユーザー名とパスワードを入力して、「OK」ボタンを押します。
NASに接続し、共有フォルダが開けば成功です。
先ほどMacからアップロードしたテキストファイルを無事に開けました。
ここでちょっと、NASのストレージのベンチマークを測定してみます。共有フォルダをネットワークドライブとしてマウントし、CrystalDiskMarkを管理者権限なしで起動して、測定してみました。
USB 3.0接続の外付けHDDなので、理論上はシーケンシャル速度が100MB/s以上出せるのですが、PC↔ルーター↔Raspberry Pi間が無線LAN接続なのが原因なのか、速度はかなり遅めでした。せめてRaspberry Pi↔ルーター間を有線接続した方がよいかもです。
4.3. Linux(Ubuntu)からアクセス
Ubuntuのファイルマネージャー(Nautilus(ノーチラスと読みます))を開き、「他の場所」を選択します。
サーバーへの接続にあるアドレス欄に「smb://{Raspberry PiのIPアドレス}/{3.3.で作成した共有フォルダ名}」を入力し、「接続」ボタンを押します。
接続のダイアログが出たら、接続方法から「登録ユーザー」を選択し、3.3.で作成したユーザー名とパスワードを入力して、「接続」ボタンを押します。
(ドメインはOpenMediaVaultの「サービス」→「SMB/CIFS」の一般設定にある「ワークグループ」の値です。デフォルトでは「WORKGROUP」です。)
NASに接続し、共有フォルダが開けば成功です。
4.4. Chrome OS(Chromium OS、Chrome OS Flex(旧: CloudReady))からアクセス
ファイルアプリを開き、右上のメニューから「新しいサービスを追加」→「SMBファイル共有」を選択します。
ファイル共有URLに「\\{Raspberry PiのIPアドレス}\{3.3.で作成した共有フォルダ名}」を入力し、3.3.で作成したユーザー名とパスワードを入力し、「追加」ボタンを押します。
NASに接続し、共有フォルダが開けば成功です。
4.5. iOS / iPadOSからアクセス
ファイルアプリを開き、右上のメニューから「サーバーへ接続」を選択します。
サーバのアドレス欄に「smb://{Raspberry PiのIPアドレス}」を入力し、「接続」ボタンをタップします。
ユーザの種類から「登録ユーザ」を選択し、3.3.で作成したユーザー名(名前のところに入力)とパスワードを入力して、「接続」ボタンを押します。
NASに接続したら、3.3.で作成した共有フォルダを選択します。
共有フォルダが開けば成功です。
4.6. Androidからアクセス
Androidの場合、サードパーティ製のSMBクライアントが必要になります。ここでは「X-plore File Manager」を使ってNASに接続します。
LANにある「サーバー追加」をタップします。
サーバーのアドレス欄にRaspberry PiのIPアドレス、パスに3.3.で作成した共有フォルダ名を入力し、ユーザー名とパスワードを入力して、「保存」ボタンを押します。
(ドメインはOpenMediaVaultの「サービス」→「SMB/CIFS」の一般設定にある「ワークグループ」の値です。デフォルトでは「WORKGROUP」です。)
NASに接続し、共有フォルダが開けば成功です。
4.7. Windows 10 Mobileからアクセス(NG)
残念ながら、Windows 10 MobileではSMBプロトコルに非対応なので、今回作成したNASにアクセスできませんでした。
5. おわりに
今回はRaspberry Pi 4と自宅に余っている外付けHDD(USB接続)でNASを作り、PCやスマホからアクセスしてみました。
OpenMediaVaultのインストールは簡単にできました。セットアップでは、はじめはUIに少し戸惑ったけど、操作していく内に、昔の業務で使っていたNAS(NETGEARのReadyNAS)を操作していた頃を思い出し、あまり躓かずにできました。
最近では多くのデバイスを扱うようになったので、機会があれば本格的に自宅専用のNASを作って、画像ファイルなどを格納して管理できればなと思っています。
[END]