跳过正文

pve记录

··1863 字·4 分钟
目录

主板设置
#

  1. 开启SVM模式
  2. 开启IOMMU
  3. 关闭 CSM Support
  4. 关闭 Secure Boot (安全启动)

修改IP
#

  • /etc/network/interfaces
  • /etc/issue
  • /etc/hosts

直通显卡
#

  1. 修改grub启动参数:改文件 /etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT 配置:
    1
    
    `GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt initcall_blacklist=sysfb_init amd_iommu=on drm.debug=0 kvm_amd.nested=1 kvm.ignore_msrs=1 kvm.report_ignored_msrs=0 pci=assign-busses pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1"`
    
    • 其中必须添加的:
      • iommu=pt 设置iommu为直通模式pass through
      • initcall_blacklist=sysfb_init 屏蔽掉pve7.2的一个bug
      • pcie_acs_override=downstream,multifunction iommu分组补丁
      • 其他参数之前直通存在问题,修改的一些配置,具体含义未详细了解,去掉是否有影响本人未做尝试。
    • 执行update-grub更新grub
  2. 添加驱动黑名单:修改或新增配置文件/etc/modprobe.d/blacklist.conf, 添加内容:
    1
    2
    
    blacklist amdgpu
    blacklist snd_hda_intel
    
  3. 添加加载模块:修改或新增配置文件/etc/modules, 添加内容:
    1
    2
    3
    4
    
    vfio 
    vfio_iommu_type1 
    vfio_pci
    vfio_virqfd
    
  4. 获取核显id并绑定核显设备
    1
    2
    
    root@nas:/# lspci -D -nnk | grep VGA
    0000:07:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [1002:1638] (rev c9)
    
    • 记下命令显示的最前面的数字序号为IOMMU分组 0000:07:00.0;后面中括弧中1002:1638为设备id
    • 修改或新增配置文件/etc/modprobe.d/vfio.conf, 添加内容:
      1
      2
      
      options vfio-pci ids=1002:1638
      options vfio-pci disable_idle_d3=1
      
    • 其中1002:1638为核显设备id,如果已经存在其他直通设备,请使用 , 进行分隔填写多个,如:
      options vfio-pci ids=14c3:7961,1002:1638 执行命令: update-initramfs -u -k all
      重启机器:reboot

PVE使用AMD CPU 5600G 核显直通_pve 5600g核显直通-CSDN博客

直通硬盘
#

1
2
ls /dev/disk/by-id
qm set 103 -sata0 /dev/disk/by-id/ata-Micron_M600_MTFDDAK1T0MBF_1613122FA078

安装黑群晖
#

GitHub - RROrg/rr: Redpill Recovery (arpl-i18n)一键安装脚本:

curl -fsSL https://github.com/RROrg/rr/raw/refs/heads/main/scripts/pve.sh | bash
  1. 洗白

群辉释放80/443端口 关闭默认80 443端口 sudo -i # 切换到root用户 cd /usr/syno/share/nginx cp server.mustache server.mustache.bak # 备份原文件 sed -i “s/80/8880/g” server.mustache DSM.mustache WWWService.mustache sed -i “s/443/8443/g” server.mustache DSM.mustache WWWService.mustache`

PVE
#

