最近太忙了博客都没写点新文章,好在中秋放了个假,终于是有时间写博文了,那么就先来发点自己的存货吧。=_=

Proxmox Virtual Environment 简称 Proxmox VE 或者 PVE,是一个基于 Debian,专注于虚拟化环境创建的 Linux 发行版,这么说可能不太好理解,其实就跟一个给你提前配置好了底层安装好了虚拟机软件的 Windows 系统差不多,只是这里不是用的 Windows 而是 Debian。

PVE 本身是开源的,人人都能安装使用。安装好 PVE 之后,我们可以借助系统提供的 Web 管理页面地址直接在浏览器上打开 PVE 管理页面对虚拟机进行管理,而我写的这篇文章就是想基于这个管理页面教大家怎么在 PVE 上安装好 Windows 的(我这里安装的是 Windows 10)。

好了话不多说,直接开始吧。

注:本文使用的 PVE 版本为 7.0-11。

一、关于创建虚拟机部分要注意的部分选项

因为 PVE 创建虚拟机的页面挺直观的,所以这部分我就不详细说了,只给大家说几个虚拟机创建过程中需要注意的选项。

首先需要注意的就是下图这个访客 OS,要选择 Microsoft Windows,后面的版本我选择的是 Windows 10 的,如果你是安装其它版本的,选择对应的就行。

之后就是系统的设置,这点有些人会直接使用默认的,但是我个人的话更建议大家现代化一点,不要使用传统的 BIOS 而是用 UEFI。

系统默认的 BIOS 选择的是 SeaBIOS,而机器是 i440fx。但是如果你要做 PCIe 直通,或者虚拟机里的硬盘比较大的话,这两个并不是最好的选择。况且现在都已经 2021 年了,UEFI 早就是标配了,真没必要再守着老旧的 BIOS 不放,两者也不存在稳定性方面的差别(至少我用到现在还没遇到稳定性问题)。

关于这方面,官方的帮助文档里有说明:

Proxmox VE allows to boot VMs with different firmware and machine types, namely SeaBIOS and OVMF. In most cases you want to switch from the default SeaBIOS to OVMF only if you plan to use PCIe pass through. A VMs Machine Type defines the hardware layout of the VM’s virtual motherboard. You can choose between the default Intel 440FX or the Q35 chipset, which also provides a virtual PCIe bus, and thus may be desired if one wants to pass through PCIe hardware.

关于 BIOS 和 UEFI,我再补充一点,一般 BIOS 使用的是 MBR 分区表,UEFI 使用 GPT 分区表,两者的差别:

与支持最大卷为2 TB(Terabytes)并且每个磁盘最多有4个主分区(或3个主分区,1个扩展分区和无限制的逻辑驱动器)的MBR磁盘分区的样式相比,GPT磁盘分区样式支持最大为128个分割,一个分割最大18 EB(Exabytes),只受到操作系统限制(由于分区表本身需要占用一定空间,最初规划硬盘分区时,留给分区表的空间决定了最多可以有多少个分区,IA-64版Windows限制最多有128个分区,这也是EFI标准规定的分区表的最小尺寸)。与MBR分区的磁盘不同,至关重要的平台操作数据位于分区,而不是位于非分区或隐藏扇区。另外,GPT分区磁盘有备份分区表来提高分区数据结构的完整性。在UEFI系统上,通常是通过ESP分区中的EFI应用程序文件引导GPT硬盘上的操作系统,而不是活动主分区上的引导程序。

引用自中文维基百科“主引导记录”词条:https://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95

之后就是虚拟机硬盘的创建了,如果你是要硬盘直通,这里创建的硬盘其实不怎么有用,后面也可以直接删除了。如果你要保留这个硬盘的话,因为虚拟机创建的硬盘默认是 SCSI 的,在 Windows 上使用的话需要先安装好驱动,没有驱动会导致无法读取到硬盘。

关于硬盘的各种类型,官方是这么说的:

the IDE controller, has a design which goes back to the 1984 PC/AT disk controller. Even if this controller has been superseded by recent designs, each and every OS you can think of has support for it, making it a great choice if you want to run an OS released before 2003. You can connect up to 4 devices on this controller.

the SATA (Serial ATA) controller, dating from 2003, has a more modern design, allowing higher throughput and a greater number of devices to be connected. You can connect up to 6 devices on this controller.

the SCSI controller, designed in 1985, is commonly found on server grade hardware, and can connect up to 14 storage devices. Proxmox VE emulates by default a LSI 53C895A controller.A SCSI controller of type VirtIO SCSI is the recommended setting if you aim for performance and is automatically selected for newly created Linux VMs since Proxmox VE 4.3. Linux distributions have support for this controller since 2012, and FreeBSD since 2014. For Windows OSes, you need to provide an extra iso containing the drivers during the installation. If you aim at maximum performance, you can select a SCSI controller of type VirtIO SCSI single which will allow you to select the IO Thread option. When selecting VirtIO SCSI single Qemu will create a new controller for each disk, instead of adding all disks to the same controller.

The VirtIO Block controller, often just called VirtIO or virtio-blk, is an older type of paravirtualized controller. It has been superseded by the VirtIO SCSI Controller, in terms of features.

