Try   HackMD

花 250元自建 TrueNas Core 安裝紀錄

Nas 是什麼? 為什麼要裝 Nas ?

Nas 是提供網路儲存檔案的機器,俗稱的網路硬碟,不過除了儲存檔案做備份之外,Nas 還提供了其他的功能,例如線上串流影片、架設網站、甚至執行虛擬機等等,畢竟現在運算效能越來越快,單純的儲存對 Nas 來說早已不是負擔。
TrueNas Core 儀表板介面

到底該選哪牌 Nas? 自建 Nas 的優缺點?

市面上有名的品牌 Nas 有兩大牌子,分別是 SynologyQNap,我在網路上搜尋到這兩家的評價分別是:

  • S牌:價格高、應用程式簡單、硬體CP值中等
  • Q牌:價格中、應用程式設定繁瑣、硬體CP值高

一開始我也沒有一下子就想自建,而是評估到底要買S牌、Q牌或是自建nas 三個選項,看了諸多文章,也挑了幾個考量點

  1. 自建或買 nas 一定都要考量電費消耗
  2. nas 的期初成本可能比雲端硬碟高,因為雲端硬碟用多少容量才買,nas要一次買齊
  3. 自建 nas 或買 品牌nas 在硬碟費用上是相同的,這部分是買 nas 的主要開銷
  4. 自建 nas 要處理的事情一定比買品牌 nas 來的多,不論是安裝、故障排除、應用程式使用方式都得自己來

在評估過程我參考了好幾篇文章綜整了優缺點

優點:

  1. truenas 可以使用類似google相簿的人臉辨識功能(雖然最後我沒有用這個程式,電腦效能不夠)
  2. truenas 可以安裝影音文件管理的插件 PLEX,能自己架設影片串流平台,手機也可觀看

缺點:

  1. 硬碟不能一個一個加入
  2. 用隨身碟當系統碟可能會常出錯

評估結果

如果要買品牌 Nas ,會想一次買大一點的+好幾顆硬碟才能玩較多功能,但我其實沒有自己完全掌控過ns,也不知道對 nas 的依賴性會有多高,因此不如先買兩顆便宜的 500G 二手硬碟,自建 nas 當學習以及體驗一下用 nas 的感覺。

於是我在網路拍賣上找了二手便宜硬碟500G兩顆 (為了跑 raid),合計花了250元搞定。
系統碟則暫時先使用舊的 16GB 隨身碟試試看,雖然這時候我還不知道隨身碟會拖累安裝效能這件事


安裝前準備

  1. 硬碟(儲存資料) 隨身碟(系統碟)
    這邊選用兩顆500GB硬碟以及一個8GB隨身碟

  2. 官網下載 iso檔
    安裝的版本是 TrueNAS CORE 12.0-U8

  3. 下載Rufus 把 ISO 做成隨身碟開機檔
    https://rufus.ie

  4. 把ISO檔寫進隨身碟

    隨身碟是舊的USB 2.0,所以沒有非常快

    寫入完成

  5. 準備 NAS 主機硬體
    我在舊主機上裝上 2顆 500GB 硬碟,並在USB插槽裝上要當作NSA作業系統碟的空隨身碟(不會拔除,永遠插在上面)
    然後再拿包含ISO檔的隨身碟也插上另一個槽,就開始進行安裝

麻煩的問題 usb 隨身碟安裝系統很慢

我從晚上七點多吃完晚餐後開始裝,我的隨身碟是 USB 2.0 (ISO檔和作業系統碟都是),從 2000~2200 跑了兩個小時不到30%

等待時我回頭看了官網建議最低配備

  1. CPU 雙核心 2-Core Intel 64-Bit or AMD x86_64 Processor
  2. Memory 16 GB
  3. 啟動系統碟 16 GB SSD Boot Device

我的記憶體只有12GB,系統碟也只有 16GB 的 USB ,希望能順利裝起來


接近8小時的安裝過程 晚上22:00~早上05:30

因為等太久,就乾脆放著跑去睡覺,睡醒後看到安裝有跑完了,正式開機看看 NAS 運作情形

  • 0730~0800 開機後又等了30分鐘才看到IP
    我是把 TrueNas 的網路線插在 DHCP 的網路孔上,所以開機後什麼設定都不用做,可以在 TrueNas 的指令介面上直接看到分配的 IP 是 192.168.18.4

  • 0830 第一次打開,但其實等了30分鐘才進去
    從另外一台電腦輸入 192.168.18.4 的網址,網站連上了,但只看到這一串
    Connecting to NAS Make sure the NAS system is powered on and connected to the network.

