【特集】楽天モバイル 14,000ポイントキャンペーン

UGREEN NAS「DXP2800」をSSDで組んでUbuntu化|NASじゃなく24時間AIマシンにしてみた【後編|Ubuntu Server インストール・設定編】

  • URLをコピーしました!
目次

【後編】SSDにUbuntu Serverを入れて24時間マシンにする

たまお

前編で予告してた、UGREEN NASのUbuntu化をした。

たまみ

できた。SSHもTailscaleも通して、Macからどこでも触れる24時間マシンになった。やった手順を順番に書くよ。

📖 この記事は後編です

開封・SSD 取り付け・初回セットアップは前編にまとめています。先に前編から読むのがおすすめ。
👈 前編|開封・セットアップ編を読む

クーポンコード TAMACION で5%OFF‼️

UGREEN公式サイトでは、メールアドレス登録でキャンペーンに参加でき、抽選で賞品が当たる企画も実施予定です。

やったことの全体像

結論、UGOSは消さずに残したまま、256GBのM.2 SSDだけにUbuntu Server 24.04.4 LTSを入れて、SSHとTailscaleで遠隔から触れる常時稼働マシンになった。アイドル時はCPU温度55℃、メモリ使用3%、SSD使用2.9%で、ファンの音もほぼ気にならない。N100は省電力なので、24時間つけっぱなしでも電気代は月200円くらい。

順番はこの6ステップ。

  • Ubuntu Server入りのUSBを作る
  • BIOSで3つだけ設定する(Watchdog無効・USB最優先・停電復旧)
  • Ubuntu Serverをインストールする
  • MacからSSHで入る
  • Tailscaleで外出先からも触れるようにする
  • sudoパスワード省略と停電復旧を仕上げる

大前提:UGOSは消さない。SSDだけにUbuntuを入れる

UGREEN NASには本体内部にもストレージ(29.2GBのeMMC)があって、ここにUGOSというLinuxベースのカスタムOSが入っています。今回はこれを残したまま、新しく挿した256GBのM.2 SSDだけにUbuntuを入れます。

インストール時のディスク選択を間違えてeMMC側を消すと、UGOSが飛びます。インストーラ画面で「SPCC M.2 PCIe SSD 238.474G」だけが選ばれていることを必ず確認してから進めます。

① Ubuntu Server入りのUSBを作る

たまお

ここから先は、あくまで僕の環境の話です。

たまみ

出来ればChatGPT(Codex)に聞きながらやるほうが良いです。

今回はサーバー用途なので、軽くて余計なものが入っていないUbuntu Server版を作ります。

ISOを公式から取って、SHA256で中身が壊れていないか検証します。

curl -L -o ~/Downloads/ubuntu-24.04.4-live-server-amd64.iso \
  https://releases.ubuntu.com/24.04/ubuntu-24.04.4-live-server-amd64.iso

curl -L -o ~/Downloads/SHA256SUMS-ubuntu-24.04.4 \
  https://releases.ubuntu.com/24.04/SHA256SUMS

cd ~/Downloads
shasum -a 256 -c SHA256SUMS-ubuntu-24.04.4 2>/dev/null | \
  grep 'ubuntu-24.04.4-live-server-amd64.iso: OK'

「OK」と返ってきたら、Macに32GBのUSBを挿してddで書き込みます。書き込み先のディスク番号(ここでは /dev/disk6)は diskutil list で必ず自分の環境のものを確認してください。間違えるとMac本体のディスクを潰します。

diskutil unmountDisk /dev/disk6
sudo dd if=~/Downloads/ubuntu-24.04.4-live-server-amd64.iso of=/dev/rdisk6 bs=4m conv=sync
sync
diskutil eject /dev/disk6

② BIOSで3つだけ設定する

USBが出来たら、NASにHDMIでモニターを、USBにキーボードを挿します。電源を入れた直後にBIOSへ。入るキーはCtrl+F2でした。

  • Ctrl+F2

DXP2800のBIOSはAMI製でした。MainタブにIntel N100、8192MB DDR5(4800MHz)、SPCC M.2 PCIe SSD 256GB が並んでいるのを確認できます。

