
中古で購入したミニPCにUbuntuをインストールして、4TBのポータブルSSDを取り付け、簡易的なファイルサーバーにしました。
ミニPCのUbuntuにSambaをインストールし、ポータブルSSDのディレクトリを共有フォルダに設定することで、自宅のWi-Fiに繋がっていればどの端末からでも共有フォルダ内のファイルにアクセスすることが可能となります。実質NASです。
セットアップの際の奮闘を、備忘録として残しておきます。
NASへの憧れとスマホのストレージの限界
NAS(Network Attached Storage)とは、平たく言うとネットワークに繋がるHDDないしSSDです。クラウドストレージのローカルネットワーク版みたいな感じで、同じネットワークに接続している端末からならNAS内のファイルにアクセスすることができます。
ブログを執筆するために、様々な端末を使用しています。自宅にはメインで使用しているデスクトップPC、出先に持ち運んで作業に用いるノートPC、ごろ寝機としてYouTube視聴や執筆作業に雑に使い倒すascon AT-08、ブログ用の写真撮影にも使用するスマホがあり、状況に応じて使い分けてブログを執筆しています。
ブログの記事はブラウザ上にデータがあるのでどの端末からでもアクセスできるのですが、問題になってくるのはファイルの共有です。当然ながら、記事に使う写真(知人の前ではイキって『素材』とか言ってます)はスマホの中にあることが多いので、PCに有線接続して画像を取り込むのですが、その手間をとても煩わしく思っていました。
さらに、数年間撮り溜めてきた写真で、スマホのストレージが埋まりつつあるという状況でもありました。ある日ストレージ使用量を見てみると、ストレージ256GBのうち、使用率が80%を占めていました。
端末間でのファイル共有の簡便化と、スマホの容量の開放の両方を満たす手段として、ファイルサーバーを導入することにしました。NAS専用の端末もあるのですが、調べてみると、適当なミニPCにストレージを繋ぎ、SMBでのファイル共有を使えば、ファイルサーバーとして疑似的にNASと同じような運用ができることがわかったので、まずはミニPCを探してみることにしました。

すると、タイミング良く大須の「パソコンショップ パウ」にて、良さげなミニPCが7700円で売られていたのでした。スペックは第7世代Core i5(Core i5-7260U)で、メモリ4GB、内部ストレージ128GBとなっています。ACアダプタ欠品のためジャンク扱いでした。

Ginga Systemという会社がテレワーク用の通話端末としてリースしていた「LG1001」という機種のようですが、少し調べてみると、中身はインテルのミニPC「Intel NUC」なのだとか。


欠品だったACアダプタは、ハードオフの青箱から、電力と端子のサイズが合うノートパソコン用のものを適当に購入したところ、問題なく通電できました。ブート画面がGinga Systemのテレワーク通話システム(LoopGate)のものになっています。