因為有看到GUI介面,所以就先放著繼續等,看看要多久

  • 等了30分鐘後,0900 終於看到登入畫面了
    預設帳號 root 密碼是安裝時自己輸入的
    這邊登入成功後,有鬆了一口氣,總算是完成第一步進到 Nas 的圖形介面了。
    第一步先改成繁體中文看看,確保之後如果要給別人用有中文介面

事後回顧

一開始安裝過程和啟動過程會這麼慢應該是因為要把隨身碟的作業系統以及儲存的資料讀取出來放進記憶體,所以開機的這段時間很慢,等到運作完以後的日常操作 GUI ,或是 NAS 上其他的服務運作其實都很快,使用隨身碟的問題就是關機、開機的時候會特別慢(約15分中)


把空的硬碟設定為 NAS 的資料碟

第一次進來時,沒有看到類似安裝精靈的東西,所以不知道怎麼放檔案或掛硬碟,在Dashboard也沒看到硬碟

正常來說,進到左邊的 儲存 > 儲存集區 > 建立儲存集區 ,應該要能夠看到有磁碟、類型,但我第一次進來時沒有抓到硬碟

試著按 webgui 右上角重啟電源

按下 重新啟動 的按鈕後,因為要把資料寫回隨身碟,需要等大約10分鐘,主機才會真的斷電並重開

重開機掛載硬碟,按下去到下一次看到圖形介面大概要等一小時

0930 按下重開機選 Serial console
import pool 等了很久
1025 等了一小時還沒重開好
1032 終於好了,在 NAS 主機的螢幕能看到 console setup 選項,這時候就可以用其他電腦開啟 NAS 的網頁管理介面了

再一次開啟web ui

這次大概2分鐘就看到登入畫面了,輸入帳號後約等30秒進到Dashboard畫面
進去後看到運作時間: 45 minutes as of 19:34

重開機後有抓到硬碟

把硬碟選進去集區 預設mirror (raid1)

集區掛載完成

掛載完成是一個重要的里程碑,因為從這邊開始,基礎環境就建立完成了,真的可以開始使用 TrueNas 上面的服務與應用程式。


打開共用服務 (網路上的芳鄰 Windows共用網路硬碟 SMB)

使用 Windows 系統的話,最常見的就是 網路共用資料夾 的功能,這邊介紹一下在 TrueNas 上開啟這個服務的方式

操作方式

  1. 在服務 的視窗,把 SMB 的服務開起來,建議勾選自動啟動,重開機才會自己打開

  2. 開一個新的乾淨的資料夾,選項在 儲存>儲存集區>右邊的新增資料集,在新開的畫面輸入 資料夾名稱

  3. 建議開個共用資料夾的帳號,避免使用 root 登入,選帳戶>建立帳號

  4. 到共用 > Windows共用 > 按右上角的 ADD > 選要被共用的資料夾

  5. 選好後要設定權限 ,按 編輯共用 ACL > 選使用者 > 填入帳號 > 開權限(自己玩可以先開FULL Control)

到這邊就設定完成了,可以在 Windows 檔案總管輸入 \\TrueNasIP\共用資料夾名稱,並且輸入前面步驟開的共用資料夾帳號與密碼就可以進去並且放檔案了


試著裝外掛

我先裝了 Plex media(影片串流) 和 nextcloud ,安裝過程都要讀取轉圈圈一段時間(3~5分鐘)


nextcloud 個人檔案管理外掛

裝好後,可以看到外掛區多了一個nextcloud
從管理入口的網址可以進去網頁介面,但請先點選右邊朝下小箭頭,展開後用滾輪往下捲看到安裝說明
從安裝說明找到Nextcloud Admin User才是登入的帳號密碼,不然用了管理入口打開也進不去

安裝 nextcloud 照片 臉部辨識 Face Recognition (尚未成功)

nextcloud 有一個應用程式商店,其中一個 Face Recognition 就是臉部辨識的 APP ,官網畫面如下

要安裝的話,可以從右側選單叫出應用程式,但搜尋 Face Recognition 安裝後,會看到如圖出現 The library pdlib is not available. 目前沒有 pdlib 這個套件所以無法安裝

