幸者堂

【🍆】Network Attached Storage(NAS)をminiPC(GMKtec NucBoxG9)で作ろう!

update:2025/03/27

Category : Network


私が使っているiphoneのストレージが限界になってきたので写真や動画をNASに上げようと思ったのがきっかけです。 UbuntuPCとiphoneからアクセスでき、なおかつVPNを用いて屋外からでも参照できるというのが今回の目標です。

NASの実行環境

Amazonの画像
使用したマシン

サーバ側の設定

マシン:GMKtec NucBoxG9

今回使用したGMKtecは安かったので買いました。CPUはN150で3.5Ghzとそこそこ高速で、SSDはnvmeが4枚刺さります。 このメーカーは中華系の会社で小さいNAS用のPCを作ることで知られています。

G9にはWindows 11 proとUbuntu 24.10のデュアルブートがデフォルトで入っています。Windows OSしか触れないという人にはありがたいかもしれませんね。

一方でUbuntu24.10のチョイスは正直謎です。中華のメーカーのプリインストールのUbuntuだなんて怖いですし、私はさくっと消してUbuntu24.04を入れ直しました。 なおこのubuntu24.10のデフォルトユーザのパスワードは12345だそうです。24.10は日本語対応も微妙だし入れ直すのが無難でしょうが、どうしても24.10を使用したいという方がいるのなら、パスワード12345です。でも、本当におすすめしませんよ?

ちょっと使った感覚としては「小さくコンパクトで静か。ちょっと熱くなりやすいかな」といった感じでした。

ディスクの認識

今回はSSDを1枚だけ使用します。RAIDは今後実装予定です。(いつか更新するかも)

ディスクマウントの方法は

mkdir -p /mnt/nas
mount /dev/nvme0n1p1 /mnt/nas

でOKです。

サーバが再起動するなどした場合でも自動でマウントできるようにするなら/etc/fstab

/dev/nvme0n1p1 /mnt/nas ext4 defaults 0 0

と書けば良いでしょう。

ディスクパーティション

SSDにパーティションが用意されてない場合は

fdisk -l /dev/nvme0n1 # diskの容量を確認
fdisk /dev/nvme0n1

のようにfdiskコマンドで新しいパーティションを作ることができます。 fdiskコマンドは対話式でパーティションを作成できるので迷うことはないでしょう。

mkfs.ext4 /dev/nvme0n1p1

でフォーマットをext4に直し、

mkdir -p /mnt/nas
mount /dev/nvme0n1p1 /mnt/nas

でマウント完了!

NAS:samba

sambaはファイルサーバ提供を行うソフトウェアで、サーバ内のディレクトリを外部に共有する機能を提供します。

インストール

apt install samba

で入ります。

共有手順

sambaの設定ファイルは/etc/samba/smb.confにあります。

[NAS] #iphoneやその他のPCなどから見える識別子。
   path = /mnt/nas #共有するディレクトリ
   browseable = yes # ネットワーク上から見つけられる(iphoneから見つけやすくなる)
   writable = yes #書き込みを許可する
   guest ok = no #認証なしユーザの拒否
   create mask = 0777 # 新しく生成されるファイルのパーティション
   directory mask = 0777 # 新しく生成されるディレクトリ(フォルダ)のパーティション
   valid users = hoge # 許可されるユーザー名

以上のように設定すればよい。なおhogeはubuntuに存在するユーザ名である必要があり、また認証のためにsmbpasswdでパスワードを設定する必要があります。

認証設定

adduser hoge

でOKです。

smbpasswd -a hoge

でOKです。パスワードを忘れた際などの再設定でも同様にできます。

sambaの実行

systemctl enable smbd.service #サーバの再起動時でも自動で立ち上げる
systemctl restart smbd.service

VPN:tailscale

VPNを使うことで自宅外にいてもアクセスできるようになります。 嬉しいね!

tailscaleはメールアドレスを用意だけで利用できます。とても便利で簡単なVPNです。 個人で使う文には3つのアカウントまで、100台のマシン(そんな使う!?)までなら無料で追加できます。 iphoneでもAppStoreにあり、ダウンロードするだけで接続できます。

インストール

公式でダウンロードできます。

curl -fsSL https://tailscale.com/install.sh | sh

初回時は

$ tailscale up
To authenticate, visit:
	https://login.tailscale.com/a/{ハッシュ値}

がでてくるのでURLを踏んでログインすれば良いです。(新規のmailアドレスも同時に追加できる)

管理画面からも端末追加のスクリプト生成などはできます。

使い方

tailscaleは以下を覚えておけばたいてい困りません。

なお、実行時にはsudo権限が必要なのでsudo tailscale upなどと使いましょう。

クライアント側の設定

UbuntuPC

UbuntuPCではエクスプローラーからアクセスする方法とコマンドラインからマウントする方法の2つがあります。

エクスプローラー

これは単純。開いて左のサイドバー中にあるその他の場所からネットワークに表示されるNASのマシン名を選択すれば良いです。 VPN経由である場合はここに表示されないこともある他、サーバのsambaの設定ファイルでbrowseable = no にしていた場合でも右下にある記入欄に

smb://{IPアドレス}

と追加することで見えるようになります。

記入欄

コマンドからマウント

/mnt/nasにNASのファイルをマウントする方法を記します。

sudo apt install cifs-utils -y
sudo mkdir -p /mnt/nas
sudo mount -t cifs -o username=hoge,password={パスワード} //{NASのIP}/NAS /mnt/nas

これでマウントされます。再起動時でもマウントするには/etc/fstab

//{NASのIP}/NAS /mnt/nas cifs username=hoge,password={パスワード},iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

を追加してsudo mount -aでOKです。

iphone

色々とアプリはありますが無料で使えてそこそこ便利なのはDocument Readdleだと思います。 これをダウンロードしましょう。

NASの追加

ReadleにNASを登録するには設定画面で

とすることで認識、接続できるようになります。

最後に

ここまで読んでくれてありがとうございます。

私は今回作成したNASを用いて資料を共有したり、写真や動画のバックアップなどに用いています。 とても便利なのでみなさんもどうぞ。