小主机安装日志

自己编一个适应自己环境的操作流程,方法都来自于网上大神,感谢爱折腾的老高董先生or文乐文化等等很多大神引路。
如有侵权请留言告知,我会尽快删除
以N100和PVE8.2为例,J4125等老机型不需要做的地方日后再注明

一、资源准备
1、下载镜像

https://www.proxmox.com/

下载PVE最新镜像

https://www.ikuai8.com/

下载iKuai最新镜像

https://www.istoreos.com/

下载iStoreOS最新镜像

2、连接主机
现有网络条件可以科学,交换机接新小主机,小主机选一个网口作为管理口,此网口连接到现有网络LAN上。
如果没有网络条件,则安装PVE后需要设置网关和IP到光猫上,应该是192.168.1.254,否则不能联网。
也可以当作二级路由,设置192.168.123.254,不过要在安装好爱快之后再换源开启硬解等操作,后续再考虑这个问题
3、打开rufus,在U盘里写入PVE镜像,当前版本“proxmox-ve_8.2-2”(参考网上各种教程吧)
4、进BIOS,关掉C-State(节能模式),减小电流声,避免使用中出现的莫名问题,在空闲的时候还是有电流声,估计与P-State有关系,网上有调节电压去掉声音的,日后小心尝试,避免过热或烧毁

二、安装PVE并设置
1、BIOS设置U盘启动
2、安装PVE(参考网络教程),设置IP地址为192.168.123.254
3、打开网址:

https://192.168.123.254:8006/

其中254是安装PVE过程中设置的小主机IP
4、设置PVE的DNS
目录树PVE--DNS

192.168.123.100
114.114.114.114
223.5.5.5

三、换源(需iKuai和PVE均联网正常)
1、国内清华源(北方较快)中科大(南方较快),二选一即可
(1)将自带的源文件sources.list备份

cp /etc/apt/sources.list /etc/apt/sources.list_bak

(2)编辑sources.list

nano /etc/apt/sources.list
#PVE8.x清华源
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
#PVE8.x中科大源
deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware

ctrl+x y 回车保存退出
2、编辑pve企业源:

nano /etc/apt/sources.list.d/pve-enterprise.list

将其中原有的proxmox句首加# 注释掉,变为

#deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise

添加以下清华源:

#PVE8.x清华企业源
deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription

或者中科大源二选一即可

#PVE8.x中科大企业源
deb https://mirrors.ustc.edu.cn/proxmox/debian bookworm pve-no-subscription

ctrl+x y 回车保存退出
(4)修复源401错误

nano /etc/apt/sources.list.d/ceph.list

将其中原有的proxmox句首加# 注释掉,变为:

#deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription

添加中科大ceph源:

deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription

ctrl+x y 回车保存退出

更新

apt update && apt dist-upgrade -y

移除 Proxmox VE 无有效订阅提示 (8.2-2已测试通过,以下是一条命令)

sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

(5)顺便把LXC更换为清华源:
备份APLInfo.pm

cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back

更换为清华源:

sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm

重启服务后生效

systemctl restart pvedaemon.service

重启

reboot

四、增加PVE概况信息
重启后,PVE更新过页面,可能会不再显示概况信息(CPU、硬盘、频率、温度等),可以手动再次设置,此脚本为硬酷预装PVE中自带,如自装PVE可以自行下载安装

https://github.com/KoolCore/Proxmox_VE_Status

网址安装说明如下:
Installation
Note: You need to run the following codes as root. The codes below are run in the Shell of Proxmox VE web UI (root user by default).

Update the current Proxmox VE packages这一步我跳过了:

export LC_ALL=en_US.UTF-8
apt update && apt upgrade -y

Install git and wget services:

apt install git wget

Clone the script with git:

git clone https://github.com/KoolCore/Proxmox_VE_Status.git

Go to the directory where the script is located:

cd Proxmox_VE_Status

Run the script:

bash ./Proxmox_VE_Status_en.sh

Run the passthrough script:

bash ./passthrough.sh

按照github命令运行以后1-3分钟,ctrl+shift+r 硬刷浏览器缓存,再运行如下命令汉化。
每次更新过内核或调整参数后,如果概况信息不能正确显示,也需要运行以下命令