根據官方的安裝教學,需要透過指令列模式安裝 PDLib PHP library ,在另一篇Reddit教學中,有提到

如果有 nextcloud 的 jail shell權限,直接到命令列輸入這個指令即可

pkg install -y dlib-cpp

於是我們到 jails ,展開 nextcloud右側箭頭,打開命令列

輸入指令後跑了一段安裝訊息

安裝後重新啟動一次 nextcloud,讓他讀取套件,但還是沒成功

後來看了安裝限制,如果沒有 GPU,人臉檢測可能需要 2-4GB 的 RAM,並且需要花費 40-120 秒(取決於您的 CPU)!

我的 cpu 是i3 4160,而且 ram 沒那麼多空間,所以最後決定不裝了


plex 影音撥放串流外掛

安裝很簡單,點外掛按安裝就好,但要把影片丟進去,需要處理共用資料夾的權限比較難搞,參考了兩篇的教學,具體做法是

先說說我期待的用法

  • 在 windows 開網路上的芳鄰(SMB),把影片拖曳進去,然後就能透過 plex 觀看
  • 在 bt 抓好影片,抓完自動可以從 plex 觀看

為了達成這一點,所以需要讓 plex 和其他服務有共同的共享資料夾,因此要操作以下步驟

  1. 在 nas 開一個 plex 的帳號 (密碼隨便,不是很重要)
  2. 在 nas 開一個 plex 的群組
  3. 重點:UID和GID要設定成 972
  4. 開 jail,先把 plex 的服務停止下來,再用掛載的方式把共用資料夾掛上去
  5. 設定資料夾權限(ACL),打開使用者plex ,賦予共用資料夾 FULL Control權限

參考文章


使用 plex 一段時間後的心得,優缺點

  1. 優點:可以從手機 app 投放到 chromecast ,所以可以到有 chromecast 的親戚家,用自己的手機 plex 程式,把 nas 的影片投放上去 (即使不同網路)
  2. 普通:plex 允許外掛字幕,也可以線上自動搜尋字幕,但外掛字幕我只找到手動上傳再一個個勾選的選項,沒有找到放在同資料夾自動讀取的功能
  3. 缺點:用手機 plex app 看影片的話,只能觀看 1 分鐘,一台手機需要購買一次性 5美金 的 plex pass 才能繼續觀看,但投放到 chromecast 不受影響,這邊的替代方案是直接用手機連 NAS 的區域網路 SMB (網路上的芳鄰)直接看,但是就沒辦法使用 plex 的字幕、分類等介面

plex 手動更新

又用了一段時間之後,某天在 plex 看到提醒,說有新版本可以手動更新

點了手動更新後,只看到下載一個 PlexMediaServer-1.31.3.6868XXXX.tar.bz2,就沒了,完全不知道下一步該做什麼。

於是找了官方論壇的這篇文章
Forums > TrueNAS > Applications and Jails > Manual update plex plugin

找到方法是手動輸入指令更新,對不熟 linux (freebsd) 的人又是一大挑戰,這邊附上教學

  1. 在 truenas 左側選單開啟命令列,預設擺在很下面

  2. 在右邊的命令列視窗中,輸入 jls 指令,找找你的 plex 安裝在哪個 jails

root@truenas[~]# jls
   JID  IP Address      Hostname                      Path
     1                  mineos                        /mnt/xxx/jails/mineos/root
     2                  nextcloud                     /mnt/xxx/jails/nextcloud/root
     3                  plex                          /mnt/xxx/jails/plex/root

以我的來說,是放在第3個,所以輸入 jexec 3 csh,輸入完後會發現命令列變成 plex:/ # ,這就代表進去 plex 的 jails 裡面了。

root@truenas[~]# jexec 3 csh
root@plex:/ #

也可以試著輸入指令 service -l 找看看有沒有 plexmediaserver ,有的話就可以很清楚確定是在 plex 的環境了,接著依序輸入以下指令,可以看的出來是先將 plexmediaserver 停下來之後,更新之後再啟動

service plexmediaserver stop
pkg update
pkg upgrade
service plexmediaserver start

其中 pkg update 、 pkg upgrade 這兩個指令執行時,會出現以下選項,請輸入 y 讓他繼續安裝。

Ignore the mismatch and continue? [y/N]: y

接下來經過一段時間安裝,這邊附上自動執行過程一些截圖,單純讓他跑就好,我大概執行不到3分鐘就跑完了