OS無しの状態で売られていたので、USBからUbuntuをインストールしました。特に問題なく、インストールできました。
UbuntuにSambaを設定、簡易ファイルサーバー化
1. ポータブルSSDのマウントの設定
ポータブルSSDはあらかじめ、exfatでフォーマットしておきます。
Ubuntuはリムーバブルメディアを挿入すると自動的に/media以下にマウントされるのですが、そこはパーミッションを操作できないので、/mnt以下にパーミッション777のディレクトリを作り、そこにSSDをマウントすることにします。
sudo mkdir /mnt/ssd #ここにSSDをマウント
sudo chmod 777 /mnt/ssd
sudo mount /dev/sdb /mnt/ssd #実際のデバイス名はsudo fdisk -lで確認。
続いて、/etc/fstabの内容を編集します。既にいろいろ書いてありますが、その下に以下の内容を入力すると、ポータブルSSDをUbuntuの起動時に自動で/mnt/ssdにマウントしてくれるようになります。
#(略)
UUID=AAAA-BBBB /mnt/ssd exfat defaults,umask=000,uid=1000,gid=1000
fstabに記入するUUIDは、blkidで確認したポータブルSSDのものを指定します。その他の引数は「umask=000」がマウントしたSSDのパーミッションを777に指定するという意味で「uid=1000」と「gid=1000」はマウントしたSSDのファイルやディレクトリの所有者をrootではなくUbuntuのユーザーに指定できるという意味です。
2. Sambaのインストール、共有フォルダの設定
ファイルの共有をするには、ファイルサーバー用UbuntuにSambaをインストールする必要があります。
sudo apt install samba
インストール後、/etc/samba/smb.confの内容を編集します。既にいろいろ書いてありますが、一番下に以下の内容を入力します。
#(略)
[NAMAS]
path=/mnt/ssd/NAMAS
browseable=yes
read only=no
writable=yes
create mask=0777
directory mask=0777
[ ]内は共有フォルダの名前です。ここは[share]とされることが多いのですが、今回はNASへのあこがれから「NAS」と「なまこ」を合体させて[NAMAS]と命名しました(笑)SSDに「NAMAS」という名前の新規ディレクトリを作成した状態で、SSDを/mnt/ssdにマウントすると、/mnt/ssd/NAMASでSSD内のNAMASディレクトリにアクセスできます。今回は/mnt/ssd/NAMASを共有フォルダにします。
browseableをyesにすると、ネットワーク上のPCから共有フォルダを閲覧可能になります。read onlyは共有フォルダ内のファイルを読み取り専用で開くか否か、writableは共有フォルダ内のファイルを書き込み可能にするか否かを決定します。create maskおよびdirectory maskで、共有フォルダの新規ファイルやディレクトリのパーミッションを決定できます。
続いて、共有フォルダのパスワードを指定します。
sudo smbpasswd -a (ファイルサーバー用Ubuntuユーザー名)
上記のコマンドを入力し、Samba用のパスワードを設定すると(Ubuntuのユーザーパスワードとは別扱いです)、ファイルサーバー用Ubuntuのユーザーアカウントが、Sambaのユーザーとして登録されます。
sudo systemctl restart smbd
最後に、systemctlでsmbdを再起動すると、共有フォルダの設定が読み込まれ、SSD内のディレクトリNAMASがローカルネットワーク上に公開されます。
3. 共有できているか確認
#sudo apt install net-tools
ifconfig
ifconfigで、ファイルサーバーのローカルIPアドレスを確認します。今回はローカルIPアドレスが「192.168.2.124」となりました。
共有フォルダにアクセスしたい端末から、エクスプローラ(ファイルマネージャー)のアドレス欄にファイルサーバーのローカルIPアドレス「\\192.168.2.124\」を入力すると、Sambaユーザー名とパスワードを求められるので、ユーザー名にSambaユーザー名(=ファイルサーバーのUbuntuユーザー名)と、先で設定したパスワードを入力すれば、公開した共有フォルダにアクセスできるようになります。



ファイルサーバーの「NAMAS」ディレクトリが共有フォルダとして自宅ネットワーク内に公開され、自宅のWi-Fiネットワークに接続しているすべての端末からアクセスできるようになりました。
あとがき
スマホのストレージ問題も、自宅内のデバイス間でのファイル共有問題も、簡易自作ファイルサーバー「NAMAS」で一気に解決することができました。画像をファイルサーバーに移したことで、スマホのストレージ使用率を80%から43%まで減らすことに成功しました。

当然ながらファイルサーバーのUbuntuも、定期的にパッケージ更新をする必要があります。ミニPC側のメンテナンスの度に、ミニPCにディスプレイを繋ぐのが面倒なので、僕はミニPCの画面をキャプチャーボードでメインPCのOBS Studioに出力することで対応しています。(ミニPCのマウスとキーボードはBluetoothキーボードを使用しています)
次は外出先からアクセスするための、VPN導入編でお会いしましょう…。(苦戦中)