cd /root/Proxmox_VE_Status
#查看当前目录文件
ls
chmod +x Proxmox_VE_Status_zh.sh
./Proxmox_VE_Status_zh.sh

等待1-3分钟,ctrl+shift+r 硬刷浏览器缓存后生效

五、开启硬解和SRIOV
这里分三种方法,可以结合着用,目前看都能实现
————————————————————————————————————————
第一种、我猜测不用虚拟核显也要开SRIOV核显,数量调成1,一个核显够了,发挥最大性能,以后需要再修改最后一套命令开启就行了
1、查看当前内核

uname -r

2、升级6.2内核、headers和firmware

apt update
apt upgrade -y
reboot

另一个教程提示更新,我认为刚才更新源的时候刚做过,现在可以不做,做完后要重启
这里更新不到headers和firmware,清华源和中科大源还有官方源都不好用,更新了方法二里的源

wget https://v2rayssr.com/tool/yuan.sh -O yuan.sh && chmod +x yuan.sh && ./yuan.sh
apt update -y
apt upgrade -y
reboot
apt install -y pve-kernel-6.8.12-2-pve pve-headers-6.8.12-2-pve pve-firmware

原文是

apt install -y pve-kernel-6.2.6-1-pve pve-headers-6.2.6-1-pve pve-firmware

这里6.2.6-1改为当前内核相同的数值,我的是6.8.12-2
重启

reboot

3、编译i915-sriov驱动
安装工具

apt install -y build-* git dkms

拖库

git clone https://github.com/strongtz/i915-sriov-dkms.git
cd i915-sriov-dkms

打开配置文件

nano dkms.conf

第一行改为

PACKAGE_NAME="i915-sriov-dkms"

第二行改为

PACKAGE_VERSION="6.8"

原文6.2,我的内核是6.8,其实这里是6.几都无所谓,只要跟下文对应上即可
ctrl+x y 回车保存退出

复制此文件夹到相应目录,开始编译

cp -r /root/i915-sriov-dkms/ /usr/src/i915-sriov-dkms-6.8

进入目录

cd /usr/src/i915-sriov-dkms-6.8

执行编译命令

dkms install -m i915-sriov-dkms -v 6.8

编译完成后检查状态

dkms status

4、设置直通和i915guc

nano /etc/default/grub

在quiet后添加

intel_iommu=on i915.enable_guc=3 i915.max_vfs=7

整条命令改成GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_guc=3 i915.max_vfs=7"
ctrl+x y 回车保存退出

顺便把设备直通的其他操作一起做了,最新安装时发现这几条命令默认已有:

nano /etc/modules

粘贴以下:

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

更新配置

update-grub
update-initramfs -u

5、安装sysfsutils

apt install -y sysfsutils

添加以下VFs参数,N100建议最高3,可自定义数量,建议按需设置,设置1个时性能最强。

echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 1" > /etc/sysfs.conf

重启

reboot

lspci检查直通的虚拟显卡

lspci

显示如下:
00:02.0 VGA compatible controller: Intel Corporation Device 46d1(物理核显)
00:02.1 VGA compatible controller: Intel Corporation Device 46d1(虚拟核显1)

如果上一条命令中,sriov_numvfs = 3,则显示如下:
00:02.0 VGA compatible controller: Intel Corporation Device 46d1(物理核显)
00:02.1 VGA compatible controller: Intel Corporation Device 46d1(虚拟核显1)
00:02.2 VGA compatible controller: Intel Corporation Device 46d1(虚拟核显2)
00:02.3 VGA compatible controller: Intel Corporation Device 46d1(虚拟核显3)
注意虚拟核显越多,性能越低。只需要1个时,虚拟1个核显即可。就像切西瓜,整体就这么大,人数越多每个人分到的瓜越小。
————————————————————————————————————————
第二种
1、更换 PVE 源
非必须(开启SRIOV的时候才用到,不开启不用改,实测不更新不能下载headers和firmware)

wget https://v2rayssr.com/tool/yuan.sh -O yuan.sh && chmod +x yuan.sh && ./yuan.sh

