下载 PVE 镜像

制作启动 U盘

安装 PVE

点击查看教程

我是 N100,按 F7 选择 U盘 启动

local-lvm 合并到 local

点击查看教程

FinalShell SSH连接 SSH

已安装虚拟机要先备份,并且移除虚拟机

1、先移除local-lvm‮应对‬的逻辑卷pve/data移除指令

1
lvremove pve/data

执‮上行‬面这个指‮会令‬再次跟你确认。

2、对local‮应对‬的逻辑卷pve/root进行在线扩容

1
lvextend -l +100%FREE -r pve/root

开启 iommu 直通

点击查看教程

pve换源脚本:

1
wget http://share.geekxw.top/yuan.sh -O yuan.sh && chmod +x yuan.sh && ./yuan.sh

更新源:

1
apt update

开启 iommu 直通

添加iommu=pt:

1
nano /etc/default/grub
1
GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt i915.enable_guc=3 i915.max_vfs=7"
  • quiet :减少系统启动时的输出信息,使启动界面更简洁。
  • iommu=pt :启用 IOMMU 直通模式,允许将 PCI 设备透传给虚拟机。
  • i915.enable_guc=3 :启用 Intel i915 驱动的 GuC 固件,提高图形性能。
  • i915.max_vfs=7 :设置显卡的虚拟功能数量为 7,用于虚拟化环境中共享 GPU。

应用修改:

1
2
update-grub
update-initramfs -u -k all

开启Intel核显sriov

点击查看教程
1
2
3
4
5
6
7
8
9
apt install -y build-essential git dkms sysfsutils proxmox-headers-6.8.12-4-pve intel-gpu-tools

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

wget https://github.com/strongtz/i915-sriov-dkms/releases/download/2024.12.30/i915-sriov-dkms_2024.12.30_amd64.deb

dpkg -i i915-sriov-dkms_2024.12.30_amd64.deb

reboot
1
lspci

FnOS 配置

点击查看教程

sata 控制器直通

查看 sata 控制器直通

1
lspci

飞牛系统安装sriov核显驱动

1
2
3
4
5
6
7
## 飞牛终端命令

sudo -i # 切换root权限

wget https://blog.kkk.rs/upload/intel-i915.deb # 下载驱动

dpkg -i intel-i915.deb # 安装驱动
  • 更换为 i915.ko 核显驱动
1
2
3
4
5
6
7
8
9
10
11
12
sudo -i  # 切换root权限
dpkg -r intel-i915 # 卸载intel-i915 核显驱动
reboot

# 安装 i915.ko 核显驱动(没有安装intel-i915.deb驱动,可以直接这一步)
sudo -i # 切换root权限
cd /tmp
wget https://cdn.jsdelivr.net/gh/meimolihan/cdn@v1.0.0/hexo/pve/i915.ko
mkdir -p /lib/modules/6.6.38-trim/updates/dkms/
cp i915.ko /lib/modules/6.6.38-trim/updates/dkms/
chmod a+r /lib/modules/6.6.38-trim/updates/dkms/i915.ko
depmod

PVE 配置 SSH 服务

点击查看教程

1、 安装SSH服务器软件包

更新软件索引+安装SSH+SSH开机自启

1
sudo apt-get update && sudo apt-get install openssh-server && sudo systemctl start ssh && sudo systemctl enable ssh

2、取消注释并修改内容

1
2
3
4
5
6
7
8
sudo sed -i.bak \
-e 's/#Port 22/Port 22/' \
-e 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' \
-e 's/#GSSAPIAuthentication no/GSSAPIAuthentication no/' \
-e 's/#UseDNS no/UseDNS no/' \
-e 's/#ClientAliveInterval 0/ClientAliveInterval 10/' \
-e 's/#ClientAliveCountMax 3/ClientAliveCountMax 999/' \
/etc/ssh/sshd_config

3、查看修改

1
grep -E 'Port 22|PermitRootLogin|GSSAPIAuthentication|UseDNS|ClientAliveInterval|ClientAliveCountMax' /etc/ssh/sshd_config

4 、重启 ssh 服务

1
systemctl restart ssh && hostname -i
具体配置配置说明
Port 22SSH 服务监听端口
PermitRootLogin yes允许 root 用户通过 SSH 登录
GSSAPIAuthentication no禁用 GSSAPI 认证以提高安全性
UseDNS no禁用 DNS 反向解析,加快 SSH 连接速度
ClientAliveInterval 10每 10 秒发送一次保活消息给客户端
ClientAliveCountMax 999允许客户端连续 999 次无响应才断开连接

PVE挂载有数据的硬盘

点击查看教程

使用Proxmox VE web面板只能添加新盘,无法添加已经格式化的硬盘,除非将它初始化一次。若是磁盘里面有数据,则很糟糕。
Promxox VE官方内核,默认支持常见的文件系统,如brtfs-ext-xfs-ntfs-EXFAT-FAT。如果你是上面提到的文件系统,那么就可以通过手动挂载的方式,实现为pve添加存储。

挂载 ntfs 硬盘(windows硬盘)

1、查看所有磁盘

1
lsblk # 查看所有磁盘

  • 我们这里以NTFS 磁盘为例。我这里有1个磁盘,有2个分区,插到了pve上。
1
lsblk -f /dev/sda

