AI摘要:在PVE下使用LXC容器安装jellyfin实现核显硬解,需创建LXC容器,修改配置以允许硬件解码,开启LXC嵌套,验证硬解支持,配置SSH远程登录,更换源以加快软件包下载,挂载NFS/SMB服务,安装Docker和jellyfin,并配置开机脚本确保正确启动。
Powered by AISummary.
一、创建lxc容器
用debian12的模板,创建lxc容器,具体配置如下:
需要硬件解码的话,无特权容器的勾要去掉,cup至少要给4个核心,内存至少2GB,磁盘至少100GB
二、修改lxc配置
创建完不要启动,需要编辑一下lxc容器配置:
进入pve命令行(shell),输入
ls -l /dev/dri
如输出如下,说明核显已经存在。
- 接下来修改lxc配置,
nano /etc/pve/lxc/101.conf
(101为容器编号)
将如下代码加入到配置文件后面:
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
如果是低功耗cup,还需要修改i915的配置
具体方法如下:
nano /etc/modprobe.d/i915.conf
将如下代码复制粘贴:
options i915 enable_guc=3
三、开启lxc嵌套
- 点击lxc容器
- 点击“功能”, 勾选“嵌套”、“NFS”、“SMB/CIFS”三个选项
四、验证是否支持硬解
进入pve命令行(shell),输入:journalctl -b -o short-monotonic -k | egrep -i "i915|dmrldme|guc|huc"
看到类似如下输出,说明硬解已开启
登录lxc容器,安装vainfo,命令行输入:apt-get update
,apt-get install vainfo
安装完,直接输入vainfo
如果你看到了类似 Intel iHD driver 的输出,表示硬件加速已经成功启用。
五、开启lxc远程root登录
- 进入pve命令行(shell),输入
nano /etc/ssh/sshd_config
- 找到
PermitRootLogin
将后面的值改为yes
- 找到
#PasswordAuthentication yes
,将前面的#去掉 - 重启ssh服务
service ssh restart
- 进入lxc容器内,安装并开启ssh服务
注意,以下操作是在lxc容器内的
1. 更新软件包列表
apt update apt upgrade
- 2. 安装 openssh-server
如果还没有安装SSH服务,可以通过以下命令安装 openssh-server:
apt install openssh-server
- 3. 启动并配置SSH服务
安装完成后,SSH服务通常会自动启动。如果没有自动启动,手动启动它:
systemctl start ssh
- 4. 检查SSH服务状态
你可以使用以下命令检查SSH服务是否正常运行:
systemctl status ssh
如果服务正在运行,你应该会看到状态为 active (running)。
- 5. 设置开机自启
为了确保系统重启后SSH服务自动启动,可以运行以下命令:
systemctl enable ssh
修改ssh配置
- 同理,编辑lxc容器的ssh配置文件,输入
nano /etc/ssh/sshd_config
- 找到
PermitRootLogin
将后面的值改为yes
- 找到
#PasswordAuthentication yes
,将前面的#去掉。 - 重启ssh服务
service ssh restart
这样就可以用第三方shell工具登录lxc容器了
六、lxc容器(debian12)换源
在Debian 12(Bookworm)上,你可以使用国内的镜像源来加快软件包的下载速度。以下是几个常用的国内镜像源以及如何配置它们的步骤。
以下操作在lxc容器内进行
- 1.备份现有的源列表
在更改源之前,建议先备份当前的/etc/apt/sources.list文件:
cp /etc/apt/sources.list /etc/apt/sources.list.bak
- 2.编辑/etc/apt/sources.list文件
使用你喜欢的文本编辑器来编辑/etc/apt/sources.list文件。例如:
nano /etc/apt/sources.list
- 3.替换为国内镜像源
以下是一些推荐的Debian 12(Bookworm)国内镜像源,可以直接复制粘贴到/etc/apt/sources.list文件中:
中科大源(USTC)
deb http://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free deb http://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free deb http://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free deb http://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free deb-src http://mirrors.ustc.edu.cn/debian-security/ bookworm-security main contrib non-free
清华大学源(TUNA)
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free
阿里云源(Aliyun)
deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free deb-src http://mirrors.aliyun.com/debian/ bookworm main contrib non-free deb http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free deb-src http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free deb http://mirrors.aliyun.com/debian-security bookworm-security main contrib non-free deb-src http://mirrors.aliyun.com/debian-security bookworm-security main contrib non-free deb http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free deb-src http://mirrors.aliyun.com/debian/ bookworm-backports main contrib non-free
网易源(163)
deb http://mirrors.163.com/debian/ bookworm main contrib non-free deb-src http://mirrors.163.com/debian/ bookworm main contrib non-free deb http://mirrors.163.com/debian/ bookworm-updates main contrib non-free deb-src http://mirrors.163.com/debian/ bookworm-updates main contrib non-free deb http://mirrors.163.com/debian/ bookworm-backports main contrib non-free deb-src http://mirrors.163.com/debian/ bookworm-backports main contrib non-free deb http://mirrors.163.com/debian-security/ bookworm-security main contrib non-free deb-src http://mirrors.163.com/debian-security/ bookworm-security main contrib non-free
4.更新软件包列表
保存并退出编辑器后,执行以下命令更新软件包列表:apt update && apt upgrade
之后,你就可以正常使用国内源进行软件包的安装和更新了。
七、挂载NFS/SMB服务
进入pve的web界面,依次点击“数据中心”“存储”,根据实际情况添加相应的服务
进入pve命令行(shell),输入pct set 101 -mp0 /mnt/pve/share nfs,mp=/mnt/share nfs
参数解释:
- pct:这是Proxmox VE的命令行工具,用于管理LXC容器。
- set:用于设置或修改LXC容器的配置。
- 101:这是LXC容器的ID号。该命令将应用于ID为101的容器。
- -mp0:mp表示挂载点(mount point),0是挂载点的索引。如果容器内有多个挂载点,可以使用-mp1、-mp2等不同的索引来区分。
- /mnt/pve/share nfs:这是Proxmox VE主机上的路径,即要挂载到容器内的NFS共享目录。/mnt/pve/share nfs 是主机上的NFS挂载点。
- mp=/mnt/share nfs:这是容器内的路径,/mnt/share nfs 是NFS共享目录在LXC容器内的挂载位置。
整体含义:
这条命令将PVE主机上 /mnt/pve/share nfs 路径(一个通过NFS共享的目录)挂载到容器ID为 101 的LXC容器的 /mnt/share nfs 路径下。
- 如果挂载的是smb服务
那么就略有不同,进入pve命令行(shell),输入pct set 101 -mp0 /mnt/pve/share_smb,mp=/mnt/share_smb
八、安装docker
使用第三方shell工具登录lxc容器
- 1. 更新包索引并安装依赖包
首先,确保你的包索引是最新的,并安装一些必要的依赖包:
apt-get update
apt-get install ca-certificates curl gnupg
- 2. 添加 Docker 的官方 GPG 密钥
需要添加 Docker 官方的 GPG 密钥,以确保从官方源安装的软件包是可信的:
apt install curl -y
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
- 3. 设置 Docker 仓库
添加 Docker 官方的APT软件仓库:
nano /etc/apt/sources.list.d/docker.list
加入如下内容:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable
- 4. 更新包索引
现在,更新包索引以包括刚刚添加的 Docker 仓库:
apt-get update
- 5. 安装 Docker Engine
使用以下命令安装 Docker 及其依赖项:
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker-ce: Docker Engine社区版。
containerd.io: 一个高性能容器运行时。
docker-buildx-plugin: 用于多架构构建的 Docker Buildx。
docker-compose-plugin: Docker Compose V2 的插件。
- 6. 启动并启用 Docker 服务
安装完成后,Docker服务会自动启动。如果没有,可以手动启动并设置开机自动启动:
systemctl start docker
systemctl enable docker
- 7. 验证 Docker 安装
你可以通过运行以下命令来验证 Docker 是否安装成功:
docker --version
看到如下输出,证明docker已经安装成功了!]
8.查看docker运行状态
systemctl status docker
看到如下输出,证明docker服务已经运行了
九、安装jellyfin
详细步骤参考Docker部署jellyfin实现核显硬解
十、配置开机脚本
为了避免docker启动的过快,导致jellyfin运行时,系统还未挂载smb服务,需要配置一下开机脚本:
nano /etc/systemd/system/rc-local.service
复制如下代码:
[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
配置开机启动
systemctl enable rc-local.service
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
chmod 777 /dev/dri/* # 或根据需要调整权限
sleep 30
systemctl restart docker
exit 0
这个脚本的目的:
- 一是确保jellyfin容器有访问核显的权限
- 二是确保挂载硬盘后再启动jellyfin容器。