2、直通 PCIe 设备
(1)若你是想开启核显的 SR-IOV (需要 CPU 的支持,我使用的N100),请使用如下命令直通 PCIE 设备:
i915.max_vfs=3 这里的 3 是允许虚拟的核显最大数量,我感觉不需要和下面几步的数量相同,要大于下面的数

sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT/c\GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream i915.enable_guc=3 i915.max_vfs=3"' /etc/default/grub

最新安装时发现这几条命令默认已有:

echo -e "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd" | tee -a /etc/modules
update-grub
update-initramfs -u -k all
reboot

(2)若你的 CPU 不支持 SR-IOV,或是不想开启 SR-IOV,请使用如下命令直通 PCIE 设备:

sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT/c\GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream"' /etc/default/grub
echo -e "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd" | tee -a /etc/modules
update-grub
update-initramfs -u -k all
reboot

检验 PCIE 直通结果
Shell 窗口输入 lspci ,回显如下(里面包含你所有的 PCIe 设备列表):

lspci

root@pve:~# lspci
0000:00:00.0 Host bridge: Intel Corporation Device 4640 (rev 02)
0000:00:01.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x16 Controller #1 (rev 02)
0000:00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
0000:00:06.0 System peripheral: Intel Corporation RST VMD Managed Controller
0000:00:0a.0 Signal processing controller: Intel Corporation Platform Monitoring Technology (rev 01)
0000:00:0e.0 RAID bus controller: Intel Corporation Volume Management Device NVMe RAID Controller
0000:00:14.0 USB controller: Intel Corporation Alder Lake-S PCH USB 3.2 Gen 2x2 XHCI Controller (rev 11)
0000:00:14.2 RAM memory: Intel Corporation Alder Lake-S PCH Shared SRAM (rev 11)
0000:00:15.0 Serial bus controller: Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #0 (rev 11)
0000:00:15.1 Serial bus controller: Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #1 (rev 11)
0000:00:15.2 Serial bus controller: Intel Corporation Alder Lake-S PCH Serial IO I2C Controller #2 (rev 11)
0000:00:16.0 Communication controller: Intel Corporation Alder Lake-S PCH HECI Controller #1 (rev 11)
0000:00:17.0 System peripheral: Intel Corporation RST VMD Managed Controller
0000:00:1a.0 System peripheral: Intel Corporation RST VMD Managed Controller
0000:00:1b.0 PCI bridge: Intel Corporation Device 7ac0 (rev 11)
0000:00:1c.0 PCI bridge: Intel Corporation Alder Lake-S PCH PCI Express Root Port #1 (rev 11)
0000:00:1c.2 PCI bridge: Intel Corporation Device 7aba (rev 11)
0000:00:1d.0 PCI bridge: Intel Corporation Alder Lake-S PCH PCI Express Root Port #9 (rev 11)
0000:00:1f.0 ISA bridge: Intel Corporation Z690 Chipset LPC/eSPI Controller (rev 11)
0000:00:1f.3 Audio device: Intel Corporation Alder Lake-S HD Audio Controller (rev 11)
0000:00:1f.4 SMBus: Intel Corporation Alder Lake-S PCH SMBus Controller (rev 11)
0000:00:1f.5 Serial bus controller: Intel Corporation Alder Lake-S PCH SPI Controller (rev 11)
0000:01:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
0000:01:00.1 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
0000:01:00.2 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
0000:01:00.3 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+ (rev 02)
0000:05:00.0 Ethernet controller: Intel Corporation Ethernet Controller I225-V (rev 03)
0000:06:00.0 PCI bridge: ASMedia Technology Inc. Device 1806 (rev 01)
0000:07:00.0 PCI bridge: ASMedia Technology Inc. Device 1806 (rev 01)
0000:07:02.0 PCI bridge: ASMedia Technology Inc. Device 1806 (rev 01)
0000:07:06.0 PCI bridge: ASMedia Technology Inc. Device 1806 (rev 01)
0000:07:0e.0 PCI bridge: ASMedia Technology Inc. Device 1806 (rev 01)
0000:08:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-V (rev 04)
0000:09:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-V (rev 04)
0000:0a:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-V (rev 04)
0000:0b:00.0 Ethernet controller: Intel Corporation Ethernet Controller I226-V (rev 04)
10000:e0:06.0 PCI bridge: Intel Corporation 12th Gen Core Processor PCI Express x4 Controller #0 (rev 02)
10000:e0:17.0 SATA controller: Intel Corporation Alder Lake-S PCH SATA Controller [AHCI Mode] (rev 11)
10000:e0:1a.0 PCI bridge: Intel Corporation Alder Lake-S PCH PCI Express Root Port #25 (rev 11)
10000:e0:1b.0 System peripheral: Intel Corporation RST VMD Managed Controller
10000:e0:1b.4 PCI bridge: Intel Corporation Device 7ac4 (rev 11)
10000:e1:00.0 Non-Volatile memory controller: MAXIO Technology (Hangzhou) Ltd. NVMe SSD Controller MAP1202 (rev 01)
10000:e2:00.0 Non-Volatile memory controller: MAXIO Technology (Hangzhou) Ltd. NVMe SSD Controller MAP1602 (rev 01)
10000:e3:00.0 Non-Volatile memory controller: MAXIO Technology (Hangzhou) Ltd. NVMe SSD Controller MAP1202 (rev 01)
root@pve:~#

