PVE安装与配置
PVE
前言
安装PVE的目的是Windows+OpenWrt双虚拟机,win用来日常查资料、记录等,op用来负责网关、dns、去广告和硬盘共享等。实测并不能尽如人意。故最后又换回了单一系统OpenWrt,不再纠结是否存在硬件的浪费,也算是走出了电费多少、浪不浪费的纠结了。
劝退原因:
- Windows虚拟机想作为日常使用,那么硬件有着较高的要求,仅凭200ge还不够。更换处理器则是成本更大的选择,不论是时间上还是RMB上。后续更高的耗电也需要考虑。
- PVE的硬盘休眠是个大坑。直通op的硬盘休眠后,PVE会接管硬盘,让它接着转圈圈。网上转了一圈,也试了一圈,并没能解决硬盘休眠的事,什么pvestat关掉啦,什么lvmeta设置为1啊,什么休眠脚本啊,什么hdparm啊。当真是没有金刚钻莫揽瓷器活,要继续深入了解,那正事就莫得了。看到一篇文章说的是,目前linux下的硬盘休眠并没有windows做得好,它的内核中并没有硬盘休眠的管理事项,而想要做到硬盘良好、健康的休眠,没有系统做配合,是很难的(原文是不可能的,我也不懂,就折中下吧哈哈)。
- 结合上两点的痛点,PVE与我而言已是鸡肋,目前并没有需求去使用,再加之相比单op系统而言PVE+op会更占用资源(耗电),所以我最终算是成功的白折腾了一番,换回了单op系统。
看到这里,想继续的请做好充足的时间准备并积累足够多的耐心。
如果发现想换回单系统也可以,这是可以实现的,配置什么的不用担心重新设置,可以迁移虚拟机成为单系统。
PVE安装
安装步骤:从官方下载iso文件,用rufus刻录到U盘中,然后bios选择U盘启动,最后安装到制定分区中。
安装好后的小操作:
删除登录时非订阅的提醒、安装PVEtools等操作:
1 | rm /etc/apt/sources.list.d/pve-enterprise.list |
更换国内软件源
详情参考:https://www.nasge.com/archives/136.html
添加之后更新下
1 | apt update |
安装图形界面
大致流程是,若无梯子,则先更换国内软件源;然后tasksel,空格选中gnome,tab选择ok,enter确认安装,这一步最好有梯子,不然会很慢。安装好后需要创建非root用户,因为gnome默认root用户不能登录图形界面,重启登录便会出现图形界面。
参考网址:https://www.10bests.com/install-gnome-and-kodi-on-pve/
安装OpenWrt虚拟机
文字仅为总结,视频更易食用:
打开浏览器,输入网页管理页面地址,https://xxx.xxx.xxx.xxx:8006,如果是pve本地操作,那么127.0.0.1即是xxx.xxx.xxx.xxx,端口如果忘记,或不正确,可以用`ss -ntlp`命令查看端口,登录时,用户名称默认为root,密码是安装时设置的8位数以上的密码。
在管理页面下,左侧导航栏,数据中心——pve,点击pve节点,然后点击ISO镜像,上传OpenWrt的img固件。右上方点击创建虚拟机,一路默认,创建好后,删除虚拟机磁盘、网络,适当调整内存和CPU核心数大小。然后点击左侧导航栏的pve,点击shell打开控制台,将img固件转换为磁盘文件,输出结果位置为local-lvm:
1 | qm importdisk 100 /var/lib/vz/template/iso/openwrt.img local-lvm |
这时候可以看到OpenWrt虚拟机的硬件页面有了一个未挂载的磁盘,点击磁盘,然后添加。
接着添加网络设备,桥接vmbr0,模型为半虚拟化。
OpenWrt会将第一个网卡当做lan口,第二个作为wan口,所以这第一个绑定的网卡是连接下级网络的接口。
然后进入左侧导航栏的pve中,在相对右侧的导航栏里找到系统——网络,点击创建,桥接网卡,将vmbr1绑定到连接上级网络的网卡上。
多余的网卡如果继续桥接,都会充当lan口,也就是连接下级网络。
这就大功告成了,点击启动,稍等片刻,下级网络便能通网。
挂载sata硬盘
我们知道OpenWrt中可以挂载硬盘然后通过samba共享到网络邻居中,以下是挂载硬盘到OpenWrt的方法。
查看硬盘id
1 | ls -l /dev/disk/by-id/ |
挂载两块机械硬盘到100号虚拟机,挂载点为sata1和sata2
1 | qm set 100 --sata1 /dev/disk/by-id/ata-TOSHIBA_HDWD130_50IVSDXAS |
开机状态挂载后需要重启才能成功挂载。
至于OpenWrt中具体共享磁盘的方法,此处就不展开了,请寻找其他资料。
安装、切换和删除内核
详情参考:https://einverne.github.io/post/2016/03/linux-kernel-change.html
查看正在使用的内核版本
1 | uname -r |
查看已安装内核
1 | dpkg -l | grep kernel |
安装前建议将 Proxmox 企业版更新源的注释取消。如果没有可以新建一个
1 | touch /etc/apt/sources.list.d/pve-enterprise.list |
查找可用内核,安装指定内核,这里是 pve-kernel-5.11.22-1-pve
1 | sudo apt search pve-kernel #linux-image |
重启在grub选择界面,可以选择内核版本,进入后然后卸载不需要的内核
1 | sudo apt-get purge pve-kernel-5.11.21-1-pve |
DKMS(Dynamic Kernel Module Support)似乎是一个非常有用的工具,mark一下先。
wiki:动态内核模块支持 是用来生成Linux的内核模块的一个框架,其源代码一般不在Linux内核源代码树。 当新的内核安装时,DKMS支持的内核设备驱动程序 到时会自动重建。 DKMS可以用在两个方向:如果一个新的内核版本安装,自动编译所有的模块,或安装新的模块在现有的系统版本上,而不需要任何的手动编译或预编译软件包需要。
安装Windows虚拟机
下载网络驱动virtio-win ISO:https://github.com/virtio-win/virtio-win-pkg-scripts
准备好windows镜像。按照正常虚拟机方法安装。但是涉及到网络相关的安装跳过,如账户登录应选择本地账户登录windows。
网络需要安装驱动器后才能正常连接。打开设备管理器,然后选择更新网络驱动器,从本地安装,文件夹就选择光盘ISO驱动器(刚刚下载的virtio-win ISO),点击安装,windows会自动寻找合适的驱动并安装,安装好,稍等片刻网络便能连通。
PCI设备等驱动器也可以照此方法依次安装。
直接进入驱动器,里面的virtion-win-guest-tools似乎可以安装一套驱动,我没试过。
远程桌面管理Windows
说是远程桌面,其实就是pve网页管理上三种不同的控制台。
novnc和spice显示的东西都是一样,操作同步。可见都是显示器式直接访问画面。区别就在于,spice功能更加强大,性能更好。
SPICE能够是画面无缝切换,双向粘贴,USB挂载,例如远程桌面一样。具体例子可以见 pve安装server2019
virt-viewer下载地址: https://www.spice-space.org/download.html
在 PVE 環境下使用 SPICE Client 連接 VM 桌面
Proxmox VE三种控制台对比(novnc/xterm.js/SPICE)
使用命令开启虚拟机
详情参考:https://wp.gxnas.com/7852.html
查看一下虚拟机的运行状态
- pvesh get /cluster/resources