BIOSのMain画面。Intel N100・8192MB・256GB SSDを認識

AdvancedタブからWatchDog Settingsを開いて、Watch Dog Controlを「Disabled」にします。これはOS側で応答が止まったときに勝手に再起動する仕組みで、サーバーとして使うときは切っておきます。

BIOSのAdvancedメニュー。WatchDog Settingsを選ぶ
Watch Dog Controlを Disabled に切り替え

続いてBootタブで、Boot Option #1にUSB Key(JetFlash Transcend 32GB)を選びます。インストールが終わったら戻すので、ここは一時的な設定です。

Boot Option #1にUSB Keyを最優先で指定

保存して再起動。F10で保存→Yesでいけました。

③ Ubuntu Serverをインストールする

USBから起動すると、systemdが立ち上がってきて、GRUBの選択画面になります。

GNU GRUBで Try or Install Ubuntu Server を選ぶ

ここから先はステップに分けます。

STEP
言語はEnglish、インストーラ更新は無し

言語は英語のまま進めます。日本語表示には対応していないので、無理に変えるとレイアウトが崩れることがあります。

インストーラの言語選択でEnglish

続いてインストーラの更新を聞かれます。今回は「Continue without updating」を選びます。理由は、後でOSが立ち上がってから apt full-upgrade で一気に新しくできるからです。

インストーラ更新の選択画面
Continue without updating を選択
STEP
インストールタイプはUbuntu Server(フル)

Ubuntu ServerとUbuntu Server (minimized) の2択。今回は Ubuntu Server を選びました。最小構成は本当に最低限しか入らないので、普通に使うならフルでいいです。

Choose the type of installationでUbuntu Serverを選択
STEP
ネットワークはDHCP、Proxyは空欄

有線LAN(enp2s0)が認識され、Intel I226-Vの2.5GbE NICが見えます。DHCPでIPが自動で割り当てられました。家庭のルーター下なら基本このままでOK。

ネットワーク設定。enp2s0がDHCPでIPを取得
IPv4はAutomatic (DHCP)を選択

Proxyは空欄、ミラーはデフォルトの日本国内のサーバー(jp.archive.ubuntu.com)で「passed」と出るのを確認して進めます。

Proxy設定は空欄のまま
日本のミラーがpassed判定
STEP
ストレージ:SSDだけにシンプルに入れる(最大の注意ポイント)

ここが一番神経を使うところです。「Use an entire disk」を選び、ディスクが SPCC_M.2_PCIe_SSD ... 238.474G になっていることを確認します。eMMC(29.2G)が選ばれていないかも合わせて目視。

Guided storage configurationの初期画面

今回はLVMも暗号化も使いません。UEFI+GPT+ext4のシンプル構成です。LVMのチェックを外して、ディスクは256GB SSD一択に。

LVMのチェックを外した状態

次のサマリ画面で、USED DEVICES に SPCC_M.2_PCIe_SSD ... だけが入っていて、/boot/efi(fat32)と /(ext4, 237.4G)に分かれていることを確認します。eMMC側は AVAILABLE のままで未マウントなら安全です。

Storage configurationのサマリ。SSDだけがUSED

確認画面で「Confirm destructive action」と出ます。Continueを選ぶと戻れません。ここで 消去対象がSSDだけ である最終確認をしてから進みます。

破壊的操作の最終確認画面
STEP
ユーザー作成・SSHを有効・Snapは選ばない

名前・ホスト名・ユーザー名・パスワードを決めます。ホスト名は ugreen-nas、ユーザー名は user のような自分が覚えやすいものに。

Profile configuration。名前・ホスト名・ユーザー名・パスワードを入力

Ubuntu Proは Skip for now。後から pro attach で有効化できるので、最初はスキップで十分です。

Ubuntu Proの案内画面。Skip for now を選択

次のSSH画面で Install OpenSSH server を必ず有効 にします。これを入れ忘れると、後でMacから入れず、毎回HDMIモニターを繋ぐ羽目になります。

SSH configuration。Install OpenSSH serverを有効化

最後のFeatured server snapsは 何もチェックしない でOK。後から必要なものだけ入れた方が、無駄が出ません。

