Loading... ### 起因 某天下午,我想登录ESXI的控制台看看虚拟机,输入正确的账号密码,无法登录。尝试登录SSH,也是密码错误。 百度得知,这是ESXi的一个Bug,需要登录控制台重启某个服务,或者重启虚拟机。 问题来了,我现在登不上控制台和SSH,无法重启。因为我把显卡直通了,所以本地控制台也无法使用,最后我只能直接断电。 断电之后,我想把显卡直通给关了,尝试几次都没用。百度得知,必须修改配置文件,这更加坚定了我转到PVE的决心。 ### 备份数据 我只有一台服务器,转移之前需要先把数据备份到NAS 我的做法是,使用VMwareWorkstation的下载功能将虚拟机拖回本地,一切正常 ![](https://img.crushta.cn/img/blog/article/91/pi20250106212625.png) 导出OVF文件,上传至NAS ![](https://img.crushta.cn/img/blog/article/91/pi20250106213436.png) ### 安装PVE 安装系统没什么好说的,无脑下一步,等待安装 ![](https://img.crushta.cn/img/blog/article/91/pi20250107113553.png) ### 去除无有效订阅 安装完成,登录Web控制台,提示无有效订阅 ![](https://img.crushta.cn/img/blog/article/91/pi20250107114221.png) 使用WinSCP登录PVE,进入 /usr/share/javascript/proxmox-widget-toolkit 目录 修改 proxmoxlib.js 文件,搜索 Ext.Msg.show,将其修改为 Ext.Msg.noshow ![](https://img.crushta.cn/img/blog/article/91/pi20250109134611.png) PVE自带的VI编辑器会出现乱码,所以我使用WinSCP远程修改 ![](https://img.crushta.cn/img/blog/article/91/pi20250109164124.png) 修改完成后,重启系统 ### 更换国内源 打开WinSCP,使用SCP协议连接到PVE。 将对应文件复制到本地修改,然后上传。 添加源之前,需要注释掉默认源。 ```bash #/etc/apt/sources.list deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware deb https://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main #/etc/apt/sources.list.d/ceph.list deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription #/etc/apt/sources.list.d/pve-enterprise.list deb https://mirrors.ustc.edu.cn/proxmox/debian bookworm pve-no-subscription ``` 解决gpg公钥问题 ```bash wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg ``` 更新镜像源 ```bash apt-get update ``` ### 修改PVE概要信息 **警告:修改PVE底层可能会影响PVE稳定性,此脚本是为PVE7.0打造,PVE8.0可能会有兼容性问题** 手动修改太麻烦了,我使用老虎大佬的PVE优化脚本 进入PVE Shell ```bash 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 ``` 输入 7 ![](https://img.crushta.cn/img/blog/article/91/001.png) 修改完成后重启PVE,实际效果如下 ![](https://img.crushta.cn/img/blog/article/91/002.png) 其余功能我没用,稳定性未知 ### 挂载数据盘 接着挂载数据盘,擦除磁盘,使用GPT初始化 ![](https://img.crushta.cn/img/blog/article/91/pi20250107133122.png) 点击目录并创建目录,选择刚刚初始化的磁盘 ![](https://img.crushta.cn/img/blog/article/91/pi20250107133418.png) 文件系统选择ext4,名称自定义 ![](https://img.crushta.cn/img/blog/article/91/pi20250107133551.png) 挂载完成 ![](https://img.crushta.cn/img/blog/article/91/pi20250107143603.png) ### 添加NFS存储 进入数据中心,点击存储,添加NFS,ID自定义 ![](https://img.crushta.cn/img/blog/article/91/pi20250107145228.png) ### 导入OVF 首先要转换硬盘格式,下载qemu([点此下载windows版本](https://qemu.weilnetz.de/w64/2022/qemu-w64-setup-20220418.exe)) 配置环境变量 ![](https://img.crushta.cn/img/blog/article/91/pi20250107152108.png) 进入OVF所在目录,打开CMD ``` qemu-img convert -p -f vmdk -O qcow2 [需要转换的vmdk文件名].vmdk [转换后的文件名].qcow2 #vmdk转qcow2 ``` 转换完成 ![](https://img.crushta.cn/img/blog/article/91/pi20250107153007.png) 更改后缀,改成.iso,然后上传至PVE ![](https://img.crushta.cn/img/blog/article/91/pi20250107153239.png) 上传完成后,创建新的虚拟机,此虚拟机不需要添加CD和磁盘。 打开PVE Shell ``` cd /var/lib/vz/template/iso/ //进入pve iso的文件路径 mv Ubuntu.iso Ubuntu.qcow2 //修改回qcow2磁盘镜像 qm importdisk 999 Ubuntu.qcow2 local-lvm //导入磁盘映像到999号虚拟机 ``` 导入完成 ![](https://img.crushta.cn/img/blog/article/91/pi20250107160034.png) 使用刚刚导入的硬盘 ![](https://img.crushta.cn/img/blog/article/91/pi20250107160223.png) 修改引导顺序 ![](https://img.crushta.cn/img/blog/article/91/pi20250107160320.png) 虚拟机成功启动 ![](https://img.crushta.cn/img/blog/article/91/pi20250107160432.png) 接下来配置网络,进入路由器后台,找到虚拟机的IP(转移之后会生成新网卡,默认是DHCP),然后使用新IP连接SSH,使用nmtui配置网络,把IP配置为转移之前的(无法连接可尝试将网卡替换成intelE1000) ![](https://img.crushta.cn/img/blog/article/91/pi20250107181645.png) IP配置完成后,删除旧网卡,重启网络服务 ``` sudo systemctl restart network ``` 使用原来的IP登录SSH,转移成功 ### 共享Nvidia显卡给LXC **安装驱动** ``` uname -r #查看内核版本 apt install dkms proxmox-headers-6.5.13-1-pve #这里换成你的内核版本 apt install nvidia-driver ``` 提示模块冲突,安装完成后重启PVE ![](https://img.crushta.cn/img/blog/article/91/pi20250107210243.png) 安装完成,重启PVE ![](https://img.crushta.cn/img/blog/article/91/pi20250107210616.png) 重启之后,验证驱动状态 ``` nvidia-smi ``` 可以看到,我的GT1030和P106已经被识别 ![](https://img.crushta.cn/img/blog/article/91/pi20250107211322.png) **部署LXC容器** 更换CT模板源 ``` cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm systemctl restart pvedaemon.service ``` 下载CT模板 ![](https://img.crushta.cn/img/blog/article/91/pi20250107212903.png) 创建LXC容器,和虚拟机类似 。 ``` ls -la /dev/nvidia* #查询显卡代码 ``` ![](https://img.crushta.cn/img/blog/article/91/pi20250107215542.png) 修改lxc配置文件 /etc/pve/lxc/ct-id.conf ``` lxc.cgroup2.devices.allow: c 195:* rwm lxc.cgroup2.devices.allow: c 226:1 rwm lxc.cgroup2.devices.allow: c 226:129 rwm lxc.cgroup2.devices.allow: c 239:* rwm lxc.cgroup2.devices.allow: c 235:* rwm lxc.mount.entry: /dev/dri/card1 dev/dri/card1 none bind,optional,create=file lxc.mount.entry: /dev/dri/renderD129 dev/dri/renderD129 none bind,optional,create=file lxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file lxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file lxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file lxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file lxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file ``` 下载相同版本的驱动文件([点此前往](https://www.nvidia.cn/drivers/lookup/)) ``` chmod +x #赋予执行权限 ./NVIDIA_xxx.run --no-kernel-module #安装驱动 ./cuda_xxx.run --override #安装cuda ``` 安装驱动无脑下一步 驱动成功识别 ![](https://img.crushta.cn/img/blog/article/91/pi20250108121145.png) ### 配置emby 尝试在LXC容器里使用Docker运行emby,无法识别显卡,所以我打算直接在lxc容器安装emby emby官网下载deb包,安装完成后,打开ip:8096 成功识别 ![](https://img.crushta.cn/img/blog/article/91/pi20250108153638.png) **挂载群晖NFS存储** 先在群晖给媒体库文件夹添加NFS访问权限,然后在LXC容器的功能选项卡勾选NFS ``` apt-get install nfs-common -y #安装NFS客户端 showmount -e NFS服务器ip地址 #列出nfs服务器上可用的共享目录和允许访问的IP地址范围 mkdir /mnt/nfs #创建挂载点 ``` 将nfs服务器上的共享目录挂载到lxc容器内 ``` mount NFS服务器ip地址:/共享目录名 /mnt/nfs # 服务端nfs协议默认为v3版本: mount 192.168.2.163:/volume1/NFShare /mnt/nfs # 服务端nfs协议为v4版本: mount -t nfs4 192.168.2.163:/volume1/NFShare /mnt/nfs ``` 设置开机自动挂载 ``` # 编辑/etc/fstab: nano /etc/fstab # 添加挂载内容,重启后用df -h或ls查看自动挂载是否生效: NFS服务器ip地址:/共享目录名 /mnt/nfs nfs auto,nolock 0 0 ``` 给媒体库文件夹设置777权限 ``` chmod 777 /mnt/nfs ``` 实际效果 ![](https://img.crushta.cn/img/blog/article/91/pi20250109185011.png) 可以看到,视频转码时CPU占用率只有28%(图中视频名称是《86不存在的战区》) 参考: https://blog.csdn.net/JingLisen/article/details/143847366 https://blog.csdn.net/m0_69951597/article/details/127038588 https://www.right.com.cn/FORUM/thread-8297389-1-1.html https://blog.csdn.net/qq_16651077/article/details/144652453 https://blog.csdn.net/v225m/article/details/125637082 https://www.cnblogs.com/int16/p/18525959 https://blog.csdn.net/Zyt2048/article/details/136276731 https://blog.csdn.net/sxwumm/article/details/131298117 https://post.smzdm.com/p/al82p3eg/ 最后修改:2025 年 01 月 21 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