1 删除Local-lvm存储空间并合并到local中
lvremove pve/data
lvextend -l +100%FREE -r pve/root
图形界面删除local-lvm
对local添加内容(全部勾选)
PVE修改为国内源并删除企业源(非强制)
PVE 7.X 换源(原文链接:国光的 PVE 生产环境配置优化记录)
# 注释企业源
echo "#deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list
# PVE 软件源更换
wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bullseye.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bullseye.gpg
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve bullseye pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-pacific bullseye main" > /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
# Debian 系统源更换
sed -i.bak "s#ftp.debian.org/debian#mirrors.aliyun.com/debian#g" /etc/apt/sources.list
sed -i "s#security.debian.org#mirrors.aliyun.com/debian-security#g" /etc/apt/sources.list
echo "deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription" >> /etc/apt/sources.list
# 更新测试一下
apt update
# 全部更新一下
apt -y upgrade
2-2、CT模板换源(原文出处:佛西博客 - 修改PVE容器CT镜像源、Proxmox 源使用帮助 — USTC Mirror Help 文档)
#复制并更改源文件
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
针对 /usr/share/perl5/PVE/APLInfo.pm 文件的修改,执行systemctl restart pvedaemon 以生效
3、删除订阅弹窗
# 修改 JS 源码
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
# 重启 PVE 服务
systemctl restart pveproxy.service
Proxmox VE 7 备份恢复虚拟机
备份虚拟机
登录pve选择要备份的虚拟机
点击子菜单中的备份按钮
点击立即备份按钮 设置备份到的存储(local的备份默认路径为:/var/lib/vz/dump)
设置模式:停止
设置压缩:无
等待备份完毕
恢复虚拟机
登录pve节点
切换至相应的上传存储(local的备份默认路径为:/var/lib/vz/dump)
点击恢复按钮
点击子菜单中的内容菜单
选择刚上传的vma备份文件
Proxmox VE(PVE)添加硬盘做存储
PVE安装后会默认将系统盘分出local和local-lvm,但有时还需要别的硬盘作为虚拟主机的数据盘,所以就需要添加硬盘进行扩充。
一、硬盘分区、格式化
首先需要先先看下需添加硬盘的设备名称,如下图的/dev/sde(当然也可以在命令里用fdisk -l去确认)
确定好名称后打开Shell,输入
这里的操作就跟Linux没什么区别了,分区格式化
先分区:输入n(分区) - 输入p(主分区) - 输入w(写入分区)
格式化(格式化为ext4格式):
创建/mnt/sde1目录:
将/dev/sde1分区挂载在/mnt/sde1上:
将/mnt/sde1挂载写入到系统启动项:
二、PVE挂载硬盘
选择“数据中心”(这块一定要注意,不是选择PVE),存储 - 添加 - 目录
ID可以随便填,目录就是刚才创建好的/mnt/sde1,内容全选,其它默认,点击添加;
这样,/dev/sde这块硬盘就添加完毕了,稍等几秒钟就可以在节点里看到硬盘
在虚拟环境中创建虚拟机,其实就是设置虚拟机的各项硬件规格参数。这个过程其实挺通俗易懂的,不过在PVE里创建虚拟机,有些细节选项并不是浅显易懂,还是有必要注意一下的。 在PVE右上角点“创建虚拟机”,就可以开始创建虚拟机过程。
创建完成后,在虚拟机硬件栏目中可以修改虚拟机的硬件配置,添加PCI设备、USB设备也需要在这里添加。
Proxmox Virtual Environment(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)安装软件 确定使用的驱动是不是8169 lspci -k
(2)更新内核、安装依赖 apt update
apt upgrade
apt install -y dkms pve-headers #pve 8.0.4+建议将pve-headers替换为proxmox-default-headers
(2)下载安装包
https://github.com/devome/realtek-r8125-dkms (3)安装deb驱动 sudo dpkg -i realtek-r8125-dkms_9.009.00-1_amd64.deb
如果有多个内核,为旧内核也安装驱动,如果不会再从旧内核启动,忽略这步也可以 headers=$(dpkg -l | grep -P "^ii.+kernel-(\d\.){2}\d+\S+" | awk '{print $2}' | sed 's|kernel|headers|' | perl -pe 's|\n| |')
eval apt install -y $headers
dpkg -l | grep -P "^ii.+kernel-(\d\.){2}\d+\S+" | awk '{print $2}' | perl -pe 's|\D+(\d+\.\d+\.\d+\S+)$|\1|' # 列出全部内核版本kernel_version
dkms install realtek-r8125/<driver_version> -k <kernel_version> # 指定驱动版本(在deb文件名中有体现)和内核版本(从上一句命令的输出中依次选择),zsh按tab可自动补全,比如:dkms install realtek-r8125/9.011.01 -k 6.2.16-5-pve
eval apt-mark auto $headers
apt autopurge
(4)屏蔽r8169驱动 echo "blacklist r8169" >> /etc/modprobe.d/dkms.conf
(5)更新并重启 update-grub
update-initramfs -u -k all
reboot
(5)验证r8125驱动 重启物理机 lsmod | grep r8125
lspci -k
如果有输出,驱动加载就成功了 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
重启生效 降级内核(显卡直通需要)(新版本pve不需要-废弃)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行。(废弃,不再需要) cpu: host,hidden=1,flags=+pcid
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=intel,kvm=off'
args: 一行是用来隐藏虚拟机环境,因为原神等游戏禁止在虚拟机启动[12]。如果是 N 卡,此处 hv_vendor_id=intel 可改成 hv_vendor_id=NV43FIX,如果是 AMD的cpu,hv_vendor_id=amd,作为解决错误代码 43 问题的其中一个步骤 ;如果不行,pci设备高级选项勾选pcie选项。(废弃,不再需要) 解决错误代码 43:修改/etc/default/grub ,GRUB_CMDLINE_LINUX_DEFAULT参数增加initcall_blacklist=sysfb_init,用于屏蔽pve内核自动启动的默认显示输出设备simplefb。 (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 无法使用,远程进入系统装独显驱动,外接的显示器会随之点亮。 配置核显 vGPU1.添加核显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容器获取局域网独立IP1.创建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-get install cpufrequtils
查看支持模式,available cpufreq governors是支持的模式,The governor "performance" may decide which speed to use是目前使用的模式 cpufreq-info
如果模式很少,尝试修改启动项,增加参数intel_pstate=disable vi /etc/default/grub
修改模式,performance是最好性能,schedutil和conservative是性能和能耗相对兼顾,schedutil性能响应更快速,powersave是最节能 vi /etc/init.d/cpufrequtils
找到如下 ENABLE="true"
GOVERNOR="performance"
MAX_SPEED="0"
MIN_SPEED="0"
将GOVERNOR改想要的模式,保存后重启服务,然后重新cpufreq-info确认一下,如果没修改成功,看一下是否有/etc/default/cpufrequtils文件,修改这个文件即可 systemctl daemon-reload
/etc/init.d/cpufrequtils restart
去除订阅弹窗,显示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查看 |