?

Jellyfin免費的媒體中心

2022-05-30 00:57OverLord
電腦愛好者 2022年17期
關鍵詞:閃存盤硬盤命令

OverLord

如果簡單一點去闡述這個系統化組合,就是以PVE作為虛擬機底層系統,再用它支撐Jellyfin媒體中心的功能,這樣的配置無疑更加靈活方便,而且在使用的時候也更簡單,更穩定。以往使用PVE做底層系統的時候,我們都是在其上安裝虛擬機,這固然可以將電腦的硬件資源和虛擬環境分隔開,但傳統虛擬機還是會占用被指定分配的硬件。而本次則是使用更為輕便的Docker來實現,所謂的Docker其實是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的Linux或Windows操作系統的電腦上,也可以實現虛擬化。容器完全使用沙箱機制,相互之間不會有任何接口(圖1)。而且它對硬件資源的使用方式是“隨用隨取”,不像虛擬機一樣需要提前分配好硬件資源,無疑這樣的靈活性大大增加。

什么是PVE虛擬機?

PVE的全稱是Proxmox Vir tual Environment(官方網站:https://www.proxmox.com/),或稱之為Proxmox VE(圖2),是一款開源的虛擬化方案。其軟件和社區支持都是免費的(基于Debian Linux和KVM的虛擬化平臺),企業用戶則可以通過訂閱制獲得付費商業支持。PVE不僅僅是免費開源這么簡單(當然非常重要),而是PVE具備極低的硬件資源要求、配置極為簡單,且兼容性非常出色。

硬件配置要求不高

PVE的一大優勢就是對電腦的系統性能要求不高(資源占用低),但是需要一定的Linux基礎。而且它有一個硬件需求的必備項——要使用支持虛擬化的處理器。當然,這個要求對時下的電腦來說一點都不高,目前絕大部分處理器能夠支持虛擬化技術,無論是英特爾還是AMD的都是如此。當然,處理器的性能越高越好,這對任何應用需求都是如此。在我們的PVE+Jellyfin組合方案下,一個10年以內的電腦,只要不是使用特殊的低端CPU(如Atom),都完全可以勝任。

要想知道自己的電腦處理器是否支持虛擬化,下載Securable這個小軟件就型。下載(下載地址:https://www.grc.com/securable.htm)后運行唯一的執行文件,在最后一項“Hardware Virtualization”顯示為“Yes”(圖3),則表示處理器支持虛擬化功能。

點擊“Click for more”可以看到具體的虛擬化技術信息(圖4)。就PVE+Jellyfin的實際性能需求來看,筆者建議最好處理器的核心數量不少于2個——這意味著即便是賽揚處理器也可以勝任,當然,如果可能自然是核心、線程數量越多越好。

當然了,如果處理器不支持,則S e c u r a b l e 中“H a r d w a r eVirtualization”項會顯示“No”(圖5)。

確定處理器支持后,還需要重啟進入電腦的BIOS(F1或者Del),找到BIOS中相關的CPU虛擬化功能界面,確認或將其設置為“Enabled”啟用該功能(圖6)。

另外要特別提示一點,我們以PVE+Jellyfin的組合方式實現媒體中心,最重要的就是要具備視頻編解碼能力,這也意味著你必須使用一個帶有核顯的處理器。而且如果可能的話,處理器不要低于英特爾第六代酷睿。這樣可以提供對4K HEVC視頻內容的硬件編解碼。

除了這些,筆者推薦至少要擁有8G B 的內存容量(圖7)——PV E自身的內存占用一般在2GB~4GB內,再分配給Jellyfin大約4GB內存剛剛好。當然,如果你對虛擬機還有其他需求,那么內存最好達到16GB,好在現在DDR3、DDR4內存的價格都很便宜,即便擴展起來成本費用也不會很貴。

最后在存儲部分,筆者強烈建議使用一塊固態硬盤(圖8),哪怕是SATA接口的固態硬盤。除了傳輸速度優勢,最重要的地方在于響應時間、多任務讀寫,固態硬盤都有著傳統機械硬盤不可比擬的技術優勢,即便是SATA規格的固態硬盤也不例外。

安裝PVE從USB閃存盤開始

首先要下載得到PVE的ISO安裝文件(下載地址:https://www.proxmox.com/en/downloads),此外還需要Ru f u s工具用于制做引導安裝USB閃存盤(下載地址:https://rufus.ie/)。準備一個8GB容量的USB閃存盤即可。準備就緒(圖9)之后,將其插入電腦背部I/O部分的USB接口,注意最好不要插到電腦的前置USB接口,部分機箱的USB插針擴展接口會有供電問題。

解壓縮Rufus后雙擊執行文件運行,點擊引導類型處的“選擇”項,加載下載PVE ISO安裝文件的路徑,選中ISO文件,然后按照默認設置(可以選擇純UEFI啟動,前提要確保主板支持并正確在BIOS中設置為UEFI啟動),再點擊“開始”運行(圖10)。

注意,在這里Rufus會提示選擇鏡像使用的模式,這和普通的Linux、Windows安裝啟動盤略有區別,在這里要選擇“以DD鏡像模式寫入”而不是“以ISO鏡像模式寫入(推薦)”(圖11),如果選擇了后者USB閃存盤引導后將無法正確引導安裝PVE,這是和普通啟動盤制作時最大的區別。

接下來分別提示兩次警告,內容分別是格式化(圖12)、多分區提示(圖13),依次點擊默認的“確定”即可,不需要更改設置內容。

USB閃存盤寫入完成從電腦上拔出,將其轉移到即將安裝PVE的電腦上插入,并且開機使用該USB閃存盤引導(不同電腦的引導菜單選項不同,強烈建議進入BIOS后設置啟動順序,將USB閃存盤設置為優先引導),在PVE的引導選單上選擇第一項,即“Install Proxmox VE”(圖14)。

經過PVE引導自檢,系統來到歡迎界面,讀取協議,點擊右下的“I agree”繼續(圖15)。

在接下來的界面中,主要是設置安裝的硬盤位置,默認提供一個硬盤位置,如果是多個硬盤,點擊該處選擇需要安裝的硬盤即可。如果要在該硬盤上分區安裝,在選擇正確的硬盤設備后,點擊后面的“Options”設置即可,這里筆者以整盤默認分區方式安裝,點擊“Next”繼續(圖16)。

對于需要硬盤分區的用戶,在“Options”選項設置中點擊進入磁盤分區頁面(圖17),找到上方的“Filesystem”設置磁盤分區格式,推薦使用默認的EXT4分區方式(Linux下的一種分區格式,Ext4文件系統有更好的設計,更好的性能以及穩定性)。hdsize處是設置總存儲空間容量的地方。

不同于Windows使用NTFS分區格式,Linux還需要使用到交換分區,在下方的swapsize處設置交換分區容量,注意交換分區的容量大小不是隨意設置,一般情況下只要將其設置為與本機內存容量相當即可,例如電腦擁有8GB內存,那么這里也設置成8GB交換分區容量就夠了。

除此之外,maxroot項是用于保存PVE操作系統鏡像的獨立空間,不能分配給虛擬機硬盤使用,酌情設置就可以(例如預留20GB的安裝鏡像容量值,可以充分滿足多個系統的安裝鏡像保存);接下來是minfree,這個minfree是用于保存虛擬機快照的,推薦設置為內存容量的兩倍大小為宜,例如8GB內存的電腦設置為16GB,16GB內存的電腦設置為32GB,當然這還要根據自己硬盤容量大小來權衡。最后就是maxvz,這個是用來數據保存的空間,可以設置更大一些。但是這一切容量之和不能超過hdsize的設置容量。

設置完點擊“Next”到下一步設置服務器的國家、時區及鍵盤布局(圖18),國家處填寫“China”,其他選項保持默認設置即可。

之后就是系統的管理員賬號和密碼以及郵箱(圖19),注意這是PVE的最高權限Root用戶,設置密碼最好是復雜的字符+字母+數字+大小寫亂序生成,以確保系統安全性。

繼續安裝設置,在網絡管理界面(圖20),注意第一個“Management Interface”是管理口設置,所謂管理口是無論電腦中含有幾個有線網絡接口,只有一個具備管理能力,即可以連接到PVE設置后臺進行設置調整,如果是多網卡的電腦,務必確認使用的是哪一個網卡;“Hostname(FQDN)”則是主機名稱,根據自己喜好設置即可;其他分別是IP地址、子網掩碼、網關以及DNS服務器地址,根據實際情況填寫即可。

一切設置完畢PVE就開始安裝了,根據電腦的性能安裝時間一般在5分鐘至10分鐘左右,安裝完畢重啟電腦即可。重啟后注意要選擇硬盤啟動,PVE的引導菜單下(圖21),默認項引導即可(無人工干預自動進入)。

引導完畢,界面將變成純字符界面,提示也極為簡單——只有IP地址和登錄輸入(圖22),這時候我們就可以換到別的電腦來進行操作了。

在其他電腦上,輸入服務器IP地址,注意格式必須要完整,包括https://以及端口號8006,例如https://192.168.1.2:8006,否則是無法正確訪問的。在登錄界面,首先可以將語言設置為“Chinese(Simplified)”即中文(圖23)。

然后輸入用戶名和密碼(圖24),即可登錄到PVE的主界面了。

登錄后,PVE會提示“沒有有效訂閱”,點擊確定即可忽略(圖25),這個訂閱是針對專業級、企業級用戶的,普通用戶無需理會。

登錄成功后,我們就可以看到P V E的基礎操作界面了(圖26)。

安裝Jellyfin

此時,我們將要開始創建Jelly f in。在PVE主界面點擊右上方的創建CT,注意不是創建虛擬機,我們要創建的是LXC容器。在這里要特別留意,取消下方勾選的“無特權的容器”,這樣我們才能讓Jelly f in的Docker具備訪問硬件的權限。此外,在CTID項中要記住當前的ID數字,如本例中的103(圖27),后面會用到。

在下一步的模板中,存儲保持默認的Local即可,在模板處則點擊右側下拉箭頭找到ubuntu-18.04-standard_18.04.1(圖28)。

在接下來的CPU部分,筆者推薦設置兩個核心供Jelly fin使用,內存部分最少設置不小于2GB,即2048MB(圖29),推薦4GB~8GB,這個也要根據當前安裝PVE電腦的內存而定。

接下來是網絡部分的設置,設置好對應的局域網內IP地址(筆者建議使用靜態IP,不要使用DHCP),但是特別留意在IP地址后要加上netmask,即/24(圖30)。

配置完成后啟動該容器,然后在容器中,我們將安裝Jellyfin——首先分別輸入命令apt update、apt upgrade,這兩個命令是更新源,注意每輸入一條指令都要回車執行一下才可以。接下來將分別輸入每一條執行,注意也是每輸入一條命令就要回車執行一下,并且確保執行完本條命令后再輸入下一條:

sudo apt install apt-transport-https software-properties-common

sudo add-apt-repository universe

wget -O - https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo apt-key add -

echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu $( lsb_release -c -s )main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

sudo apt update

sudo apt install jellyfin

逐條執行命令后,jellyfin的Docker應該就可以正常運行了,我們可以通過輸入命令service jellyfin status來查看執行狀態。如果看到綠色的“active(running)”字樣(圖31),說明jellyfin已經在運行了。

接下來,回到PVE主界面,打開Shell功能,依次輸入三個命令,apt update、apt install i965-va-driver vainfo、vainfo,即更新源、安裝顯卡驅動和檢測、執行檢測。在依次執行完前兩條命令后,最后執行vainfo,如果出現以下信息,就意味著正確安裝驅動,并能顯示當前顯卡支持的編解碼。如果執行vainfo命令報錯則意味著安裝錯誤:

root@pve:~# vainfo

error: can't connect to X server!

libva info: VA-API version 1.4.0

libva info: va_getDriverName() returns 0

libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so

libva info: Found init function \_\_vaDriverInit_1_4

libva info: va_openDriver() returns 0

vainfo: VA-API version: 1.4 (libva 2.4.0)

vainfo: Driver version: 英特爾 i965 driver for 英特爾(R) Coffee Lake - 2.3.0

vainfo: Supported profile and entrypoints

為了讓Jellyfin能夠調用顯卡的硬件編碼功能,我們還需要進一步執行操作,此時在Shell窗口內輸入ls -l /etc/dri,列出當前顯卡信息,如下:

root@pve:~# ls -l /dev/dri/

total 0

drwxr-xr-x 2 root root 80 Oct 13 12:39 by-path

crw-rw---- 1 root video 226, 0 Oct 13 12:39 card0

c r w-r w---- 1 ro ot render 2 2 6, 128 Oct 13 12:3 9renderD128

其中,在第二行信息中,card0的設備號可以看到是“226,0”,然后再看第三行renderD128,設備號為“226,128”記住這兩條內容。這是筆者的處理器核顯設備號,具體到自己使用的電腦核顯可能會出現不一樣,但是方法一致。

在PVE的目錄/etc/pve/lxc中有容器配置文件存放地,找到自己對應容器ID的配置文件,如103.conf,此時使用nano命令編輯這個103.conf文件,此時在Shell中輸入命令“nano /etc/pve/lxc/103.conf”。打開103.conf后一直向下拉倒末尾,添加如下命令:

lxc.cgroup.devices.allow: c 226:0 rwm

lxc.cgroup.devices.allow: c 226:128 rwm

lxc.cgroup.devices.allow: c 29:0 rwm

lxc.autodev: 1

lxc.hook.autodev: /var/lib/lxc/103/mount_hook.sh

注意,這里是添加命令,不是執行命令,依次填寫即可。這里面的“226,0”、“226,128”就是之前記錄的顯卡設備號,103即本容器的ID,具體要根據自己電腦的實際情況調整。

接下來我們繼續使用nano命令創建一個名為mount_hook.sh的文件,即在Shell中輸入命令“nano /var/lib/lxc/103/mount_hook.sh”回車執行。然后添加如下命令到mount_hook.sh中好讓容器有訪問顯卡設備的權限:

m k d i r - p $ { L X C _ R O OT F S _MOUNT}/dev/dri

mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/card0 c 226 0

mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/renderD128 c 226 128

mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/fb0 c 29 0

一切配置完畢,我們就可以使用IP地址+端口號8096來訪問jellyfin進行設置了。特別注意的是,我們要啟動之前配置的顯卡硬解功能,依次進入控制臺—播放,在硬件選項中選擇VAAPI,然后勾選“啟用硬件編碼”,保存設置即可(圖32)。

簡言之,Jellyfin具備海報墻功能,而且可以分類保存視頻內容,并通過局域網推送播放——因為我們配置了硬件編解碼功能,即便你的觀看端設備不能支持部分編解碼的視頻文件,Jellyfin也能自動將其轉碼推送到觀看端設備上播放,非常人性化。當然,它還有更多的功能,有興趣的朋友可以自己探索。這套媒體中心系統最重要的特性就是免費,而且易用性、功能性一點不輸于收費系統。

猜你喜歡
閃存盤硬盤命令
只聽主人的命令
HiFi級4K硬盤播放機 億格瑞A15
Egreat(億格瑞)A10二代 4K硬盤播放機
移防命令下達后
這是人民的命令
我區電視臺對硬盤播出系統的應用
對盧溝橋事變期間一份“作戰命令”的考析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合