Featured server snapsは何も選ばない
STEP
完了→USBを抜く→loginプロンプト

あとは待つだけ。「Installation complete!」が出たら再起動です。

Installation complete!の表示

再起動の途中で「Please remove the installation medium, then press ENTER」と出るので、USBを抜いてEnter。

USBを抜いてEnterを押す案内

無事に立ち上がると、見慣れたloginプロンプトが出ます。これでUbuntu Server 24.04.4 LTSのインストールは終わりです。

Ubuntu 24.04.4 LTSのloginプロンプト
たまお

お疲れ様でした。

④ MacからSSHで入る

ここからはモニターもキーボードも要りません。Mac側から鍵で入って、あとは机に座ったまま全部やります。

まずNASがLAN内のどのIPに居るのか分からないので、ポート22(SSH)が開いている端末をスキャンします。家のサブネットが 192.168.x.0/24 なら、こんな感じ。

for ip in 192.168.x.{1..254}; do
  (nc -G 1 -z "$ip" 22 >/dev/null 2>&1 && echo "$ip") &
done
wait

候補が複数出たら、MACアドレスのベンダーを見て「Ugreen Group Limited」になっているのが本体です。あとは決めたユーザー名で入るだけ。

ssh user@192.168.x.x

初回はパスワードで入ります。ログインすると、こんなMOTD(ログイン時の挨拶画面)が出ます。

ログイン直後のMOTD。Temperature 55.0C、Memory 3%、SSD 2.9%、37 updates

アイドル状態でCPU温度が55℃、メモリ使用は3%、SSDは232GB中2.9%しか使っていません。N100は思った以上に余裕がありそうです。

毎回パスワードを打つのは面倒なので、Macの公開鍵を authorized_keys に登録します。Mac側で鍵があるか確認して、NAS側に追記する流れ。

# Mac側
test -f ~/.ssh/id_ed25519.pub && cat ~/.ssh/id_ed25519.pub

# NAS側(SSHで入ってから)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo '<Macの公開鍵をここに貼る>' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

これでMacから鍵だけでSSHが通るようになります。ここから先、パスワード入力は基本ゼロ。

ついでにOSも一度きれいにしておきます。

sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt full-upgrade -y
sudo reboot

⑤ Tailscaleで外出先からも触れるようにする

家の外からNASに入れるようにすると24時間マシンが本領発揮できます。今回は手軽さでTailscaleを選びました。ルーターのポート開放も、固定IPの契約も要りません。

公式のインストールスクリプトを叩いて、起動するだけです。

curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --hostname=ugreen-nas

表示されたURLをMacのブラウザで開いてログインすると、Tailscaleが 100.x.x.x 系のIPを割り当ててくれます。あとはTailscaleに入っている端末ならどこからでも、その内向きIPで普通にSSHできます。

ssh user@100.x.x.x

最初は --ssh オプションを付けてTailscale SSHも有効にしてみました。ただTailscale SSHはACL(誰がどの端末に入っていいかのルール)で、ブラウザでの追加確認が出ることがあって、自分の使い方には合いませんでした。最終的にTailscaleはVPNとして使い、SSHは通常のOpenSSH鍵認証にしています。

sudo tailscale set --ssh=false

⑥ sudoパスワード省略と停電からの自動復帰

遠隔から作業していると、sudoのたびにパスワードを聞かれるのが面倒です。管理用ユーザーだけパスワードを省略するように設定しました。

echo 'user ALL=(ALL) NOPASSWD:ALL' | \
  sudo tee /etc/sudoers.d/90-user-nopasswd >/dev/null
sudo chmod 440 /etc/sudoers.d/90-user-nopasswd
sudo visudo -cf /etc/sudoers.d/90-user-nopasswd

parsed OK と返れば成功です。書き方を間違えるとsudo自体が壊れるので、必ず visudo -cf で構文チェックしてください。

NOPASSWDはセキュリティとのトレードオフです。鍵を盗まれた瞬間に何でもできる状態になります。自宅LAN+Tailscaleの中だけで使う、自己責任で という前提でやります。共有環境や外向きサーバーでは止めておきましょう。