3、开启核显的 SR-IOV
什么是SR-IOV?这里引用 Oracle 的说明 SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。SR-IOV 标准允许在虚拟机之间高效共享 PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的 I/O 性能。SR-IOV 规范定义了新的标准,根据该标准,创建的新设备可允许将虚拟机直接连接到 I/O 设备。 简单来说,允许将一个PCIe设备虚拟化成多个设备,且每个虚拟化出来的设备都可以获得与物理设备相近的性能 如果显卡开启SR-IOV就可以给多台虚拟机同时配上显卡 网卡之类的设备也支持SR-IOV,但是不如显卡这么有用(毕竟虚拟化出来的网卡性能也没差多少,还不需要自己安装驱动)
在以下的 SR - IOV 设置中,请开启 PVE 的外网访问(需要访问 GitHub ),我是在软路由下通过管理口连接的小主机,具备外网环境。

具体命令如下,若是不太明白,推荐先观看董先生or文乐文化的视频

#2024-09-04 支持内核 6.8
#Proxmox VE 主机推荐内核范围:proxmox-kernel-6.5.13-3-pve ~ 6.8.12-1-pve

uname -r       # 已经测试的支持内核范围 6.5.13-3-pve ~ 6.8.12-1-pve ,具体看项目支持情况 

# 2024 09 21 测试情况:教程支持最新 PVE 8.2.5 内核版本:6.8.12-2-pve
# 更换源(可选,但是推荐更换)
wget https://v2rayssr.com/tool/yuan.sh -O yuan.sh && chmod +x yuan.sh && ./yuan.sh

# 更新源
apt update -y

# 更新内核,若刚才 uname -r 的内核版本过小,可以更新内核!更新后,内核大于 6.8.12-1 的情况还未尝试
apt upgrade -y   # 更新内核以后,必须重新启动!(大的更新,都是推荐重启)
reboot

# 更新到最新,但是前提内核不能超过GitHub项目的最新版本(更多内核没进行测试而已)。6.8.12-1
# 后续避免升级内核
uname -r       # 已经测试的支持内核范围 6.5.13-3-pve ~ 6.8.12-1-pve ,具体看项目支持情况 

apt install build-* dkms git sysfsutils -y
apt install proxmox-headers-$(uname -r) proxmox-kernel-$(uname -r)
cd ~
git clone https://github.com/strongtz/i915-sriov-dkms.git
cd ~/i915-sriov-dkms
dkms add .
dkms install -m i915-sriov-dkms -v $(cat VERSION) --force
lspci | grep VGA    # 请记录当前的核显ID,修改下行的ID后执行下面的代码。

# sriov_numvfs = 3 这里的 3 是需要虚拟的核显数量,需要小于上面的数量,我这里填1
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 1" > /etc/sysfs.conf
reboot

重启之后,在 SHELL 窗口输入 lspci | grep VGA ,回显如下所示,SR-IOV 开启成功,成功虚拟出了 7 个核显。