因为 SCSI 是比较推荐的选择,所以我安装 Windows 也是创建的这类硬盘,之后我安装系统的时候发现这类硬盘没办法直接识别,需要先安装驱动,而我这篇文章主要也是因为这点才想写的。

之后就没有什么好说的了,只需要再注意下 CPU 选项里的这个类别就行了:

这个 CPU 类别实际上是会影响到你模拟出来的 CPU 性能的。PVE 默认的选项是 kvm64,是个类似于奔腾 4 的 CPU,是一种通过减少一些真 CPU 的特性以获得更好兼容性的选择,所以性能上就没那么强了。我们平时用的话,我建议还是选择自己 CPU 对应的类别或者直接选择 host 完全匹配真实 CPU 的特性。

关于这个类别差异,官方也是有说明的:

Qemu can emulate a number different of CPU types from 486 to the latest Xeon processors. Each new processor generation adds new features, like hardware assisted 3d rendering, random number generation, memory protection, etc … Usually you should select for your VM a processor type which closely matches the CPU of the host system, as it means that the host CPU features (also called CPU flags ) will be available in your VMs. If you want an exact match, you can set the CPU type to host in which case the VM will have exactly the same CPU flags as your host system.

This has a downside though. If you want to do a live migration of VMs between different hosts, your VM might end up on a new system with a different CPU type. If the CPU flags passed to the guest are missing, the qemu process will stop. To remedy this Qemu has also its own CPU type kvm64, that Proxmox VE uses by defaults. kvm64 is a Pentium 4 look a like CPU type, which has a reduced CPU flags set, but is guaranteed to work everywhere.

In short, if you care about live migration and moving VMs between nodes, leave the kvm64 default. If you don’t care about live migration or have a homogeneous cluster where all nodes have the same CPU, set the CPU type to host, as in theory this will give your guests maximum performance.

之前我看到有人在说这个 CPU 类别时,说最好是选择 kvm64,免得迁移时产生兼容性方面的问题。但是如果我没理解错的话,这里说的 live migration 应该和我们平时的迁移不是一种行为,不应该有兼容性方面的考虑才是,只是目前我还没有实际迁移测试过,所以也不敢肯定,有试过的欢迎评论分享你的经验~

二、安装 Windows 过程中的一些经验分享

首先是在创建好虚拟机首次运行的时候,如果进不去安装界面,可以在虚拟机开机阶段按下 Esc 进入 BIOS 管理界面,在 Boot Manager 里选择安装镜像所在的设备启动。

进入开机 BIOS 这个只需要你点开你创建的虚拟机,再刚开机阶段时找到虚拟机菜单里的控制台,在 noVNC 界面左边的一排按键里找到 Esc 点击就行了。因为是在开机阶段能操作的时间不多,如果错过了时间重启下虚拟机再操作下就可以。

实际上这个 Boot Manager 就跟我们平时的 BIOS 一样就是用来选择从哪个设备启动机器的,在 PVE 的虚拟机选项里也可以调整引导顺序,总之遇到无法启动的时候都可以试试。

PS:BIOS 的 Device Manager 里面还能调整界面的分辨率哦。

之后就是正常的系统安装向导了,不过你可能会出现下面第二张图的情况——看不到能用的硬盘。

出现这个问题,是因为我们前面给虚拟机创建的是 SCSI 硬盘,但是 Windows 默认并没有这类东西的驱动,需要我们先手动安装了驱动才能识别。

驱动的安装,需要我们先额外给虚拟机挂载一个 CD/DVD 驱动器,驱动器里要选择专门的 ISO 镜像包,这个镜像包里包含有一系列可能需要的驱动。关于额外添加驱动器这部分,我就不再说了,可以看下最开头的那张截图,操作是差不多的,直接点开 PVE 管理页面 Windows 虚拟机的硬件选项,点击添加来额外添加一个驱动器并挂载驱动镜像就行。

ISO 驱动镜像的介绍和下载:https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers

不想看英文的直接点击这个链接下载驱动镜像:https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

镜像挂载好之后,点击 Windows 安装程序里的“加载驱动程序”选项,在出现的页面上点击“浏览”,找到刚才挂载的 CD/DVD 驱动器,按照下面截图的路径找到 SCSI 驱动安装,之后应该就能正常识别出来硬盘了。

OK 搞定!能识别出来硬盘之后按照正常安装的步骤操作就行了,后面就没什么要注意的地方了233333

总结

虽然感觉也没什么好总结的,不过还是强行总结一下吧!

  1. 初期创建虚拟机时,不要选错了访客 OS 的类别
  2. 这点不仅限于 Windows,我个人建议任何现代操作系统的虚拟机都使用 UEFI+Q35
  3. 如果初始安装过程中发现无法正常进入安装界面,可以看下启动引导的设备选择是否正确
  4. 虚拟的 SCSI 硬盘在 Windows 下要正常识别使用必须要先安装好驱动
  5. 据我所知目前 PVE 还不支持 TPM,因为 Windows 11 硬性要求需要,所以想在虚拟机里装 Windows 11 的建议先缓缓
  6. 没了,就这样~

说点什么
欢迎评论!不想写邮箱的请填写 [email protected] 哦!
支持Markdown语法
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...