取得虚拟机当前状态
- pvesh get /nodes/PVE节点名称/qemu/虚拟机的id/status/current
启动虚拟机的命令
- pvesh create /nodes/PVE节点名称/qemu/虚拟机的id/status/start
关闭虚拟机的命令
- pvesh create /nodes/PVE节点名称/qemu/虚拟机的id/status/stop
即:
1 | #开启虚拟机 |
退坑PVE(迁移虚拟机到硬件上)
民科猜测言论,请勿照搬相信:PVE安装虚拟机和实体机BIOS安装系统一样。PVE只不过是模拟了一个BIOS,引导了系统,然后将系统运行在虚拟的硬件上,那么将虚拟机迁移到直接的硬件上便是完全可行的。
只要你的引导正确(BIOS、MBR、UEFI等等需要匹配),打包的系统没有损失文件,那么便符合迁移条件。
BIOS部分知识,可以粗略看下(外链):引导系统,从 BIOS 到运行 Linux 系统
成功的迁移思路
给虚拟机添加含有PE系统的U盘(需含有写盘工具),启动虚拟机进入PVE模拟的BIOS中,选择进入PE系统
然后使用写盘工具将虚拟机所在的磁盘打包成img镜像
之后安装方法和正常op安装一样,进入主板BIOS,选择进入PE系统,使用写盘工具写入硬盘即可
在BIOS中调整好对应的引导方式(MBR还是UEFI),拔掉启动U盘,就可以启动了
我这版的OpenWrt是BIOS启动,需要关闭UEFI启动并且拔掉其余含有引导系统的U盘如PE等,具体问题具体分析,请勿照搬。
当然op应该也可以UEFI启动,不过需要设置grub和编辑/etc/fstab文件等操作,由于对我而言没什么必要,就不继续折腾了。有需要的朋友可以一试。
目前我已经迁移成功,使用完全正常,就是手贱又更新了下软件包,不知道把我的YTTD的网页终端整哪里去了(不见了),不过这和迁移系统没关系哈哈。
还有一点,第一次进入系统的时候,先是不符合屏幕的分辨率,字体很大(booting kernel…),然后一闪就黑屏了,我这边是只亮了背光,当时还以为失败了,其实我这边已经系统启动完成了,点了下回车就出现登录界面了,输入之前虚拟机的密码成功登陆,以下是ssh的登录界面信息:
1 | BusyBox v1.33.1 (2021-08-13 03:46:29 UTC) built-in shell (ash) |
成功退坑,他日再战或许会换个esxi来折腾下。
待检测迁移思路
这里还有个迁移思路是,使用tar打包根目录下的文件,然后使用原版镜像安装op到硬件,最后将tar解压,覆盖安装到该系统,重启后想必也不会存在什么问题。只是猜测,未经试验。
诸位朋友若想试验,在虚拟机中应该可以试验,先将op原版镜像系统安装进PVE,在PVE里面测试,如果tar解压覆盖后成功重启进入系统,并且配置与想要迁移的那个虚拟机配置一致,那么大概率在硬件上的迁移也是行得通的。