到最後一步,執行完 service plexmediaserver start

這時候就可以回到 plex 的網頁介面重新整理,看看更新後的伺服器了。


qbittorrent BT下載工具

可以先去這邊找種子
https://nyaa.si/

開一個 qbittorrent 帳號,讓他有資料夾的存取權限

qbittorrent下載後的路徑,因為是躲在jail裡面,所以要先設定好 SMB 共用資料夾,下載後的檔案可以直接透過 Windows 檔案總管存取,使用上才方便

帳戶>使用者
開一個名字叫做 qbittorrent 的帳號,UID 設定 850

參考來源
https://www.truenas.com/community/threads/lost-trying-to-sort-permissions-for-sickchill-qbittorrent-on-truenas.90548/


安裝 mineos minecraft 伺服器

設定重點1. 預設 jail 會開啟 NAT,這樣沒辦法開放別人連進來,請至少改成 DHCP 或是都不勾手動指定固定ip

設定重點2
第一次進去在開啟伺服器前,要先下載 profile 取得指定版本的伺服器設定檔

設定重點3
Create new server的選項比較少,至少下拉選單有選難度和模式(一般就生存模式Survival)
Create完之後,左邊才會出現 Server.Properties 的設定

Server.Properties 的設定更完整,比較常見的例如在封閉環境無法到 minecraft.net 進行驗證的話,可以把 online-mode true 改成 false
更多的設定翻譯可以參考以下網址
https://gamebebe.blogspot.com/2013/06/minecraft.html

設定重點4
如果要開放區網以外的玩家進來,記得還要去路由器上設定對外 IP 與 內部 IP 對應的 port

其他參考可以裝的外掛

https://beesask.com/ent/371790.html


第一次故障 Pool MyFIrstPool state is OFFLINE: None

這個問題遇到兩次了,狀況分別如下

  • 家裡剛好跳電,nas 主機就關機了,回家要把手機照片同步到Nas上,發現資料無法同步上傳到 nas

  • 家裡跳電完, nas 電源是開的風扇有在轉,但 web gui 管理介面也進不去,只好選強迫關閉電源重開機再重開

打開管理介面,看到 DashBoard 儲存集區顯示 Offline


警示通知有顯示問題


檢查發現是有讀取到磁碟的,但儲存集區是 N/A

儲存集區的錯誤畫面


修復方法 匯出再匯入

在儲存集區的畫面選 EXPORT / DISCONNECT
勾選 確認匯出/中斷連線 再按確定


匯出需要等待一段時間,耐心等候


匯出完的提示訊息


我提早離開網頁再按了一次匯出,結果匯出失敗了,但沒關係,下一步匯入一樣找的到


成功匯出後,會看到 沒有儲存集區,不用擔心,點選右上角的 ADD 重新匯入

匯入現有儲存集區

Does the pool have GELI Encryption from FreeNAS/TrueNAS 11.3 or earlier?
不,繼續並匯入

儲存集區下拉選單 選 剛剛匯出的 Pool

看到可匯入的選項

匯入中

匯入完成

這時候服務可能都還是沒有啟用的狀態 (SMB、plex、nextcloud),手動進去重啟或是重開機一次讓他自動啟動就好囉


TrueNas Core 作業系統更新 12>13

用一用也終於遇到大的版號更新了,第12版已經 end of life 結束生命週期

底下有提示建議觀看官方更新說明
https://www.truenas.com/docs/core/corereleasenotes/

  • 選擇 Train 切換到 13版 ,按下 下載更新 後,會先提示要不要另存設定檔

  • 另存後,顯示的新視窗說明了勾選後,會自動下載安裝和重開機

更新中

  • 接下來就是等候的時間了,我是半夜12點 00:00 按下去,看看要等多久才會好

  • 00:15,畫面顯示 更新 66.67% Installing base-os (1/3)

  • 09:00 (睡醒後),登入變得很慢

  • 登入後,進到更新區,還是卡在這個 更新 66.67% Installing base-os (1/3) 畫面

  • 放一段時間畫面變成正在連線

  • 隔天中午12點,還是沒開好,大約12:45,有聽到 nas 自動重開機
  • 一直到 13點左右,歷經13個小時終於更新完成了

更新完之後

第13版的更新畫面有更多選項,可以切換到 truenas scale了

不過儲存集區又斷了,再跑一次之前也有做過的匯出匯入
但這次就不勾選刪除共用設定了,不然還要設回來麻煩

