本筆記完整記錄如何利用 Onn 4k Android TV 電視盒子 搭配 Termux 與外接 128 GB USB 隨身碟,建置包含 SSH/SFTP、Filebrowser 網頁網碟與 Rclone WebDAV 的輕量級個人 NAS 系統。

  • 其他電視盒子同樣適用下面方法
  • 也可以插入大容量例如 2TB 或 4TB 的外接硬碟,但需注意外接硬碟需要額外供電。

一、 硬體準備與前期排查

1. 硬體連接 (OTG)

Onn 4k 盒子僅有一個 Micro USB 供電孔。必須使用 OTG 供電分接線 (OTG Y-Cable) 或帶供電功能的 USB Hub,才能在為盒充分供電的同時,外接 USB 隨身碟。

OTG 供電分接線

2. 磁碟相容性關鍵(重要發現)

  • ext4 格式:插入未 Root 的 Onn 盒子後,系統與第三方檔案管理員(如 CX 檔案總管)完全無法讀取。
  • NTFS 格式:CX 檔案總管可讀取(因自備驅動),但 Android 系統底層通常僅給予唯讀權限,Termux 無法寫入。
  • 錯誤徵兆:若隨身碟插入電視盒子後,進入系統「儲存空間」僅顯示「USB 隨身碟」且只有**「退出」選項(無格式化選項),且 CX 檔案總管找不到,代表磁碟分割表格式不相容(通常為 GPT)**。
  • 終極解法:必須將隨身碟重新做成 MBR (MS-DOS) 分割表 + exFAT 檔案系統

二、 在電腦重做隨身碟 (MBR + exFAT)

根據讀者使用的作業系統不同,請選擇對應的格式化方法:

選項 A:在 Windows 系統操作

在 Windows 中,直接在檔案總管按右鍵格式化無法變更分割表類型(會維持原本的 GPT)。必須透過「磁碟管理」來徹底重做 MBR 分割表:

  1. 開啟磁碟管理:按下鍵盤 Win + X,在選單中選擇**「磁碟管理」**(或按下 Win + R 輸入 diskmgmt.msc)。
  2. 尋找隨身碟:在下方清單中仔細辨識你的 128 GB 隨身碟(通常顯示為「磁碟 1」或「磁碟 2」,容量約 117 GB)。請務必看清楚,千萬不要選錯硬碟!
  3. 刪除現有磁碟區:在隨身碟的橫條區塊上按右鍵,選擇**「刪除磁碟區」**。若隨身碟內有多個分割區,請全部刪除,直到整支隨身碟變成黑色橫條的「未分配」狀態。
  4. 轉換為 MBR:在隨身碟最左側寫著「磁碟 X / 基本 / XXX GB」的方塊區域按右鍵,檢查彈出選單:
    • 若有 「轉換成 MBR 磁碟」 選項,請點擊轉換。
    • 若該選項呈灰色無法點選,且顯示的是「轉換成 GPT 磁碟」,代表它目前已經是 MBR 格式,不需額外轉換。
  5. 新建磁碟區與格式化
    • 在黑色的「未分配」空間上按右鍵,選擇**「新增簡單磁碟區」**。
    • 一路點擊「下一步」維持預設數值,直到看見「格式化磁碟區」頁面。
    • 檔案系統:務必下拉選擇 exFAT
    • 磁碟卷標(名稱):輸入 ONN_NAS
    • 勾選「執行快速格式化」,點擊下一步直到完成。

選項 B:在 Ubuntu 桌面版操作

  1. 開啟 Ubuntu 的 「磁碟 (Disks)」 應用程式。
  2. 在左側清單點選該外接隨身碟(本例中為 117.8G 磁碟,代號 sdb)。
  3. 點擊視窗右上角的 「三個點 (⋮)」選單(針對整顆磁碟,非下方齒輪)。
  4. 選擇 「格式化磁碟… (Format Disk…)」
  5. 在「分割 (Partitioning)」下拉選單中,務必選擇 「與所有系統和裝置相容 (MBR / DOS)」,然後執行格式化。
  6. 格式化後,點擊下方的 「+」 號按鈕為未配置空間建立新分割區。
  7. 空間大小維持預設(全滿),點擊下一步。
  8. 設定名稱為 ONN_NAS,類型勾選 「與所有系統和裝置相容 (FAT/exFAT)」 或直接指定為 exFAT,點擊建立。