root@pve:~# lspci | grep VGA
0000:00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
0000:00:02.1 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
0000:00:02.2 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
0000:00:02.3 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
0000:00:02.4 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
0000:00:02.5 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
0000:00:02.6 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
0000:00:02.7 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
root@pve:~#
————————————————————————————————————————
第三种、这种方法是直通给Win使用的,别的不需要,我目前没有采用这种方法

1、编辑grub开启Intel iommu分组准备直通

nano /etc/default/grub

添加以下:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

ctrl+x,y,回车保存退出

2、更新grub:

update-grub

3、添加设备黑名单为后面虚拟Windows直通核显显示输出做准备(不需要的可以不设置黑名单)

nano /etc/modprobe.d/pve-blacklist.conf

在里面加入

blacklist i915
blacklist snd_hda_intel

ctrl+x,y,回车保存退出
解释:屏蔽intel核显,屏蔽声卡驱动

4、更新initramfs:

update-initramfs -u -k all

5、重启:

reboot

六、上传镜像
目录树local中,iso镜像,上传
注意:等待弹窗出现“TASK OK”后再关闭
上传iKuai、iStoreOS、Ubuntu、Debian、Win11等
(需要补充各镜像地址,在文章开头)

七、安装爱快

  • 名称iKuai--下一步--iso镜像选上传的爱快ISO包--下一步--系统,默认--下一步--磁盘改为10G或5G--下一步--CPU类别改为host--4核或者2核--下一步--内存4096或者2048--下一步--网卡,默认--确认完成
    这一步在运行之后发现,如果不安装docker,内存占用在500M以下,所以分配1024或者2048足够了
  • 虚拟机的硬件,添加PCI设备,添加直通网卡
    选择原始设备,几个i226v,这里选4作为wan口,3作为lan口
  • 选项,引导顺序,把iso镜像拖动到第一个,去掉网络引导前面的对号
  • 控制台,点启动,start now,等待跑码完成,选1,将系统安装到这个硬盘,y,回车,等待安装完成后系统自动重启
  • 重启后由于是iso引导,还是回到安装界面,输入s,回车关机
  • 硬件,选择光驱,点击上面移除按钮,安装完光驱可以删掉了,开机启动,可以选上,也可以全部设置完替换现有软路由前再选上开机启动
  • 控制台,点启动,start now,等待跑码完成,正常进入爱快控制台,此时回车可以刷新控制台状态,s关机,q退出
  • 绑定网卡,选1,绑定网卡,eth按照实际情况修改
del lan1
set wan1 eth1
set lan1 eth2

这是硬交换方案,取消虚拟网桥vmbr0的链接,防止环路,提高交换效率。代码一般是这样,需要看实际情况

  • 按q退出

  • 选2,设置LAN和WAN的IP,选0,设置LAN1地址,和PVE在同一个网段,此时由于lan口和wan口都没有插网线,只连接了新软路由的管理口,所以IP地址与在线软路由不会冲突
    192.168.123.1/255.255.255.0
    回车

  • 选1,设置WAN1地址,和光猫在同一个网段
    192.168.1.123/255.255.255.0
    回车,输入网关
    192.168.1.1

  • 按q退出

  • 等全部设置好之后,新软路由上线,浏览器输入192.168.123.1,输入用户名密码就可以进行设置,用户名admin,初次登陆自己设置密码,可以导入配置文件。具体设置内容以后再总结

八、安装旁路由iStoreOS(或OpenWRT)

  • 名称iStoreOS--下一步--不使用任何介质--下一步--系统,默认--下一步--磁盘,左上角小图标删掉--下一步--CPU类别改为host--4核或者2核--下一步--内存4096或者2048--下一步--网卡,默认--确认完成
    这一步在运行之后发现,如果不安装docker,内存占用在600M以下,所以分配1024或者2048足够了
  • 网卡直通,虚拟机的硬件,添加PCI设备
    选择原始设备,几个i226v,这里选2直通
    选择网络设备net0,点上方移除按键
  • 删掉CDROM,选择CD驱动器,点上方移除按键
  • 点local,iso镜像,确认一下镜像已经上传,以及确认文件名
  • PVE-Shell下运行命令行,将img转为虚拟硬盘并导入虚拟机