匯出完的提示訊息


更換硬碟

我的還沒壞,單純找到資料先放在這裡

收藏帖!FreeNAS系統硬碟損壞更換教程,重組系統恢復數據
https://read01.com/zh-tw/L2Ax5zL.html

Qnap 更換硬碟
https://www.youtube.com/watch?v=HUSaAQiTXng


系統碟故障,該怎麼修復?

大概 2023/10 某一天,nas故障了,沒辦法正常開機,進不去網頁的GUI
在主機開機時看錯誤畫面長這樣
不論我輸入什麼指令,雖然有回應,但都是回沒辦法正常運作

我查了資料,判斷可能是系統碟故障了,前面有說我的系統碟是使用 usb2.0的隨身碟,我把隨身碟拿回去插到電腦上也讀不到,畢竟是免費贈送的隨身碟,故障也難免。

我看到的修復方法是重新安裝系統碟,但既然都要重新安裝,我也受夠了原本的 usb2.0系統安裝時間,這次決定換成ssd
NAS不能開機經過了大約3個月,挑了比較不忙的時間,我買了一顆二手的 ADATA 120GB SSD 威剛固態硬碟 (新台幣140元)。

準備好後,再次到官網下載 TrueNas Core 13版 (故障前,nas也是升級到13的版本了)

之後的步驟跟第一次安裝差不多,準備1個安裝碟1個系統碟
開啟 rufus 把下載的 iso 檔放入安裝碟,因為是SSD,製作超快大概10秒搞定。

為什麼有這張圖? 因為我不小心忘記要做安裝碟,這邊不小心把 iso 檔裝到要當系統碟的SSD的白做了

  • 用 usb 2.0隨身碟當安裝碟,跑 rufus 大概要跑3分鐘

  • 製作完成之後 windows 檔案總管就看不到硬碟了,要在磁碟管理才看得到


TrueNas Core 13 安裝過程

這次是在準備充分的狀態,所以比較有心力,準備了不少截圖

  • 裝好安裝碟和空的系統碟,BIOS選好安裝碟開機後,第一次開機看到的安裝畫面

  • 就選第一個Install進行安裝

  • 選擇空的系統碟,我這邊是在ada2 ADATA SU650 ,ada0和1是之前準備好的兩顆資料碟

  • 提醒資料會被蓋掉,就讓它蓋

  • 帳號固定為root,設邊要手動設定密碼,之後登入 nas 會需要使用,務必記得自己輸入了什麼

  • 啟動方式,我選預設的

  • 詢問是否要建立 16GB 的 swap partition,這是指如果記憶體不夠的話,會拿這個空間來充當記憶體。實際硬體記憶體不夠但硬碟容量夠的話,可以建立起來運用時更有彈性,但也可能會更快的消耗硬碟的壽命(減少耐久性),可以自己評估

  • 開始安裝了

  • 底下可以看到進度條

  • 安裝完成 (花不到 3分鐘,前次用usb2.0隨身碟跑到天亮)

  • 回到主畫面,重新啟動,順便把安裝碟拔掉

  • 開機,因為我網路有設定 DHCP 所以可以直接看到 the web user interface is at: 包含IP的網址,這時候可以去網頁介面操作了

  • 進到nas,ram正常,但沒有儲存集區,需要重新掛載

  • 看不慣英文的話也可以從系統>一般>地區語系 更改成繁體中文 (但我還是用英文就是了)

  • 儲存集區都是空的,畢竟新系統,還需掛載硬碟

  • 選擇 匯入現有的儲存集區

  • 我不是 11.3以前的版本,所以可以直接用預設的 No,繼續匯入

  • 選擇我的儲存集區 (看到名字就安心了,代表這次匯入應該可以順利)

  • 匯入前最後一次確認資訊,按下 import就開始匯入了

  • 完成後,看到資料夾名稱都是我原本的,確認資料都正常掛載上來了,包含 jail 之前裝過的外掛和資料也都還在可以正常使用

總結

這次的 Truenas Core 的生命週期幾乎完成了,之前常聽說硬碟壞掉有raid可以抽換,我比較不擔心,系統碟故障重新安裝反而是我一直想測試的目標,這次的經驗也讓我對 Truenas Core 和資料備份也更有信心。

接下來應該就繼續使用,看看有沒有機會完成這幾個目標

  1. 擴充硬碟
  2. 實測硬碟抽換

參考文件