あと、停電したあと自動で立ち上がってほしいので、BIOSのPower Settingsで「Power Loss」を「Power On」に変えます。これはOSの設定では無理で、BIOS側だけで効きます。

BIOSのPower Loss設定をPower Onに変更

Wake-on-LANも有効でした(Wake-on: g)。落ちたら起動する、寝てたら起こせる、の両方が揃った状態です。

sudo ethtool enp2s0 | grep -E 'Supports Wake-on|Wake-on|Link detected'

実際の感想 省電力で静かな常時稼働マシンになった

立ち上げて何もしていない状態で、CPU温度55℃、メモリ使用3%、SSD使用2.9%、ロードアベレージ0.02。背面のファンが回っていますが、机の上に置いていてもほぼ気になりません。N100のミニPCを一台、机の隅に置いている感覚に近いです。

NAS用のガワに、ちゃんとしたLinuxサーバーが入ってて、外からも触れるのは新感覚。せっかくなので、もともとRaspberry Pi 5で動かしていたLINE OpenChat Bot「Tamami」をそのままここに移してきて、PiとNASで同じ条件のスピードテストまで取ってみました。

⑦ AI導入:LINE Bot「Tamami」をRaspberry Pi 5からNASに移す

常時稼働マシンの最初の用途として、もともとRaspberry Pi 5で動かしていたLINE OpenChat Bot「Tamami」を、UGREEN NAS上のUbuntu 24.04に移してきました。Tamamiは複数のオプチャを見て、Hermesというサイドカーのローカル推論APIに問い合わせて返信を作り、画像生成や定期同期まで抱えている、わりと重めの構成です。

たまお

Tamamiは個人の趣味で作っているアプリで公開はしていません。

もともとの構成はこんな形です。

LINEJS / Tamami
  -> localhost の Hermes API :8642
  -> provider / tools / memory
  -> Tamami が LINE に返信

移行後も、この構成自体は何も変えていません。変えたのは実行ホストだけです。

移行前: Raspberry Pi 5
移行後: UGREEN NAS DXP2800 / Ubuntu 24.04

Dockerは挟まず、Ubuntuのuser systemdでそのまま動かしています。NAS側にもPiと同じスタックを揃えてから、Pi上のTamamiとTamami-Hermesの実行環境、設定、runtime、Hermesの.hermesデータをNASに同期しました。

⑧ Raspberry Pi 5 vs UGREEN NAS:スピードテスト