cd /var/lib/vz/template/iso
ls
mv istoreos-22.03.7-2024080210-x86-64-squashfs-combined-efi.img istoreos.img
qm importdisk 101 /var/lib/vz/template/iso/istoreos.img local-lvm

注意以上istoreos-22.03.7-2024080210-x86-64-squashfs-combined-efi.img改为当前镜像文件名,101改为当前旁路由虚拟机ID
ls是查看当前目录文件,不输入也可

  • 点击虚拟机,硬件,就能看到未使用的磁盘0
    双击,如果固件不支持SCSI,就改为SATA,iStoreOS当前版本不用改
    点击添加,完成硬盘设置
    进入选项,更改引导顺序,将SCSI硬盘拖动到上面并选中,作为第一引导项,去掉net引导前面的对号,点OK
    检查无误,控制台启动,出现please press enter。。。时完成启动,按回车,这里控制台不支持复制粘贴,只能手敲,或者用SSH
  • 修改固件登录IP,在iStore的控制台里输入:
vi /etc/config/network

点i 进入编辑模式
改IP为同网段,比如192.168.123.100,具体操作如下,lan这一段

config interface 'lan'
             option device 'br-lan'
             option proto 'dhcp'

将dhcp改为static,并增加几行内容,最终如下

config interface 'lan'
             option device 'br-lan'
             option proto 'static'
             option ipaddr '192.168.123.100'
             option netmask '255.255.255.0'

ipv6的相关内容不用动

  • 点ESC,英文:wq回车保存退出
service network restart
  • 重启网络,或者reboot重启

等全部设置好之后,新软路由上线,进入浏览器,访问iStoreOS的IP 192.168.123.100 进行初始化设置,默认账户root,默认密码password
具体设置稍后再写,最好还是看看老高的视频《【小白成长记12】PVE All in one AIO iKuai_iStoreOS LXC Alpine Docker Windows11核显直通显示输出 TrueNAS Jellyfin硬解转码》

九、安装LXC容器
以debian为例,Alpine的命令与debian不相同,教程较少,还不如debian稳定
详见李文乐的网页《(八)PVE All in One之LXC容器安装Docker、Portainer、jellyfin安装、SRIOV核显直通硬件解码》,这篇文章用来设置
和老高的视频《Docker容器挂载NFS的方法 建立容器直接挂载不需要挂载在宿主主机后再映射 不需要写脚本 以N6005_5105 LXC Jellyfin为例》,这个视频用来挂载,都讲的很细

1、创建容器

  • local—CT模板—模板
  • 选择debian-12,下载模版
  • 等待弹窗出现“TASK OK”后再关闭
    这里如果选择不到debian-12,就等PVE软件源更新后,过一晚再试
  • 右上角“创建CT”也就是LXC容器
  • 主机名Docker-Debian。一定要去掉“无特权容器”前面的对号,我们需要一个特权的容器。输入root账号的密码,下一步
  • 模板选择debian-12,下一步
  • 磁盘,如果做jellyfin硬解,则至少100G,推荐200G,如果所有Docker都在这个LXC下,就分配更多一点,如果用小雅,就500起步,我这里填写200G,后续会尝试不同功能分别部署在不同的LXC下,好处是方便功能删减,版本更新等操作时崩溃影响小,单次备份空间占用小
  • CPU,给满4核,下一步
  • 内存,给8192起步,就8G,swap给4096,就4G,下一步
  • 网络,IPv4填192.168.123.200/24,网关填192.168.123.100,都按照实际情况修改,下一步
  • DNS默认,下一步
  • 检查无误,完成,出现“TASK OK”后再关闭!完成后不要启动!

2、补充参数,开启硬解

# 进入到PVE节点的Shell

# 查询本机的硬件参数:
ls -l /dev/dri
# 系统输出信息:
total 0
drwxr-xr-x 2 root root        120 Oct 19 19:30 by-path
crw-rw---- 1 root video  226,   0 Oct 19 19:30 card0
crw-rw---- 1 root video  226,   1 Oct 19 19:30 card1
crw-rw---- 1 root render 226, 128 Oct 19 19:30 renderD128
crw-rw---- 1 root render 226, 129 Oct 19 19:30 renderD129
# video  226,   0 Mar(是核显设备)
# render 226, 128 Mar(是渲染器)
# 如果不一样的,下面的根据自己的情况更改进行更改(基本都是一样的)
# 编辑刚刚创建好的容器配置文件

