Proxmox Virtual Environment 安装记录
PVE概述
PVE,全称Proxmox Virtual Environment,是基于Debian的Linux系统,虚拟机内核为KVM。硬件兼容性优秀。界面功能不强,很多操作要靠命令行,但扩展能力几乎是无限的。
镜像下载 https://pve.proxmox.com/wiki/Downloads
中文文档 https://pve-doc-cn.readthedocs.io/zh-cn/latest/
硬件信息
畅网 I5-1235U CW-MBX-AD12
系统版本以及硬件信息
.://:` `://:.
`hMMMMMMd/ /dMMMMMMh`
`sMMMMMMMd: :mMMMMMMMs`
`-/+oo+/:`.yMMMMMMMh- -hMMMMMMMy.`:/+oo+/-`
`:oooooooo/`-hMMMMMMMyyMMMMMMMh-`/oooooooo:`
`/oooooooo:`:mMMMMMMMMMMMMm:`:oooooooo/`
./ooooooo+- +NMMMMMMMMN+ -+ooooooo/.
.+ooooooo+-`oNMMMMNo`-+ooooooo+. root@pve
-+ooooooo/.`sMMs`./ooooooo+- --------
:oooooooo/`..`/oooooooo: OS: Proxmox VE 8.1.4 x86_64
:oooooooo/`..`/oooooooo: Host: CW-MBX-AD12
-+ooooooo/.`sMMs`./ooooooo+- Kernel: 6.5.13-1-pve
.+ooooooo+-`oNMMMMNo`-+ooooooo+. Uptime: 21 hours, 21 mins
./ooooooo+- +NMMMMMMMMN+ -+ooooooo/. Packages: 789 (dpkg)
`/oooooooo:`:mMMMMMMMMMMMMm:`:oooooooo/` Shell: bash 5.2.15
`:oooooooo/`-hMMMMMMMyyMMMMMMMh-`/oooooooo:` Terminal: /dev/pts/0
`-/+oo+/:`.yMMMMMMMh- -hMMMMMMMy.`:/+oo+/-` CPU: 12th Gen Intel i5-1235U (12) @ 2.501GHz
`sMMMMMMMm: :dMMMMMMMs` GPU: Intel Alder Lake-UP3 GT2 [Iris Xe Graphics]
`hMMMMMMd/ /dMMMMMMh` Memory: 2607MiB / 31827MiB
`://:` `://:`
软件包仓库更换为国内源设置
备份源文件
cp /etc/apt/sources.list /etc/apt/sources.list.bak
编辑源文件
# 1. 更新debian 软件源
#(任选一个源)
#1.1.1 清华源
# 参考: https://mirrors.tuna.tsinghua.edu.cn/help/debian/
sed -i.bak "s#ftp.debian.org/debian#mirrors.tuna.tsinghua.edu.cn/debian#g" /etc/apt/sources.list
sed -i "s#security.debian.org#mirrors.tuna.tsinghua.edu.cn/debian-security#g" /etc/apt/sources.list
#apt update && apt-get install -y apt-transport-https ca-certificates --fix-missing
#1.1.2 中科大源
# 参考: https://mirrors.ustc.edu.cn/help/proxmox.html
sed -i.bak 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
#apt update && apt-get install -y apt-transport-https ca-certificates --fix-missing
#1.1.3 aliyun源
sed -i.bak "s#ftp.debian.org/debian#mirrors.aliyun.com/debian#g" /etc/apt/sources.list #修改文件的同时, 会创建一个.bak后缀的备份文件
sed -i "s#security.debian.org#mirrors.aliyun.com/debian-security#g" /etc/apt/sources.list #阿里Debian源
#apt update && apt-get install -y apt-transport-https ca-certificates --fix-missing
#1.1.4 163源
sed -i.bak "s#ftp.debian.org/debian#mirrors.163.com/debian#g" /etc/apt/sources.list #163Debian源
sed -i "s#security.debian.org#mirrors.163.com/debian-security#g" /etc/apt/sources.list #163Debian源
#apt update && apt-get install -y apt-transport-https ca-certificates --fix-missing
# 2. PVE 软件源
# 删除默认企业源
rm -rf /etc/apt/sources.list.d/pve-enterprise.list
#(任选一个源)
# 2.1.1 清华源
echo "deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
# 2.1.2 中科大源
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
#3 CEPH分布式源
#3.1.1 中科大源
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription" > /etc/apt/sources.list.d/ceph.list #中科大源
sed -i.bak "s#http://download.proxmox.com/debian#https://mirrors.ustc.edu.cn/proxmox/debian#g" /usr/share/perl5/PVE/CLI/pveceph.pm #中科大源
# --------------------------------------------------------
# 更新索引, 升级安装软件包, 重启系统
# --------------------------------------------------------
# 如果无法拉取https软件源时安装
apt update && apt-get install -y apt-transport-https ca-certificates --fix-missing
apt update && apt dist-upgrade
#4.LXC容器仓库源(CT)
# 4.1.1 中科大源
sed -i.bak "s#http://download.proxmox.com/images#https://mirrors.ustc.edu.cn/proxmox/images#g" /usr/share/perl5/PVE/APLInfo.pm
systemctl restart pvedaemon # 稍等下手动刷新webui 页面
# 删除订阅弹窗
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
# 执行完成后,需注销PVE登录后, 重新启动浏览器
pve_source工具优化
工具介绍
功能介绍:
1、更换PVE软件源、Debian源、LXC CT源、Ceph源及一键换源并更新系统等。源包括中科大源、清华大学源、南京大学源、阿里云源、腾讯源、华为源等;
2、设置设备的直通直通功能、虚拟机的核显及高清音频直通功能;
3、自定义虚拟机的扩展参数配置向导;
4、群晖虚拟机虚拟 USB 引导配置向导;
5、修改 PVE 概要信息栏,增加 CPU及线程频率、CPU及核心、主板等工作状态及温度,风扇转速,NVME及机械硬盘的型号、容量、温度、通电时间、IO状态等信息显示。其中NVME支持0E故障监测。UPS 信息
6、支持安装PVE暗黑主题(感谢Weilbyte);
7、支持删除其他内核及头文件,也支持一键删除其他内核及头文件;
8、支持修改 CPU 工作模式;
9、支持自定义 CPU 主频限制区间或锁定主频。
P.S.
①个人编写的小工具,适用于特定机型个别场景,因此请勿与其他类似功能工具比较;
②不定期更新。个人较繁忙,有事留言,请勿急催;
③感谢支持。
其他
6.x内核,AMD 平台 CPU 频率限制无效,需要更新到6.5内核。非脚本BUG。Intel 平台无问题。
pve_source工具来自Jazz https://bbs.x86pi.cn/thread?topicId=20
wget -q -O /root/pve_source.tar.gz 'https://bbs.x86pi.cn/file/topic/2023-11-28/file/01ac88d7d2b840cb88c15cb5e19d4305b2.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source
使用 pve_source定制相关优化
- 1.0 去掉无效的订阅
- 2.0 卸载不用的旧内核以及头文件
- 2.1 一键卸载其他内核以及头文件
- 3.0 修改PVE概要信息
- 4.0 移除local-lvm存储空间
核显直通 Windows
参考信息
Bilibili教程视频 爱折腾的老高
Github 工具软件
Intel 核显直通 optionROM gangqizai/igd
https://github.com/gangqizai/igd
EDK2-BaseTools-win32 (工具链,可用于合并多个efi和二进制ROM)
https://github.com/tianocore/edk2-BaseTools-win32
[vbios_gvt_uefi.rom] UBU_v1.79.5
/etc/default/grub
grub文件概述
[!CAUTION]
这个文件包含了一系列的配置项,每个配置项都控制着不同的启动行为。下面是一些主要的配置项及其作用:
GRUB_DEFAULT
: 设置默认启动项的索引号,例如,要默认从第四个菜单项启动,可以将其设置为3。GRUB_HIDDEN_TIMEOUT
和GRUB_HIDDEN_TIMEOUT_QUIET
: 这两个选项组合起来可以实现隐藏GRUB菜单的效果,在一定时间内无操作则自动进入默认启动项。GRUB_TIMEOUT
: 设置在没有用户干预的情况下,GRUB等待多长时间后自动进入默认启动项。GRUB_DISTRIBUTOR
: 定义了GRUB的版本和发行版信息。GRUB_CMDLINE_LINUX_DEFAULT
和GRUB_CMDLINE_LINUX
: 这些是用来传递给Linux内核的启动参数,如“quiet splash”表示以安静模式启动并使用splash图像。GRUB_TERMINAL
: 设置是否使用图形终端界面,注释掉该行(去除前面的#)将只使用文本模式。GRUB_GFXMODE
: 设置GRUB图形界面的分辨率。GRUB_DISABLE_LINUX_UUID
: 用来设置是否禁用Linux的UUID参数传递,这通常与磁盘识别方式有关。GRUB_DISABLE_LINUX_RECOVERY
: 用来设置是否创建恢复模式的启动项。修改
/etc/default/grub
文件之后,为了使更改生效,需要运行update-grub
命令来生成新的/boot/grub/grub.cfg
文件,然后重启计算机。综上所述,这个文件非常关键,因为它直接影响到系统的引导过程和用户的启动体验。如果你需要调整系统启动时的行为,如默认操作系统选择、启动参数或者启动时的界面表现等,你可以通过编辑这个文件来实现。
grub编辑
[!CAUTION]
vim /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt initcall_blacklist=sysfb_init"
GRUB_CMDLINE_LINUX=""
更新GRUB引导加载器配置文件
update-grub
/etc/modprobe.d/vifo.conf
通过设备ID绑定vfio-pci 执行 lspci -n | grep -E "0300" 查看并记录核显 VendorID 和 DeviceID
echo "options vfio-pci ids=8086:a780" >> /etc/modprobe.d/vifo.conf
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
/etc/modprobe.d/pve-blacklist.conf
pve-blacklist.conf 文件概述
pve-blacklist.conf是一个配置文件,用于在Proxmox Virtual Environment(PVE)中指定要禁用的内核模块。
在PVE中,你可以使用该文件来禁止加载某些不需要的内核模块,以减少系统资源的占用和提高性能。通过将不需要的模块添加到该文件中,可以防止它们在系统启动时自动加载。
pve-blacklist.conf 文件编辑
[!CAUTION]
vim /etc/modprobe.d/pve-blacklist.conf
添加amdgpu(AMD核显驱动)、1915(Intel核显驱动hda(HDMi声卡)、允许不安全设备中断 再添加amdgpuAMD的核显区动
blacklist nvidiafb
blacklist amdgpu
blacklist i915
blacklist snd_hda_intel
options vfio_iommu_type allow_unsafe_interrupts=1
更新initramfs
update-initramfs -u -k all
reboot
该命令的作用是重新生成并更新系统的初始化RAM磁盘映像,以便在系统启动时加载正确的内核模块和文件系统。
具体来说,-u选项表示更新现有的映像,而-k all选项表示针对所有已安装的内核版本进行更新。
执行该命令后,系统将扫描系统中已安装的内核版本,并根据需要更新相应的初始化RAM磁盘映像。这有助于确保系统在启动时能够正确加载所需的内核模块和文件系统。
定制硬件信息GOP
查看硬件信息
联网更新pciids信息
update-pciids 是一个命令,通常用于联网更新或修复系统中的PCI ID(Peripheral Component Interconnect Identifier)列表。这个列表用于识别和分类连接到计算机的各种硬件设备。
update-pciids
列出系统中的PCI设备信息 显卡/声卡
lspci -D -nn | grep VGA
lspci -D -nn | grep Audio
我的畅网 I5-1235U 显卡和声卡的信息
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-UP3 GT2 [Iris Xe Graphics] [8086:46a8] (rev 0c)
0000:00:1f.3 Audio device [0403]: Intel Corporation Alder Lake PCH-P High Definition Audio Controller [8086:51c8] (rev 01)
UBU_v1.79.5 BIOS提取 IntelGopDriver.efi
畅网工控机 BIOS 下载地址: https://pan.changwang.com/
UBU_v1.79.5
管理员 执行 UBU.bat 选择 bios.bin 文件生成 IntelGopDriver.efi
合成 IntelGopDriver.rom
git clone https://github.com/tianocore/edk2-BaseTools-win32.git
cd edk2-BaseTools-win32
EfiRom.exe -f 0x8086 -i 0x46a8 -e IntelGopDriver.efi
上传 IntelGopDriver.rom
scp IntelGopDriver.rom root@pve/usr/share/kvm/
新建虚拟机配置信息
新建Windows虚拟机101配置文件
vim /etc/pve/nodes/pve/qemu-server/101.conf
101.conf 配置信息
args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2 -set device.hostpci0.x-igd-opregion=on
bios: ovmf
boot: order=scsi0
cores: 4
cpu: host
efidisk0: local:101/vm-101-disk-0.qcow2,efitype=4m,pre-enrolled-keys=1,size=528K
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=gen12_igd.rom
hostpci1: 0000:00:1f.3,romfile=IntelGopDriver.rom
hostpci2: 0000:00:17.0,rombar=0
machine: pc-i440fx-8.1
memory: 16384
meta: creation-qemu=8.1.5,ctime=1709996918
name: Windows-Server
net0: virtio=BC:24:11:03:FB:C5,bridge=vmbr0,firewall=1
numa: 0
ostype: win11
scsi0: local:101/vm-101-disk-3.raw,iothread=1,size=100G
scsihw: virtio-scsi-single
smbios1: uuid=4419ca87-ecc6-4a5d-bad1-d7e709556275
sockets: 1
tpmstate0: local:101/vm-101-disk-2.raw,size=4M,version=v2.0
vga: none
vmgenid: 959d96ff-7fdf-4b32-aeed-bf5850f8933b
OpenWRT 旁路由
概述
OpenWrt是一个针对嵌入式设备如路由器、网关等设计的开源Linux操作系统。
模块化设计:OpenWrt是一个高度模块化的平台,这意味着用户可以根据需要添加或移除功能模块,从而自定义自己的系统。
扩展性:OpenWrt支持广泛的硬件平台,并且提供了丰富的软件包供用户选择安装,这使得它非常适用于工控设备、电话、小型机器人、智能家居等应用场景。
更新的Linux内核:与其他一些嵌入式发行版相比,OpenWrt使用的Linux内核通常更加新,这有助于提高系统的安全性和稳定性。
易于修改:OpenWrt从零开始编写,是一个功能齐全且易于修改的路由器操作系统。用户可以根据自己的需求添加功能,而不会引入不必要的模块。
软件包管理:OpenWrt提供了一个完全可写的文件系统,用户可以通过包管理工具轻松地安装、更新和删除软件,这为用户提供了极大的灵活性。
开发简化:OpenWrt SDK(软件开发工具包)为开发者提供了一套工具,可以简化软件开发的过程,使得为OpenWrt开发应用变得更加容易。
安装方式多样:用户可以选择通过源码编译的方式安装OpenWrt,也可以直接安装官方提供的预编译镜像。这些镜像可以在多种平台上安装,如树莓派或虚拟机,方便用户进行体验和学习。
社区支持:作为一个开源项目,OpenWrt拥有一个活跃的社区,用户可以在社区中获得帮助和支https://fw.koolcenter.com/iStoreOS/持,分享经验和最佳实践。
总结来说,OpenWrt是一个功能强大、高度可定制的嵌入式Linux操作系统,它特别适合于需要高度自定义网络设备的用户和开发者。无论是作为家用路由器的固件,还是作为工业级设备的操作系统,OpenWrt都提供了稳定、安全和灵活的解决方案。
镜像下载
创建虚拟机
虚拟机配置文件
[!CAUTION]
vim /etc/pve/nodes/clouds/qemu-server/102.conf
boot: order=ide2;net0
cores: 1
cpu: host
ide2: none,media=cdrom
memory: 1024
meta: creation-qemu=8.1.5,ctime=1710649510
name: OpenWRT
net0: virtio=BC:24:11:42:47:76,bridge=vmbr0,firewall=1
numa: 0
ostype: l26
scsihw: virtio-scsi-single
smbios1: uuid=7b0af539-8197-4f69-b473-7562add33cd8
sockets: 1
vmgenid: 91ae258b-5711-4776-b95f-f2e50b61e0e4
OpenWrt img镜像导入虚拟机生成虚拟硬盘
将指定的OpenWRT系统映像文件导入到ID为102的虚拟机中,使用本地存储,并通过LVM进行管理。在PVE环境中,这样做可以使得虚拟机使用该映像文件作为其硬盘,从而安装或运行OpenWRT操作系统。
qm importdisk 102 openwrt6.1-gdq-20240316-x86-64-generic-squashfs-combined.img local
相关功能避免网络冲突
关闭
- [ ] SYN-flood 防御
- [ ] DHCH
- [ ] IPv6
[ ] FullCone-NAT
#### 开启
- [ ] IP 动态伪装