先日、ファイルサーバ(NAS)用にシングルボードコンピュータを新調したい、という記事を書きましたが、熟考の末 ROCK64 を購入しました!
base on NAS用シングルボードコンピュータを新調する – あららぼ
今回は ROCK64 1GB モデル か NanoPi シリーズで検討することにしました。
早速、NAS 化したいと思います。
目次
機種
- ROCK64 1GB
仕様
今回、1GB モデルを購入しました。
複数モデルがありますが、違うのはメモリ容量だけ(1, 2, 4GB)です。
- Rockchip RK3328 Quad-Core SOC with Mali 450MP2
- LPDDR3 RAM 1GB
- Gigabit Ethernet
- 2x USB 2.0 Host, 1x USB 3.0 Host
- 3.5mm Barrel Power (5V 3A) Port
詳細は下記公式サイトをご参照ください。
余談
1GB モデルの本体価格は、公式サイトでは最も安い船便を利用しても $36.85 です。
【内訳】本体価格:$24.95、船便:$11.99。
加えて、1GB モデルは在庫切れです。
今回は秋葉原に店舗を構えている秋月電子通商さんで購入しました。
1台 ¥4,280(税込)ですが、船便で 3週間〜1ヶ月くらい掛かることを考えると一考の価値があるのではないでしょうか。
【内訳】本体価格:¥3,780、配送費:¥500。
サプライ
本体と併せて買ったものは下記 2点です。
- DC ケーブル
内径1.35mm / 外径3.5mm センタープラスのもの。 - ケース
Raspberry Pi 3 Model B 向けのアクリルケース。
※Raspberry Pi 3 Model B とコネクタ位置が一致するため(ケース・ヒートシンク一体型などのシビアな設計でなければ)問題なく収まります。
ただし、電源コネクタ部分が(microUSB ではなく)DC コネクタのため加工が必要です。
私は、半田ごてで穴を広げて使っています。
セットアップ
OS
当ブログでも度々ご紹介している OS Armbian
をインストールしました。
今回は Ubuntu 版を導入したかったのでダウンロードページ下部にある Recommended download
からダウンロードしました。
※メインからダウンロードするとデスクトップ環境 xfce
付きのイメージファイルがダウンロードされます。
Rock64 – Armbian https://www.armbian.com/rock64/#kernels-archive-all
Recommended download
Builds were tested for booting and basic operations.
なお、microSD カードへの書込は当ブログおなじみの Etcher
を使っています。
起動
OS 導入後、通電してしばらくすると起動します。
初回はパスワードの設定を促されるので、そのまま設定してしまいましょう。
固定IP化
サーバとして利用するので、IPアドレスを固定化します。
Armbian は(Debian 版でも)オリジナルの Debian とは異なり、IPアドレス設定方法は従来から変わっていません。
Armbian(Ubuntu系)のN/W設定 – あららぼ https://ararabo.jp/2018-02-14/?p=4708
私は、interfaces.d ディレクトリ配下にファイルを作成するのが好みなので、下記のように作成しました。
# cat /etc/network/interfaces.d/default
# Wired adapter #1
allow-hotplug eth0
no-auto-down eth0
iface eth0 inet static
address 192.168.***.***
netmask 255.255.255.0
gateway 192.168.***.***
dns-nameservers 8.8.8.8 8.8.4.4
ファイルを保存したら、再起動して IP アドレスが反映されていることを確認しましょう。
ファイルサーバ化
NAS(ファイルサーバ)化するので、必要なパッケージの導入と設定を行います。
パッケージ導入
OS のアップデートをした後、必要となるパッケージを導入します。
# apt update -y && apt dist-upgrade -y
# apt install samba cifs-utils
The following NEW packages will be installed:
cifs-utils libavahi-client3 libavahi-common-data libavahi-common3 libcups2 libldb2 libtalloc2
libtevent0 libwbclient0 python3-crypto python3-dnspython python3-ldb python3-samba
python3-talloc python3-tdb samba samba-common samba-common-bin samba-libs tdb-tools
0 upgraded, 20 newly installed, 0 to remove and 0 not upgraded.
Need to get 9,837 kB of archives.
After this operation, 66.4 MB of additional disk space will be used.
Do you want to continue? [Y/n]
外部ディスクのマウント
パッケージ cifs-utils
の導入が終わったら、Rock64 に USB ディスクをつないでマウントします。
まず、ディスクが認識されていることを確認します。
今回は 250GB のディスクを接続しています。
# fdisk -l
Disk /dev/sda: 232.86 GiB, 250014072832 bytes, 488308736 sectors
Disk model: 1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 33553920 bytes
Disklabel type: gpt
Disk identifier: 9D92B423-0551-4534-B16E-4FE03D14E63B
ディスクをマウントするため、一意の id(UUID)を取得します。
下記例では d3de22a6-011e-440c-b344-7b47e582f8a9
です。
# blkid
/dev/sda1: LABEL="RAID1" UUID="d3de22a6-011e-440c-b344-7b47e582f8a9" SEC_TYPE="ext2" TYPE="ext3" PARTUUID="623ce170-1c1b-451b-a9ac-4f01bd654f6c"
取得した UUID を元にファイル fstab
に記述して、再起動します。
# diff -u /tmp/fstab /etc/fstab
--- /tmp/fstab 2021-03-21 08:21:57.412820785 +0900
+++ /etc/fstab 2021-03-21 08:22:47.629030708 +0900
@@ -1,2 +1,3 @@
UUID=1bce780c-130d-4b04-834a-816bb9b93608 / ext4 defaults,noatime,commit=600,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults,nosuid 0 0
+UUID=d3de22a6-011e-440c-b344-7b47e582f8a9 /media/usb250gb ext4 defaults,noatime,nodiratime,commit=600,errors=remount-ro 0 1
# reboot
起動して、ディスクをマウントできていることを確認します。
ファイル共有
マウントしたディスクを公開します。
クライアント設定
Rock64 へ接続する側の設定になります。
※Windows PC の場合は不要です。
media ディレクトリ配下にからディレクトリを作成します。
下記例では usb250gb
の部分。
# mkdir /media/usb250gb/
# ls -lhd /media/usb250gb/
drwxr-xr-x 4 root root 4.0K 3月 7 2020 /media/usb250gb/
サーバ設定
Rock64 側の設定です。
smb.conf
設定ファイル smb.conf
を編集します。
# diff -u smb.conf_org20210320 smb.conf
--- smb.conf_org20210320 2021-03-20 21:34:06.595563015 +0900
+++ smb.conf 2021-03-21 08:17:03.130056059 +0900
@@ -240,3 +240,12 @@
# to the drivers directory for these users to have write rights in it
; write list = root, @lpadmin
+[external]
+ comment = samba Directory
+ browseable = yes
+ path = /media/usb250gb
+ guest ok = no
+ writable = yes
+ create mask = 0764
+ directory mode = 0764
+ share modes = yes
- [*****]
カッコ内に共有フォルダ名を記述します。 ※ここではexternal
を指定。- comment
フォルダを開いた際のコメントになります。 - browseable
ファイル一覧を許可するか否かの設定です。 ※ここでは許可yes
を指定。 - path
マウントに利用するパスを指定します。 ※ここでは上記で作成したディレクトリ/media/usb250gb
を指定。 - guest ok
ゲストユーザーを許可するか否かの設定です。 ※ここでは拒否no
を指定。 - writable
書込権限を付与するか否かの設定です。 ※ここでは許可yes
を指定。 - create mask
Samba 経由でファイル作成する際の権限を指定します。 - directory mode
Samba 経由でディレクトリ作成する際の権限を指定します。 - share modes
ファイルのロック確認を行うか否かの設定です。 ※ここではファイルロックの確認を行うyes
を指定。
- comment
pdbedit
Samba サービスにユーザ情報を登録します。
下記例でのユーザ名は testuser
。
$ sudo pdbedit -a testuser
なお、OS 側に存在しないユーザの場合はユーザ登録を先に行います。
$ sudo useradd testuser
$ sudo passwd testuser
NAS への接続
サーバ(Rock64)を再起動した後、クライアントからコマンドを打ってファイル共有を確認します。
# mount -t cifs -o username=testuser,rw,file_mode=0777,dir_mode=0777 //192.168.***.***/external /media/usb250gb
- mount コマンドのオプション
-t
ファイルタイプ(ファイル共有プロトコル)を指定します。 ※ここではcifs
を指定。- o
オプションの指定(各オプションをカンマ区切りで指定する)。- username
接続に使用する資格情報を指定します。 ※ここでは上記で作成したtestuser
を指定。 - マウント時のモード
ファイルシステムをマウントする際のモードを指定します。 ※ここでは初期値rw
(読み書き可能)を指定。 - file_mode, dir_mode
ファイル共有時に使用するアクセス権を指定します。 ※ここでは初期値0777
を指定。
- username
- サーバパス
接続先のパスを指定します。 ※ここでは上記で作成したディレクトリへのパス//192.168.***.***/external
を指定。 - マウントパス
クライアント(ローカル)に作成したディレクトリを指定します。 ※ここでは上記で作成したディレクトリ/media/usb250gb
を指定。
- o