移行が落ち着いたところで、PiとNASで同じ条件のテストを回しました。実運用に近い範囲で、LINEへの投稿を伴わないテストにしています。測ったのはこのあたりです。

  • Tamami の構文チェック(pnpm check
  • Tamami のテスト一式(289件)
  • Hermes のテスト一式(28件)
  • Hermes config コマンドの起動
  • Node.js のCPUベンチ
  • Hermes API の /health 応答

比較した環境

ソフトウェアのバージョンはほぼ揃え、違いはCPUアーキテクチャ(ARM Cortex-A76 vs x86_64 Intel N100)だけ、という状態にしました。

【Raspberry Pi 5】
OS: Debian GNU/Linux 13 trixie
CPU: Cortex-A76 / 4 cores
RAM: 7.9 GiB
Node.js: v22.22.2
pnpm: 10.30.1
Hermes Agent: v0.13.0
Python: 3.11.15
【UGREEN NAS DXP2800】
OS: Ubuntu 24.04.4 LTS
CPU: Intel N100 / 4 cores
RAM: 7.5 GiB
Node.js: v22.22.2
pnpm: 10.30.1
Hermes Agent: v0.13.0
Python: 3.11.15

結果一覧

テスト内容Raspberry Pi 5UGREEN NAS
Tamami pnpm check2.01秒1.87秒NASが約7%速い
Tamami pnpm test 289件2.29秒1.88秒NASが約18%速い
Hermes test 28件0.31秒0.24秒NASが約23%速い
Hermes config 起動0.55秒0.41秒NASが約25%速い
Node.js CPUベンチ1.14秒0.69秒NASが約40%速い
Hermes /health約0.9〜1.0ms約0.7〜1.2msほぼ同等

Tamamiのテスト(289件)

Raspberry Pi 5: 2.29秒
UGREEN NAS:    1.88秒

NASのほうが約18%速い結果でした。この差は、Bot返信1回ごとにそのまま体感できるほど大きいわけではありません。ただ、テスト実行、再起動、開発中の確認、複数処理が重なる場面ではNASのほうが余裕があります。

Hermesのテスト(28件)

Raspberry Pi 5: 0.31秒
UGREEN NAS:    0.24秒

こちらもNASが約23%速い結果でした。HermesはTamamiの返信生成、ツール利用、メモリ参照などのサイドカーとして動いているので、ここが少しでも軽いとBot全体の安定感にも効いてきます。

Node.js CPUベンチ

Raspberry Pi 5: 1.14秒
UGREEN NAS:    0.69秒

差が一番大きかったのがNode.jsのCPUベンチで、NASのほうが約40%速い結果でした。TamamiはNode.jsで動いているため、この差はわりと重要です。通常の返信ではネットワーク待ちやLLM API待ちのほうが支配的ですが、ログ処理、画像/動画生成前後の処理、複数チャットの監視、JSONLの読み書きなどではCPUの余裕が効きます。

Hermes APIの/health応答

Raspberry Pi 5: 約0.9〜1.0ms
UGREEN NAS:    約0.7〜1.2ms

Hermes APIの/healthは、どちらもほぼ1ms前後で、ここはほぼ差がありません。実際の返信では、Hermes API自体のローカル応答よりも、LLM API、検索、メモリ、画像生成などの外部処理のほうが時間を使います。

⑨ 体感と移行後の稼働状態

単純なメッセージ返信だけなら、Raspberry Pi 5でも十分動きます。それでも今回のように、Tamamiが複数のオプチャを見て、Hermes API、メモリ、画像生成、動画生成、定期同期まで抱える構成だと、NASのほうが安心感があります。

差を感じやすいポイント

  • テスト実行が速い
  • Node.js 処理に余裕がある
  • systemd 運用が安定している
  • ストレージ容量に余裕がある
  • NAS なので常時稼働前提にしやすい
  • Pi を他用途に戻せる

後編まとめ

後編をやってみて、UGREEN DXP2800はNAS専用機ではなく、省電力なLinuxマシンとしても十分使えるということがわかりました。BIOSが普通のAMI製で、USBブートも素直に通る。M.2 SSDだけにOSを入れれば、内蔵のUGOS領域は残せます。後から「やっぱりNASに戻したい」と思えば、SSDを抜いてUGOSで起動すればいいだけ。

さらに、もともとRaspberry Pi 5で動かしていたLINE Bot「Tamami」をそのまま乗せて、Piと同条件でスピードテストまで取りました。ざっくりまとめるとこんな結果です。

  • 軽い health check(/health)はほぼ同等
  • Tamami/Hermes のテストは NAS が約18〜25%速い
  • Node.js の CPU 処理は NAS が約40%速い

LINE Botの返信そのものは外部LLM API待ちも多いので、毎回40%速くなるわけではありません。それでも、常時稼働、複数チャット監視、画像/動画生成、ログ処理、定期同期まで含めた運用では、UGREEN NASのほうが余裕があります。Raspberry Pi 5でも動くけど、本番Botを長く安定運用するならUGREEN NASのほうが向いている、というのが今回の結論です。

たまみ

N100+8GBメモリ+2.5GbE+HDMIで、Pi 5より余裕があるAIマシンが手元にある安心感はかなり強い。

たまお

Tamamiの本番ホストはこれでしばらく回します。

👈 前編を読み返す

開封・SSD 取り付け・メモリ増設口・初回セットアップは前編にまとめています。
👈 前編|開封・セットアップ編を読む

クーポンコード TAMACION で5%OFF‼️

【特集】楽天モバイル ポイントキャンペーン

楽天モバイルに乗り換えると14000ポイントをゲット出来る紹介キャンペーン開催。

楽天モバイルの紹介キャンペーンを利用すると、14000ポイントがもらえます!乗り換えを検討している方は、この機会をお見逃しなく!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次