PVE常用说明
安装注意事项
选择安装硬盘时,点击option更改为xfs格式和swap分区(根据内存实际情况来,默认值等于内存)
修改软件源
修改基础系统(Debian)的源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i '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
修改Proxmox 的源
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak
CODENAME=`cat /etc/os-release |grep PRETTY_NAME |cut -f 2 -d "(" |cut -f 1 -d ")"`
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian $CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
更新索引生效
apt update && apt dist-upgrade -y
修改swap分区使用参数
1.编辑文件
vi /etc/sysctl.conf
2.添加swap分区参数,设置内存剩余多少时使用swap分区,数字越小代表多使用物理内存
vm.swappiness = 1
3.配置生效
sysctl -p
安装网卡驱动
因为pve会默认使用r8169驱动使用很多网卡,导致网络性能不能满载,需要安装对应型号的网卡。
r8101/r8168安装
(1)安装软件
apt-get install sudo
apt-get install git
apt install -y pve-headers-$(uname -r)
(2)clone驱动文件到本地
git clone https://github.com/ghostrider-reborn/realtek-r8101-linux-driver
r8168驱动:https://github.com/mtorromeo/r8168
(3)打开驱动文件夹
cd realtek-r8101-linux-driver
(4)移除r8169驱动
此步骤建议在物理机操作,操作完毕会导致物理机网络异常,无法远程管理
sudo modprobe -r r8169
(5)屏蔽r8169驱动
sudo sh -c 'echo blacklist r8169 >> /etc/modprobe.d/blacklist_r8169.conf'
(6)安装r8101驱动
chmod +x autorun.sh
sudo ./autorun.sh
(7)验证r8101驱动
lsmod | grep r8101
如果有输出,驱动加载就成功了;没有输出,手动加载模块尝试
sudo modprobe r8101
如果没有网络,重启物理机
r8125安装
(1)安装软件
apt install -y dkms
apt install -y pve-headers-$(uname -r)
apt install --fix-broken
(2)下载deb文件到本地
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=7446026
https://github.com/awesometic/realtek-r8152-dkms
上传到root文件夹
(3)安装deb驱动
sudo dpkg -i realtek-r8125-dkms_9.009.00-1_amd64.deb
(4)屏蔽r8169驱动
sudo sh -c 'echo blacklist r8169 >> /etc/modprobe.d/blacklist_r8169.conf'
(5)验证r8125驱动
重启物理机
lsmod | grep r8125
如果有输出,驱动加载就成功了
local和local-lvm合并
(1)编辑local,勾选所有内容,并确认
(2)删除lvm容量
lvremove /dev/pve/data
(3)扩充至local
lvextend -rl +100%FREE /dev/pve/root
(4)pve后台删除local-lvm目录
新增pve存储硬盘
(1)pve后台-磁盘,擦除磁盘原本内容,确定设备名,类似/dev/sda
(2)硬盘分区
进入fdisk
fdisk /dev/sda
n创建分区,后面选项直接回车就行
w写入分区
(3)分区格式化
mkfs -t ext4 /dev/sda1
ext4:分区格式类型,可以选择性能更好的xfs
(4)新增挂载路径
mkdir -p /mnt/sda1
该路径就是以后的硬盘路径
(5)挂载硬盘并且添加启动项
将/dev/sda1分区挂载在/mnt/sda1上
mount -t ext4 /dev/sda1 /mnt/sda1
将/mnt/sda1挂载写入到系统启动项
echo /dev/sda1 /mnt/sda1 ext4 defaults 12>> /etc/fstab
ext4:分区格式类型,如果格式化选择了xfs,就填xfs
(6)新增目录
重启pve,新增目录,填写ID和目录,内容全选
ID:存储目录名称,pve命令会用到
目录:上面的挂载路径/mnt/sda1
以下3个操作可以做完一起重启
修改CT模板源
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
重启生效
systemctl restart pvedaemon.service
降级内核(显卡直通需要)
apt install pve-headers-5.11.22-7-pve
apt install pve-kernel-5.11.22-7-pve
proxmox-boot-tool kernel pin 5.11.22-7-pve
proxmox-boot-tool refresh
重启生效
降级QEMU为 6.1.1(NVME需要)
apt install pve-qemu-kvm=6.1.1-2
重启生效
直通
(1)修改/etc/default/grub 文件
核显/独显/网卡直通(cpu:intel)
GVT-g功能额外参数i915.enable_gvt=1
将 GRUB_CMDLINE_LINUX_DEFAULT="quiet" 修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1"
核显/独显/网卡直通(cpu:amd)
将 GRUB_CMDLINE_LINUX_DEFAULT="quiet" 修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
(2)/etc/modules 文件
在文末空白行添加:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
GVT-g功能额外参数
kvmgt
(3)防止虚拟机崩溃影响宿主机
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
echo "options kvm ignore_msrs=1 report_ignored_msrs=0" > /etc/modprobe.d/kvm.conf
(4)屏蔽显卡驱动(显卡直通需要)
echo "blacklist radeon" >> /etc/modprobe.d/pve-blacklist.conf
echo "blacklist nouveau" >> /etc/modprobe.d/pve-blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/pve-blacklist.conf
(5)为显卡含子设备的 id 开启 VFIO(显卡直通需要)
在 shell 查找当前独显的 id
lspci -nn | grep NVIDIA
lspci -nn | grep AMD
注意改成自己的。另外显卡内置声卡的 id也要一并写入,这是为了通过 HDMI 或 DP 输出声音。部分显卡可能还有 USB 控制器,也一并写入,能为虚拟机直通专用高速 USB 接口。
echo "options vfio-pci ids=1002:6fdf,1002:aaf0" > /etc/modprobe.d/vfio.conf
(6) 更新 grub 和 initramfs 并重启:
update-grub
update-initramfs -u -k all
注意:重启后,如果配置了显卡直通的参数,因为独显被 VFIO 抓走了,显示器画面会停住,这是正常现象。
安装虚拟机
WINDOWS(直通显卡)
(1) 首先,我们先上传系统安装盘和 virtio 驱动盘到 PVE 的存储。
推荐直接使用 WINSCP 连接并切换到 /var/lib/pve/local-btrfs/template/iso/ 文件夹,然后将镜像文件拖进去,传输速率可达 40~50M/s ,远快于 PVE 网页上传的 20M/s 。
(2) 接下来,先不管独显或核显,使用 PVE 默认配置创建虚拟机。
虚拟机配置:
系统:i440fx+seabios或者Q35+OVMF(直通推荐)
OVMF需要添加EFI盘,win11添加TPM
磁盘:总线设备:
scsi,性能较好,安装windows时需要加载驱动,否则读取不到磁盘
sata,windows无需额外驱动
缓存选择(推荐以下三种):
默认或无缓存,性能取决于虚拟磁盘所在磁盘
Write through,若pve安装盘为固态,读取时使用安装盘缓存加速
Write through(不安全),若pve安装盘为固态,读取和写入时使用安装盘缓存加速
CPU:类别选择host
内存:高级选项可选Ballooning设置,设置最小内存,默认锁定最小内存给虚拟机使用(直通推荐)
网络:Virtio,如果桥接的物理网卡性能较好,推荐使用,安装时需要加载额外驱动
Vmxnet3,如果桥接的物理网卡性能较差或者无桥接的物理网卡,推荐使用
假设虚拟机 vmid 为 100 ,通过 WINSCP 编辑 /etc/pve/qemu-server/100.conf 文件,增加一行。
args: -cpu' host,-hypervisor,+kvm_pv_unhalt,+kvm_pv_eoi,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,kvm=off,hv_vendor_id=intel'
args: 一行是用来隐藏虚拟机环境,因为原神等游戏禁止在虚拟机启动[12]。如果是 N 卡,此处 hv_vendor_id=intel 可改成 hv_vendor_id=NV43FIX,如果是 AMD的cpu,hv_vendor_id=amd,作为解决错误代码 43 问题的其中一个步骤 ;
(3) 启动虚拟机,安装系统。
选择scsi磁盘和Virtio网络时,使用官方iso安装,在选择安装盘时,选择自定义,看不到虚拟磁盘,选择加载驱动。
建议先手动选择virtio 驱动盘中的包含NET的文件夹安装网络驱动,再选择包含scsi的文件夹,安装磁盘驱动。
选择完毕后则可以看到磁盘正常安装。
提示:如果想将之前的系统移植到 PVE ,推荐先将系统盘备份为 wim 或者 pmf ,然后在 PVE 的虚拟机启动 WinPE ,再将系统盘还原,并修复引导。
(4) 重启进入系统后,先挂载 virtio 安装驱动,然后即可关机等待配置显卡。
打开设备管理器,如果发现有其他设备,选择virtio 驱动盘安装完毕驱动。
打开远程桌面或安装远程软件
提示:如果是移植过来的系统,建议先卸载原来安装的驱动,以避免意想不到的问题。显卡驱动卸载推荐使用 Display Driver Uninstaller,这是目前最彻底的卸载工具。
配置独显直通
1.添加独显 PCI-E 设备,注意勾上所有功能和主GPU,虚拟机显示改为无—— 这么做是为了将显卡内置的声卡也一并分配到虚拟机。可以将鼠标键盘等 USB 设备分配给该虚拟机,显示器点亮后,可以提供键鼠操作虚拟机。
配置完成并开启虚拟机时,原本停住的显示器画面会突然黑屏,这也是正常现象。
2.因为 VNC 无法使用,远程进入系统装独显驱动,外接的显示器会随之点亮。
配置核显 vGPU
1.添加核显PCI-E设备,不勾选所有功能和主GPU,虚拟机显示改为无,启动虚拟机。
2.远程进入系统装核显驱动。
3.打开命令提示符,输入 gpedit.msc 开启组策略,在左侧依次进入【计算机配置】——【管理模板】——【Windows组件】——【远程桌面服务】——【远程桌面会话主机】——【连接】——【选择 RDP 传输协议】,改为已启用
4.返回上级菜单,进入【远程会话环境】,将包含RemoteFX、H.264、图形的选项全部改为已启用。
5.继续打开【RemoteFX for Windows Server 2008 R2】,全部改为已启用,其中【使用 RemoteFX 时优化视觉体验】,可以选择最高。
6.全部配置完成后,在命令提示符输入 gpupdate /force 以刷新组策略
7.其他设备通过远程桌面连接这台虚拟机时,将体验设置为 LAN。
LINUX
(1) 首先,我们先上传系统安装盘到 PVE 的存储。
推荐直接使用 WINSCP 连接并切换到 /var/lib/pve/local-btrfs/template/iso/ 文件夹,然后将镜像文件拖进去,传输速率可达 40~50M/s ,远快于 PVE 网页上传的 20M/s 。
(2) 接下来,使用 PVE 默认配置创建虚拟机。
虚拟机配置:
系统:Q35+seabios
磁盘:总线设备:
scsi,性能较好,不确定是否需要额外驱动,自行尝试
sata,无需额外驱动
缓存选择(推荐以下三种):
默认或无缓存,性能取决于虚拟磁盘所在磁盘
Write through,若pve安装盘为固态,读取时使用安装盘缓存加速
Write through(不安全),若pve安装盘为固态,读取和写入时使用安装盘缓存加速
CPU:类别选择host
内存:高级选项可选Ballooning设置,设置最小内存,默认锁定最小内存给虚拟机使用(直通推荐)
网络:Virtio,如果桥接的物理网卡性能较好,推荐使用,不确定是否需要额外驱动,自行尝试
Vmxnet3,如果桥接的物理网卡性能较差或者无桥接的物理网卡,推荐使用
(3) 启动虚拟机,安装系统。
群晖(dsm6或7)
(1) 下载引导文件。
https://github.com/fbelavenuto/arpl/releases
下载最新的img引导文件
(2) 接下来,使用 PVE 默认配置创建虚拟机。
虚拟机配置:
系统:Q35+seabios
磁盘:总线设备:
sata,群晖无需额外驱动
缓存选择(推荐以下三种):
默认或无缓存,性能取决于虚拟磁盘所在磁盘
Write through,若pve安装盘为固态,读取时使用安装盘缓存加速
Write through(不安全),若pve安装盘为固态,读取和写入时使用安装盘缓存加速
CPU:类别选择host
内存:高级选项可选Ballooning设置,设置最小内存,默认锁定最小内存给虚拟机使用(直通推荐)
网络:Virtio,如果桥接的物理网卡性能较好,推荐使用,引导盘需要加载额外驱动
Vmxnet3,如果桥接的物理网卡性能较差或者无桥接的物理网卡,推荐使用
(3)上传img文件到PVE 的存储。
推荐直接使用 WINSCP 连接,假设上传到root文件夹。
转换img文件为qcow2并挂载
qm importdisk 101 /root/arpl.img local -format qcow2
/root/arpl.img:img文件在pve存储的路径
101:虚拟机ID
local:转换文件保存的pve存储位置
执行完毕后,虚拟机硬件出现未分配的硬盘,编辑挂载为sata,并且设置虚拟机选项中的引导项为该磁盘。
(4)直通硬盘。
安装软件
apt-get update
apt-get install lshw
查看硬盘id
ls -l /dev/disk/by-id/
挂载硬盘到虚拟机
qm set 101 --sata4 /dev/disk/by-id/ata-WDC_WD40PURX-78AKYY0_WD-WX32DA1LTP3S
101:虚拟机ID
sata4:挂载磁盘为sata,序号为1
ata-WDC_WD40PURX-78AKYY0_WD-WX32DA1LTP3S:硬盘id
(5) 启动虚拟机,编译引导。
1.如果你的路由器已经开启DHCP的话,此时系统会自动去获取IP地址,请耐心等待。
2.当编译系统最下面一行显示有“root@”开头的时候,就表示已经启动好了,需要找出编译系统的IP地址。
3.浏览器打开对应的IP地址(端口号不能漏掉),进入编译页面
4.在第一行“Choose a model”回车,选择对应的机型回车。
5.在“Choose a Build Number”处回车,选择对应编译的dsm版本回车。
6.在“Choose a serial number”处回车,指定序列号选择“Enter a serial number”回车后输入你想要使用的序列号;不指定选择“Generate a random serial number”,最后回车。
7.(加载10代intel核显)在“Addons”处回车,在“Add an addon”处回车,在“i915 Intel iGPU Drivers(10th Gen)”处回车,不输入内容回车,在“Exit”处回车返回上级菜单。
8.在“Modules”处回车,在“Choose modules to include”处回车,找到r8169网卡,去除选择后点击ok,在“Exit”处回车返回上级菜单。
9.在“Build the loader”处回车,开始编译。编译过程中,界面上会有进度条在跑进度,请耐心等待,等待的时间视你的网络环境而定(如果有科学出国的环境,请把此IP地址放到强制代理名单,可以加快编译速度)。
10. 引导编译完成后,系统会自动跳回原界面,并且会多出一行菜单“Boot the loder”,在这行菜单上回车。
11.在pve后台将虚拟机停止,重新启动,会自动引导群晖,显示的IP地址为群晖的IP,浏览器进入IP正常安装群晖。
爱快
(1) 首先,我们先上传系统安装盘到 PVE 的存储。
推荐直接使用 WINSCP 连接并切换到 /var/lib/pve/local-btrfs/template/iso/ 文件夹,然后将镜像文件拖进去,传输速率可达 40~50M/s ,远快于 PVE 网页上传的 20M/s 。
(2) 接下来,使用 PVE 默认配置创建虚拟机。
虚拟机配置:
系统:Q35+seabios
磁盘:总线设备:
scsi,性能较好
缓存选择(推荐以下三种):
默认或无缓存,性能取决于虚拟磁盘所在磁盘
Write through,若pve安装盘为固态,读取时使用安装盘缓存加速
Write through(不安全),若pve安装盘为固态,读取和写入时使用安装盘缓存加速
CPU:类别选择host
内存:高级选项可选Ballooning设置,设置最小内存,默认锁定最小内存给虚拟机使用(直通推荐)
网络:Virtio,如果桥接的物理网卡性能较好,推荐使用,需要确定爱快支持对应的物理网卡型号
Vmxnet3,如果桥接的物理网卡性能较差或者无桥接的物理网卡,推荐使用
(3) 网卡直通。
新增对应的PCI设备,不要选择所有功能。
(4) 启动虚拟机,安装系统。
1.根据拨号需要配置好对应的虚拟网卡或者直通网卡
2.pve网络新增一个linux bridge,不绑定物理网卡,新增一个vmxnet3网卡使用该桥接(pve下需要访问爱快网络的可以使用这个桥接)
2.系统安装完成后,VNC配置好管理IP,绑定一个LAN口网卡
3.浏览器进入后台,绑定WAN口和LAN口网卡、WAN口拨号设置、DHCP设置
4.需要走旁路由出国的设备,可以通过DHCP静态分配IP,网关指向旁路由的地址即可。
Openwrt旁路由
(1) 下载引导文件。
自行下载一个op的img文件
(2) 接下来,使用 PVE 默认配置创建虚拟机。
虚拟机配置:
系统:Q35+seabios
磁盘:总线设备:
sata
缓存选择(推荐以下三种):
默认或无缓存,性能取决于虚拟磁盘所在磁盘
Write through,若pve安装盘为固态,读取时使用安装盘缓存加速
Write through(不安全),若pve安装盘为固态,读取和写入时使用安装盘缓存加速
CPU:类别选择host
内存:高级选项可选Ballooning设置,设置最小内存,默认锁定最小内存给虚拟机使用(直通推荐)
网络:Vmxnet3,桥接选择和爱快一样,未绑定物理卡的那个
(3)上传img文件到PVE 的存储。
推荐直接使用 WINSCP 连接,假设上传到root文件夹。
转换img文件为qcow2并挂载
qm importdisk 101 /root/openwrt.img local -format qcow2
/root/arpl.img:img文件在pve存储的路径
101:虚拟机ID
local:转换文件保存的pve存储位置
执行完毕后,虚拟机硬件出现未分配的硬盘,编辑挂载为sata,并且设置虚拟机选项中的引导项为该磁盘。。
(4) 启动虚拟机,安装系统。
1.系统安装完成后,VNC配置好管理IP
vi etc/config/network
修改lan相关的参数,地址和爱快同网段,修改完保存重启。
2.浏览器进入后台
1.网络lan口设置网关为爱快地址,DNS为国内DNS,DHCP服务关闭。
2.配置出国相关插件,测试网络情况即可。
docker相关
LXC安装docker
优点:性能高
缺点:虚拟磁盘无法使用缓存功能,迁移困难
1.下载LXC模板(debain和unbuntu都可,推荐debain)
2.创建CT,去除无特权容器的勾选,创建完成后不要启动虚拟机
3./etc/pve/lxc文件夹下找到对应配置文件,编辑添加
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
4.启动CT
5.修改debain源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i '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
6.更新索引、安装sudo命令
apt-get update
apt-get install sudo
7.安装基础工具
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
8.安装docker的gpg key:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
9.安装docker源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
10. 安装docker
apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
11.安装lxcfs添加内存映射,方便限制容器内存
apt install lxcfs -y
debain安装docker
优点:虚拟磁盘可以使用缓存功能,迁移简单
缺点:性能有略微损耗
1.创建debain虚拟机,并启动
2.在线安装修改debain源
cp /etc/apt/sources.list /etc/apt/sources.list.bak
sed -i '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
3.离线安装修改源
编辑/etc/apt/sources.list文件,全部删除后添加以下参数,保存
deb Index of /debian/ bullseye main contrib non-free
deb-src Index of /debian/ bullseye main contrib non-free
deb Index of /debian/ bullseye-updates main contrib non-free
deb-src Index of /debian/ bullseye-updates main contrib non-free
deb Index of /debian/ bullseye-backports main contrib non-free
deb-src Index of /debian/ bullseye-backports main contrib non-free
deb Index of /debian-security/ bullseye-security main contrib non-free
deb-src Index of /debian-security/ bullseye-security main contrib non-free
或者163源
deb https://mirrors.163.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.163.com/debian/ bullseye main non-free contrib
deb https://mirrors.163.com/debian-security/ bullseye-security main
deb-src https://mirrors.163.com/debian-security/ bullseye-security main
deb https://mirrors.163.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.163.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.163.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.163.com/debian/ bullseye-backports main non-free contrib
4.更新索引、安装sudo命令
apt-get update
apt-get install sudo
5.安装基础工具
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
6.安装docker的gpg key:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
或者163源
curl -fsSL https://mirrors.163.com/docker-ce/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
7.安装docker源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
或者163源
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.163.com/docker-ce/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
8. 安装docker
apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
9.安装lxcfs添加内存映射,方便限制容器内存
apt install lxcfs -y
docker容器获取局域网独立IP
1.创建docker网络(subnet为局域网网段,gateway为网关地址,parent为网卡名(使用ip addr命令查看),最后一行为名称,以上按照实际修改)
docker network create -d macvlan
--subnet=192.168.1.0/24
--gateway=192.168.1.1
-o macvlan_mode=bridge
-o parent=eth0
macvlan
2.docker创建参数使用上一步创建的网络,指定ip,同时可以指定mac地址
--net=macvlan
--ip=192.168.1.7
--mac-address=03:44:e0:98:08:66
docker修改源
1.创建或修改 /etc/docker/daemon.json 文件,修改为如下形式(163源)
{
"registry-mirrors": [
"http://hub-mirror.c.163.com"
]
}
2.生效
sudo systemctl daemon-reload
sudo systemctl restart docker
一键安装portainer中文版
docker run -d --restart=always --name="portainer" -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock hub-mirror.c.163.com/6053537/portainer-ce
去除订阅弹窗,显示CPU频率和温度
安装软件
apt update
apt-get install lm-sensors
确认安装结果
sensors
有温度信息输出即可
备份:
cp /usr/share/perl5/PVE/API2/Nodes.pm /usr/share/perl5/PVE/API2/Nodes.pm.bak
cp /usr/share/pve-manager/js/pvemanagerlib.js /usr/share/pve-manager/js/pvemanagerlib.js.bak
cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak
查看获取的硬件数据:
Sensors
cat /proc/cpuinfo | grep -i "cpu mhz"
新建脚本
vi pve.sh
(脚本内容标m[i]部分根据查看的硬件数据修改;温度部分m[i],i代表第几个温度值;频率部分,有多少个cpu频率值就有多少个m[i])
脚本内容:
#!/usr/bin/env bash
np="/usr/share/perl5/PVE/API2/Nodes.pm"
pvejs="/usr/share/pve-manager/js/pvemanagerlib.js"
plib="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"
therm='$res->{thermalstate} = `sensors`;';
cpure='$res->{cpure} = `cat /proc/cpuinfo | grep -i "cpu mhz"`;';
pvever=$(pveversion | awk -F"/" '{print $2}')
echo pve版本$pvever
echo 修改node.pm:
sed -i "/PVE::pvecfg::version_text()/a $cpure\n$therm" $np
sed -n "/PVE::pvecfg::version_text()/,+10p" $np
tmpf=tmpfile.temp
touch $tmpf
cat > $tmpf << 'EOF'
{
itemId: 'thermal',
colspan: 2,
printBar: false,
title: gettext('温度'),
textField: 'thermalstate',
renderer:function(value){
const m = value.match(/(?<=:[^\+]+\+)\d+/g)
return `CPU: ${m[0]}(${m[1]} | ${m[2]} | ${m[3]} | ${m[4]})`;
}
},
{
itemId: 'cpumhz',
colspan: 2,
printBar: false,
title: gettext('CPU频率'),
textField: 'cpure',
renderer: function(value){
const m = value.match(/(?<=:\s+)(\d+)/g);
return `CPUMHZ: ${m[0]} | ${m[1]} | ${m[2]} | ${m[3]} | ${m[4]} | ${m[5]} | ${m[6]} | ${m[7]}`;
}
},
EOF
#找到关键字pveversion的行号
echo 修改pvemanagerlib.js
ln=$(sed -n '/pveversion/,+10{/},/{=;q}}' $pvejs)
echo "匹配的行号pveversion:" $ln
echo 修改结果:
sed -i "${ln}r $tmpf" $pvejs
sed -n '/pveversion/,
+30p' $pvejs
rm $tmpf
echo 修改页面高度
sed -i -r '/widget\.pveNodeStatus/,
+5{/height/{s#[0-9]+#360#}}' $pvejs
sed -n '/widget\.pveNodeStatus/,
+5{/height/{p}}' $pvejs
sed -i -r '/\[logView\]/,
+5{/heigh/{s#[0-9]+#460#;}}' $pvejs
sed -n '/\[logView\]/,
+5{/heigh/{p}}' $pvejs
echo 修改去除订阅弹窗
sed -r -i '/\/nodes\/localhost\/subscription/,
+10{/^\s+if \(res === null /{N;s#.+#\t\t if(false){#}}' $plib
sed -n '/\/nodes\/localhost\/subscription/,+10p' $plib
systemctl restart pveproxy
echo "请刷新浏览器缓存shift+f5"
赋予脚本执行权限
chmod +x pve.sh
执行脚本
./pve.sh
刷新浏览器缓存shift+f5查看