编辑容器配置文件:

nano /etc/pve/lxc/102.conf
# 将容器ID替换成真实容器ID
# 进入到编辑页面后,在最后面添加以下内容,粘贴
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
lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
# ctrl+x y 回车保存退出

这一步不知道是否必要,先添加上,如果不行再去掉

nano /etc/modprobe.d/i915.conf
粘贴大补丸:
options i915 enable_guc=3

ctrl+x,y,回车

reboot

重启后验证低功耗编码HuC和GuC是否开启命令如下:

journalctl -b -o short-monotonic -k | egrep -i "i915|dmr|dmc|guc|huc"

返回信息中有以下HuC和GuC成功开启:
[ 3.862964] pve kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/icl_dmc_ver1_09.bin (v1.9)
[ 3.884978] pve kernel: i915 0000:00:02.0: [drm] GuC firmware i915/ehl_guc_70.1.1.bin version 70.1
[ 3.884987] pve kernel: i915 0000:00:02.0: [drm] HuC firmware i915/ehl_huc_9.0.0.bin version 9.0
[ 3.899160] pve kernel: i915 0000:00:02.0: [drm] HuC authenticated
[ 3.899505] pve kernel: i915 0000:00:02.0: [drm] GuC submission enabled
ctrl+x,y,回车

3、换源
两种方法
————————————————————————————————————————
第一种

Lxc下Debian更改国内源:
备份源存储文件:

mv /etc/apt/sources.list /etc/apt/sources.list.bk

修改存储文件:

nano /etc/apt/sources.list

添加国内源

# 中科大源
deb https://mirrors.ustc.edu.cn/debian/ bookworm main non-free contrib
deb-src https://mirrors.ustc.edu.cn/debian/ bookworm main non-free contrib
deb https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main
deb-src https://mirrors.ustc.edu.cn/debian-security/ bookworm-security main
deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main non-free contrib
deb-src https://mirrors.ustc.edu.cn/debian/ bookworm-updates main non-free contrib
deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main non-free contrib
deb-src https://mirrors.ustc.edu.cn/debian/ bookworm-backports main non-free contrib

————————————————————————————————————————
方法二
LXC容器控制台下输入:

sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list && apt update && apt upgrade -y

实测方法二也好用

4、设置中文语言及时区(这一步需要重新验证,不确定)
(1)修改/etc/default/locale 文件里

cd /etc/default/locale

修改为下面内容:

echo 'LANG="zh_CN.UTF-8"' >> /etc/default/locale

(2)安装语言包

dpkg-reconfigure locales

选择 zh_CN.UTF-8 用空格选中,选中后再敲回⻋。
(3)设置时区

timedatectl set-timezone Asia/Shanghai

5、开启 SSH 登录
(1)打开 ssh 配置文件

nano /etc/ssh/sshd_config

(2)修改文件

#PermitRootLogin prohibit-password

修改为(或者直接增加一行)

PermitRootLogin yes
#prohibit-password

(3)重启服务

service ssh restart

(4)再使用第三方ssh工具登陆测试下能否成功

6、更新包

apt update
apt upgrade -y

7、Docker安装
(1)安装docker
安装依赖软件包

apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

(2)添加 Docker 的官方 GPG 密钥

curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

(3)配置正式的 docker 存储库

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

(4)安装 docker

apt install docker.io

(5)查看Docker版本信息

docker --version

(6)启动 Docker 服务

systemctl status docker

按ctrl+z退出

(7)设置docker服务为开机自启动

systemctl enable docker

(8)检查开机自启动docker服务是否开启成功

systemctl is-enabled docker 

如果输出显示 enabled,则表示 Docker 服务已成功启用。

(9)安装portainer(可视化docker容器管理)
还是在debian的控制台输入:

docker volume create portainer_data

创建一个名为 portainer_data 的 Docker 数据卷(后续所有通过portainer安装的docker容器都会存在这)
安装官方版本(成功率和速度很考验科学能力,我估计是我的换源有问题呢):