一键脚本(自行验证)
#

  1. Mapleawaa/PVE-Tools-9
    • bash <(curl -sSL https://ghfast.top/github.com/Mapleawaa/PVE-Tools-9/blob/main/PVE-Tools.sh)
  2. xiangfeidexiaohuo/pve-diy
    1. bash -c “$(curl -fsSL https://raw.githubusercontent.com/xiangfeidexiaohuo/pve-diy/master/pve.sh)"
  3. pve_source(支持pve8,未更新,功能自测)
1
wget -q -O /root/pve_source.tar.gz 'https://bbs.x86pi.cn/file/topic/2024-01-06/file/24f723efc6ab4913b1f99c97a1d1a472b2.gz' && tar zxvf /root/pve_source.tar.gz && /root/./pve_source
  1. pvetools(支持pve8,未更新,功能自测)
    1
    2
    3
    4
    
     export LC_ALL=en_US.UTF-8
     apt update && apt -y install git && git clone https://github.com/ivanhao/pvetools.git
     cd pvetools
     ./pvetools.sh
    

风扇监控:安装完驱动后,在/etc/default/grub增加 acpi_enforce_resources=lax,最后update-grub

CT debian 初始化模板
#

1
2
3
4
5
6
7
# 安装curl
apt update && apt install curl
# 换源和更新:
bash <(curl -sSL https://linuxmirrors.cn/main.sh)
# 开启root的ssh:
bash <(curl -sSL https://raw.githubusercontent.com/zmingu/mytools/refs/heads/main/open-root-ssh.sh)
apt clean
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
//Alpine Linux 初始化
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories

apk add curl
apk add bash
bash <(curl -sSL https://linuxmirrors.cn/main.sh)

apk add openssh
bash <(curl -sSL https://raw.githubusercontent.com/zmingu/mytools/refs/heads/main/open-root-ssh.sh)
rc-update add sshd
rc-service sshd start

apk add tzdata
ls /usr/share/zoneinfo
echo "Asia/Shanghai" > /etc/timezone
apk del tzdata
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 更改虚拟机ID
# 获取 lv_name、vg_name
lvs --noheadings -o lv_name,vg_name | grep 210
# 返回值 vm-210-disk-0 pve
# pve/vm-210-disk-0 是 $vg_name/$lv_name
# 然后执行命令,如果有多个,每个执行一次替换
lvrename pve/vm-210-disk-0 vm-310-disk-0
# KVM进入 `/etc/pve/qemu-server` 目录, LXC 容器进入 `/etc/pve/lxc` 目录
# 重命名配置文件
mv 210.conf 310.conf
# 编辑该配置文件,修改VM磁盘ID,配置项 `sata0`、`sata1`等等
echo "ALTER USER postgres with encrypted password 'Zmingu1025.';" | sudo -u postgres psql

Docker
#

  1. frp

    1. 加密传输:新版已全局默认,单个为transport.useEncryption = true
    2. 压缩传输:如果有前置Nginx,则去Nginx设置压缩,transport.useCompression = true
  2. Traefik

    1. 加密Dashboard
      1. echo $(htpasswd -nb your_username your_password) | sed -e s/\\$/\\$\\$/g
      2. 修改traefikdocker-compose.yml,为其labels添加中间件配置:

labels:

… 其他标签保持不变 …
#

— Basic Auth 中间件定义 —
#

  • “traefik.http.middlewares.my-auth.basicauth.users=your_username:$$apr1$$…” # 粘贴上一步生成的字符串

— 将中间件应用到 Dashboard —
#

  • “traefik.http.routers.dashboard.middlewares=my-auth”
		3. 信任来自 FRP 管道的请求
			```yaml
# 定义入口点 (EntryPoints),即流量的入口
entryPoints:
  web:
    address: ":80"
    # --- 添加下面这部分 ---
    forwardedHeaders:
      # 信任所有来源的 X-Forwarded-* 头信息
      # 在我们的架构中,只有可信的FRP管道会连接到这个端口,所以这样设置是安全的
      insecure: true
  1. 暴露docker远程API Docker 启用 远程 API | 知识库

LXC端口转发
#

echo 'net.ipv4.ip_forward = 1' | tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | tee -a /etc/sysctl.d/99-tailscale.conf
sysctl -p /etc/sysctl.d/99-tailscale.conf

tailscale up --advertise-routes=192.168.2.0/24

apt install mesa-va-drivers radeontop vainfo

  1. LXC挂载NFS
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
	apt-get install nfs-common -y
	showmount -e NFS服务器的ip地址
	mkdir /mnt/nfs
	mount -t nfs4 192.168.2.3:/volume3/video /mnt/nfs
	> # 编辑/etc/fstab:
> 
> nano /etc/fstab
> 
> # 添加挂载内容,重启后用df -h或ls查看自动挂载是否生效:
> 
> //NFS服务器ip地址:/共享目录名 /mnt/smb nfs auto,nolock 0 0
  1. LXC挂载webdav
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
	apt-get install davfs2 -y
	apt-get install neon -y
	mkdir /mnt/webdav
	mount -t davfs http://服务器ip或者域名:端口号/dav /mnt/webdav
	# 根据提示输入用户名和密码即可。
	
	#开机自动挂载
# 编辑/etc/fstab:
nano /etc/fstab
# 添加配置:
# https://服务器ip或域名:端口号/dav /mnt/webdav davfs user,noauto,uid=用户名,file_mode=600,dir_mode=700 0 1

post.smzdm.com/p/al82p3eg/ 3. LXC frpc /usr/local/bin/ /etc/frp

LXC
#

alpine安装fprc
#

Alpine Linux如何安装FRP最新版 | 24K PLUS tee /etc/init.d/frpc «EOF #!/sbin/openrc-run name=“frp client” command="/usr/local/bin/frpc” command_args="-c /opt/frpc/frpc.toml" command_user=“nobody”

depend() { need net } EOF

sudo chmod +x /etc/init.d/frpc sudo rc-update add frpc default

sudo service frpc start sudo service frpc status

sudo service frpc stop sudo cp frps /usr/local/bin/frpc sudo service frpc start