2、安装ntfs-3g软件包(如果挂载的是 ext4 格式硬盘, 忽略这一步

  • 我们要使用ntfs,需要安装一个软件包ntfs-3g
1
apt update && apt install ntfs-3g

3、创建一个挂载点+修复ntfs(如果挂载的是 ext4 格式硬盘, 忽略这一步

1
mkdir /mnt/ntfs && ntfsfix /dev/sda1

4、磁盘挂载(将/dev/sda1硬盘,挂载到/mnt/mydisk目录下)

1
mount /dev/sda1 /mnt/mydisk

5 、取消挂载命令

1
umount /dev/sda1

6 、查看是否挂载成功

1
cd /mnt/mydisk && ls

现在可以看到其中的文件了

  • 随后进pve 网页添加目录存储,ID名字随便,目录填写硬盘的挂载路径,内容全部勾选

  • 接下来就可以在网页上使用了。

永久挂载,需要配置开机挂载

  1. 查看硬盘的PARTUUID,使用blkid查看,比如我的ntfs分区是/dev/sdb2
1
blkid

  1. 将这个PARTUUID写进fstab,注意将我们常规的defaults选项换成nofail,x-systemd.device-timeout=15s 这样防止找不到硬盘,而卡引导
1
vim /etc/fstab
  • ntfs内容
1
2
3
4
5
## 3T--ext4--/mnt/mydisk
UUID=50a66a71-8fcd-42a5-a9ca-0cc06fa733e6 /mnt/mydisk ext4 nofail,x-systemd.device-timeout=15s 0 0

## 1T--ntfs--/mnt/ntfs
UUID=47B29C2C34E7F600 /mnt/ntfs ntfs nofail,x-systemd.device-timeout=15s 0 0

ctrl+sctrl+x保存就可以了。

PVE 配置 samba 共享

点击查看教程

有些朋‮喜友‬欢在PVE上安‮黑装‬群晖当文件‮务服‬器。由‮中于‬间隔了VMM,个人‮得觉‬性能太低。还是喜欢直接在pve主机‮安上‬装smb文‮共件‬享服务。

一 、PVE 安装samba服务,并创建用户和密码

1 、安装samba服务

1
apt update && apt install samba -y

2 、创建admin用户+设置admin用户密码

1
useradd admin && smbpasswd -a admin

二 、设置 samba ‮置配‬文件

1 、备份 samba 配置文件

1
cp -i /etc/samba/smb.conf /etc/samba/smb.conf.bak && cd /etc/samba && ls

2 、设置‮置配‬文件(追加 samba 服务配置文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
mkdir -pm 755 /mnt/mydisk && chmod +x /etc/samba/smb.conf && cat >>/etc/samba/smb.conf <<'EOF'
[pve-mydisk]
comment = mysamba
path = /mnt/mydisk
browseable = yes
## 是否允许用户写入此共享,yes为可写入,no为不可写入。
writeable = yes
## 指定共享用户是否可读写,yes为只读,no为读写。
read only = no
## 新建文件的默认权限掩码
create mask = 0777
## 新建目录的默认权限掩码
directory mask = 0777
## 允许访客否
guest ok = no
## 强制用户为root
force user = root
## 强制组为root
force group = root
## 定义管理员用户列表
admin users = admin
## 定义允许访问此共享的有效用户列表,也可以是组名(以 @ 开头)
valid users = admin,root
## 要求密码访问
password required = yes
## 共享是否可用, yes为显示共享,no 为隐藏共享
available = yes
## 对于Apple文件进行编码
fruit:encoding = native
## 对于Apple文件元数据
fruit:metadata = stream
## 设置为 no 表示Samba不会拒绝AppleDouble文件
fruit:veto_appledouble = no
EOF

3 、重启 samba 服务

1
systemctl restart smbd

PVE 配置 NFS 服务

点击查看教程

使用PVE作为NAS,需将本地硬盘挂载到宿主机下的共享目录:
mount -t 硬盘文件系统类型 /dev/硬盘分区编号 /PVE内的共享目录路径,例如
mount -t ext4 /dev/sda2 /mnt/pve/share

如果是使用LXC作为NAS,则需提前映射本地硬盘到容器内的共享目录:
pct set LXC容器ID -mpX /dev/硬盘分区编号,mp=LXC容器内的共享目录路径,例如:
pct set 100 -mp0 /dev/sda2,mp=/mnt/share

一、PVE为服务端,NFS的配置

1、服务器安装NFS服务

1
apt-get install nfs-kernel-server

2 、检查 NFS 服务状态

1
sudo systemctl status nfs-kernel-server

3、创建共享目录赋予读写权限+新建exports文件

1
2
3
4
5
6
7
8
9
mkdir -pm 755 /mnt/ntfs && touch /etc/exports && chmod +x /etc/exports && cat > /etc/exports <<EOF

## 挂载/mnt/ntfs为共享命令
/mnt/ntfs *(rw,fsid=0,no_subtree_check,no_root_squash,insecure,sync)

/mnt/mydisk *(rw,fsid=0,no_subtree_check,no_root_squash,insecure,sync)
EOF

exportfs -rv && /etc/init.d/nfs-kernel-server start ## nfs开机自启

二 、PVE为客户端,NFS的配置

1 、PVE查看NFS挂载目录

1
showmount -e 10.10.10.251 # 客户端查看NFS共享

或者在服务端执行命令查看NFS共享目录

1
showmount -e # 本机查看NFS共享

2 、PVE_web配置NFS

3 、查看所有NFS服务器挂载目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
touch ./check_nfs_shares.sh && cat > ./check_nfs_shares.sh <<EOF
#!/bin/bash
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.242 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.252 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.243 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.254 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.251 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.245 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.246 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
echo -e "\E[1;31m$(showmount -e 10.10.10.247 | sed 's/^Export list for //')\E[0m"
echo -e "-----------------------"
EOF

chmod +x ./check_nfs_shares.sh && ./check_nfs_shares.sh