docker run -d -p 9000:9000 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /opt/docker/portainer:/data portainer/portainer-ce:latest

或者安装汉化版:

docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ce

(10)portainer使用
192.168.123.200:9000 (进入到portainer登陆面板)
进入之后选择Local(本地)

(11)登陆进去之后首先添加一个ghcr.io注册表(包含更多了镜像仓库)

  • 选择注册表 ——> 添加注册表 ——> 自定义注册表 ——> 名称:GHCR ——> 注册表URL:ghcr.io ——> 添加注册表

十、部署Jellyfin
1、打开portainer,进入volume卷,添加一个新的卷,movie_nfs_volumes
选NFS,地址填NAS地址:192.168.123.123
挂载点(Mount point):/volume3/video
权限只保存RW,避免幺蛾子,后面需要在挂载时选择只读,并在Jellyfin里设置不能删除

2、同样,teleplay_nfs_volumes
192.168.123.123
/volume5/teleplay

3、Containers>Add container

Name---------Jellyfin
Image---------nyanmisaka/jellyfin(或者:nyanmisaka/jellyfin:latest,本次选择括号里的)

+map additional port 两次
8096--8096
8920--8920

下方volumes,增加四行,路径后面选择Bind,卷选择volume,并改为read-only
/opt/docker/jellyfin/cache---------/cache
/opt/docker/jellyfin/config---------/config
movie_nfs_volumes---------------/media
teleplay_nfs_volumes-------------/teleplay

Restart policy,选Always

Runtime & resources中的Devices需要映射一下
/dev/dri---/dev/dri

点击Deploy the Container
需要等一会,部署成功

4、Jellyfin设置

  • 网址输入192.168.123.200:8096
    如果有服务器,说明这台电脑以前登录过别的Jellyfin,选择删除,然后刷新网页,即可正常
  • 选择语言,注册账号密码,进入Jellyfin
  • 添加媒体库,选择类型,电影,选择media
  • 不需要刮削就去掉几个刮削器,用本地TMM刮削,下一步
  • 语言选择Chinese
  • 国家地区,P开头,People's Republic of China,下一步
  • 默认,下一步,完成
  • 登录账号
  • 控制台,看到正在扫描
  • 控制台--播放
  • 选择硬件加速QSV,格式全选,启用VPP映射
  • 再设置一下不能删除的权限

十一、安装mt_photos相册(后面详细写)
进入portainer,点击local--点击stacks(堆栈)--点击Add stack--在Web editor中输入以下内容:

version: "3"

services:
  mtphotos:
    image: registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos:latest
    container_name: mtphotos
    devices:
        - /dev/dri:/dev/dri
    restart: always
    ports:
        - 8063:8063
    volumes:
      - /docker/mt_photos/config:/config
      - /docker/mt_photos_upload:/upload
      - /volumes/photo_nfs_volumes:/photos
    environment:
      - TZ=Asia/Shanghai
      - LANG=C.UTF-8
    dns:
      - 114.114.114.114
    depends_on:
      - mtphotos_ai
      - mtphotos_face_api
  mtphotos_ai:
    image: registry.cn-hangzhou.aliyuncs.com/mtphotos/mt-photos-ai:onnx-latest
    container_name: mtphotos_ai
    restart: always
    ports:
      - 8060:8060
    environment:
      - API_AUTH_KEY=mt_photos_ai_extra
  mtphotos_face_api:
    image: crpi-gcuyquw9co62xzjn.cn-guangzhou.personal.cr.aliyuncs.com/devfox101/mt-photos-insightface-unofficial:latest
    container_name: mtphotos_face_api
    restart: always
    ports:
      - 8066:8066
    environment:
      - API_AUTH_KEY=mt_photos_ai_extra

(是不是还有环境映射)
然后再进mtphotos的容器修改photo的映射,选择建立的volumes,设为read only
mtphotos、mtphotos_ai、mtphotos_face_api中的Runtime & resources中的Devices需要映射一下
/dev/dri---/dev/dri
mtphotos肯定是有效果的,mtphotos_ai、mtphotos_face_api这两个容器的核显映射是否有效果不确定,在immich相册的immich_machine_learning容器中,需要开启核显映射。不过MT-Photos开了也没出问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容