註:完成後插回電視盒子,CX 檔案總管即可順利識別並讀寫。


三、 Android 分區儲存權限破解與目錄建置

由於 Android 11+ 的 Scoped Storage(分區儲存)限制,Termux 預設無權在外接隨身碟的根目錄任意寫入。Android 僅允許 Termux 在其專屬的私有目錄內擁有完全控制權。

1. 查詢隨身碟 UUID

將隨身碟插回 Onn 盒子,打開 Termux(或透過 SSH 連入),執行:

termux-setup-storage
ls -l /storage

Log 輸出範例:

total 40
drwxr-xr-x. 13 root everybody 32768 Jan  1  1970 A3B8-565F
drwx--x--x.  3 root everybody  4096 Jun  2  2023 emulated
drwxr-x--x.  2 root root         60 Jun  2  2023 self

得知隨身碟在 Android 系統底層的 UUID 代號為 A3B8-565F

2. 手動建立專屬私有目錄

Android 系統預設不會自動在外接碟建立 Termux 的私有資料夾,且 Termux 自身無權在母目錄建立。

  • 解決方法:將隨身碟拔回電腦,或在電視盒子上利用 CX 檔案總管,依序進入 隨身碟根目錄/Android/data/
  • 新建資料夾:手動建立名為 com.termux 的資料夾。
  • 新建子資料夾:進入 com.termux 後,再建一個名為 files 的資料夾。

最終實體完全讀寫路徑為: /storage/A3B8-565F/Android/data/com.termux/files/

3. Termux 內部對接與測試

回到 Termux 終端機,執行以下指令驗證並建立捷徑:

# 1. 進入該專屬目錄
cd /storage/A3B8-565F/Android/data/com.termux/files/

# 2. 建立 NAS 實體資料夾
mkdir my_nas_data

# 3. 測試寫入權限
touch test_success.txt
ls -l

預期輸出:

total 32
drwxr-x---. 2 u0_a68 everybody 32768 Jul  6 09:04 my_nas_data
-rwxr-x---. 1 u0_a68 everybody     0 Jul  6 09:05 test_success.txt

4. 建立家目錄捷徑

為了操作便利,在 Termux 家目錄建立符號連結(捷徑):

ln -s /storage/A3B8-565F/Android/data/com.termux/files/my_nas_data ~/nas

此後,進入 ~/nas 即等於直接讀寫隨身碟上的 NAS 目錄。


四、 服務安裝與手動啟動

1. SFTP 服務 (隨 OpenSSH 內建)

由於已安裝 openssh 並啟用 sshd,電視盒子本身已是一台 SFTP 伺服器。

  • 連線方式:在 Ubuntu 檔案管理員或手機 CX 檔案總管中,新增網路連線選擇 SFTP,連線位置為 sftp://<電視盒子IP>:8022

若還沒安裝 openssh 服務,請參考這篇教學: 電視盒子改造(三):裝 Termux 讓盒子變身 SSH 與 SFTP 服務端

2. Filebrowser (網頁網碟)

Filebrowser 未收錄於 Termux 官方套件庫,需手動下載專為電視盒子(ARM64 架構)編譯的二進位檔。

cd ~
# 下載最新 ARM64 版本
curl -LO https://github.com/filebrowser/filebrowser/releases/latest/download/linux-arm64-filebrowser.tar.gz

# 解壓縮
tar -xvf linux-arm64-filebrowser.tar.gz

# 賦予執行權限並移至系統指令目錄
chmod +x filebrowser
mv filebrowser $PREFIX/bin/

# 清理壓縮檔
rm linux-arm64-filebrowser.tar.gz
  • 手動啟動指令
    filebrowser -r ~/nas -a 0.0.0.0 -p 8080
    
  • 注意:首次啟動時,終端機會顯示一組隨機生成的初始密碼(例如 53dJheJDAHycEjHk)。瀏覽器打開 http://<電視盒子IP>:8080 登入後即可在設定中修改密碼與繁體中文介面。

圖片說明 圖片說明 圖片說明

3. WebDAV 服務 (透過 Rclone)

Rclone 可直接透過套件管理器安裝:

pkg install rclone -y
  • 手動啟動指令
    rclone serve webdav ~/nas --addr :8081 --user admin --pass admin
    
  • 連線方式:在 Ubuntu 檔案管理員中選擇「連接到伺服器」,輸入 dav://<電視盒子IP>:8081/ 並輸入帳密即可將 NAS 掛載為本機磁碟機。

五、 配置開機自啟動 (常駐背景執行)

配合 Termux:Boot 套件,將 Filebrowser 與 WebDAV 寫入自啟腳本。由於這兩個服務會持續監聽連線,必須使用 nohup ... & 放入背景,且開機時環境變數尚未完整,路徑一律使用絕對路徑,並明確指定 Filebrowser 的資料庫位置(避免每次開機重置密碼)。

請在 Termux 中執行以下指令自動生成腳本:

cat << 'EOF' > ~/.termux/boot/start-nas.sh
#!/data/data/com.termux/files/usr/bin/sh

# 確保系統不休眠,維持網路喚醒
termux-wake-lock

# 背景啟動 Filebrowser (明確指定 DB 與目錄的絕對路徑)
nohup filebrowser -d /data/data/com.termux/files/home/filebrowser.db -r /data/data/com.termux/files/home/nas -a 0.0.0.0 -p 8080 > /dev/null 2>&1 &

# 背景啟動 WebDAV (明確指定目錄的絕對路徑)
nohup rclone serve webdav /data/data/com.termux/files/home/nas --addr :8081 --user admin --pass admin > /dev/null 2>&1 &
EOF

# 賦予腳本執行權限
chmod +x ~/.termux/boot/start-nas.sh

配置完成後,電視盒子重開機約 30 秒至 2 分鐘內,兩大服務即會在背景自動完美運作。


六、 完整卸載與乾淨移除流程

若未來不需要使用這些 NAS 服務,可依序執行以下指令,徹底清除所有進程、腳本與軟體,不留任何痕跡。

# 1. 強制停止背景運行的服務進程
pkill filebrowser
pkill rclone

# 2. 刪除開機自啟動腳本
rm ~/.termux/boot/start-nas.sh

# 3. 移除 Filebrowser 執行檔與設定資料庫
rm $PREFIX/bin/filebrowser
rm ~/filebrowser.db

# 4. 解除安裝 Rclone 並刪除設定檔暫存區
pkg uninstall rclone -y
rm -rf ~/.config/rclone

# 5. 移除 Termux 家目錄的捷徑(此操作極安全,絕不會刪除隨身碟中的實體檔案)
rm ~/nas

# 6.(選用)若連同隨身碟中上傳過的實體檔案也想一併清空,請執行:
# rm -rf /storage/A3B8-565F/Android/data/com.termux/files/my_nas_data

結尾

好啦,以上就是這次把 Onn 電視盒子改造成輕量級 NAS 的完整過程。說實話,看著一個幾百塊錢的電視盒子,插上一支隨身碟,在 Termux 的加持下就能同時跑 SFTP、Filebrowser 跟 WebDAV,這種把硬體效能壓榨到極致、變廢為寶的過程,真的非常有成就感,我想這大概就是我們玩硬體的 Geek 精神吧!如果你手邊也有閒置的電視盒子,強烈建議你也可以跟著這篇筆記動手試試看。

那在實作的過程中,如果遇到任何分割表、權限或是開機自啟的卡關問題,隨時歡迎在文章下方留言,我們一起交流討論。如果你喜歡這種類型的硬體折騰教學,也別忘了持續鎖定我的網誌,那我們就下一篇文章見囉!