Lazy loaded image
入门系列
6️⃣Unraid 7.0 新手入门系列:使用虚拟机(以 Windows 为例)
字数 16080阅读时长 41 分钟
2025-4-18
2025-4-17
type
status
date
slug
summary
tags
category
icon
password
本章将会通过安装 Windows 11 虚拟机来给大家简单的介绍如何在 Unraid 中使用虚拟机功能。
在使用虚拟机功能之前,请确保虚拟机功能已经开启。
设置 - 虚拟机管理 - 启用虚拟机 -
notion image

1. 准备工作

首先,读者需要准备好 Windows 系统的 ISO 安装镜像。对于新手,博主不建议使用第三方封装的 Windows 系统镜像(比如各种精简版 Win 系统),读者可以通过微软官方的下载页面获取最新的 Windows 11 系统镜像文件:
notion image
下载完成后,将 ISO 文件上传到 Unraid 的 isos 用户共享文件夹:
notion image
另外,为了能让虚拟 Windows 系统正确运行,读者还需要下载 VirtIO 驱动程序(设置 - 虚拟机管理器):
VirtIO 驱动程序是专门用于虚拟 Windows 系统的驱动程序,用于模拟真实环境下的驱动,如果不安装的话 Windows 虚拟机无法正确运行。
notion image

2. 创建虚拟机

notion image
选择对应的系统
选择对应的系统
notion image
notion image
一般情况下,我们只需要按照上两张图片中的 1 ~ 6 模块进行配置,即可保证一个虚拟机的正确安装,以下是各个标注模块的相关说明。
上面图片中没有特别圈出来的配置,无需用户调整也能够正常运行虚拟机,这些参数往往用于更深入的虚拟机调优,一般用户无需关心。
1️⃣ CPU核心数以及内存配置(逻辑CPU初始内存 以及关于内存方面的说明)
notion image
选择虚拟机可以使用的 CPU 核心和核心数,以及选择虚拟机可以使用的内存容量。读者根据自己实际的需求,应恰当地分配核心数以及内存容量:
  • 对于 Win 虚拟机,在官方正版系统下,建议 CPU 核心数最低 2 核,内存最低 4G 。
  • 对于 Linux 虚拟机,核心和内存需求比较低,比如安装个 Openwrt 路由系统用作透明网关的情况下,2 核 1G 的配置在大多数情况下是完全够用的。
资源分配这一块没啥太多好说的,读者自己搭建虚拟机的时候,自行使用和体验下资源分配所带来的区别,就能有一个比较清晰的认识了。

⚠️ 关于内存的误区

有个常见的误区,那就是分配给虚拟机的内存越多,虚拟机的性能越好。无论是什么虚拟机,建议不要分配超过主机内存总量的 70% ,否则你会发现,分配了很多内存给虚拟机的情况下,虚拟机运行起来却很慢。
举个例子,比如说你的 Unraid 有 16G 内存,所有虚拟机所使用的内存总量不要超过 16 * 70% ≈ 11 G,换句话说起码要让 Unraid 保留有 30% 的内存可以调用(40% 最好)。这是因为,Unraid 作为宿主机,是需要有一定量的内存保证各项程序(包括虚拟机服务)能够正确运行,如果 Unraid 自身能够使用的内存都不够了,那么其他的程序又如何能正常运作呢?

⚙️ 关于虚拟机内存动态分配的说明

在 Unraid 中,为了让虚拟机高效运行,Unraid 提供了一种内存管理机制,允许用户为虚拟机设置 初始内存最大值内存
  • 初始内存 :这是虚拟机启动时分配的内存量。
  • 最大值内存 :这是虚拟机可以使用的最大内存量。
这种设置的目标是让虚拟机在需要更多内存时,能够动态地从宿主机(即 Unraid )获取更多资源,而在不需要时释放内存给其他虚拟机或服务使用。
理想情况下,虚拟机的内存分配应该是“动态”的:即当虚拟机需要更多内存时,系统会自动分配;当虚拟机内存使用量减少时,系统会自动回收内存。
然而,在实际使用中,你会发现 Unraid 的动态内存分配并不完全符合预期,具体来说:
  1. 虚拟机启动时会分配 最大值内存 ,但随后内存使用量会降低到 初始内存 水平。
  1. 当虚拟机需要更多内存时,系统可能不会自动增加内存,这会导致性能下降甚至虚拟机崩溃。
  1. 如果虚拟机配置了 PCIe 直通设备(即将物理设备直接分配给虚拟机使用),动态内存分配功能将无法正常工作。
为了理解这些问题,我们需要了解一些技术概念:
  1. KVM(Kernel-based Virtual Machine):KVM 是 Linux 内核中的一个虚拟化模块,它允许 Linux 主机运行多个虚拟机。Unraid 正是基于 KVM 来实现虚拟化功能的。KVM 提供了强大的硬件虚拟化支持,但它的内存管理机制需要依赖其他工具(如 virtio-balloon)来实现动态内存分配。
  1. virtio-balloon:virtio-balloon 是一种内存管理技术,它通过在虚拟机中安装一个“气球驱动程序”来管理内存。这个驱动的作用是:
      • 当主机需要回收内存时,virtio-balloon 会“充气”,减少虚拟机的内存使用量。
      • 当虚拟机需要更多内存时,virtio-balloon 会“放气”,增加虚拟机的内存使用量。
      然而,virtio-balloon 在 KVM 中默认并不支持自动动态内存分配。也就是说,它不会根据虚拟机的内存需求自动调整内存大小,而是需要用户手动干预或通过脚本来实现。
  1. PCIe 直通:PCIe 直通是一种技术,它允许虚拟机直接访问物理硬件设备(如显卡、网卡等)。这种技术可以提高虚拟机的性能,但它也有一个限制:为了确保设备能够正常工作,虚拟机必须预先分配足够的内存。因此,动态内存分配功能在启用 PCIe 直通的虚拟机中无法使用。
通过上面的介绍,我们可以总结出几个原因:
  1. KVM 的限制:KVM 的 virtio-balloon 机制默认不支持自动动态内存分配,需要手动或通过脚本实现。
  1. Unraid 的实现:Unraid 主要面向家庭和小型企业用户,大多数用户对动态内存分配的需求较低,因此官方并未深入优化这一功能。相反,对于 PVE 或 VMware 等这一类商业化虚拟机平台上面,可以实现内存动态分配的功能。
  1. 硬件限制:如果虚拟机配置了 PCIe 直通设备,动态内存分配功能将无法正常工作。
如果你希望在 Unraid 中实现类似动态内存分配的功能,可以尝试以下方法:
  1. 手动调整内存:使用 virsh setmem 命令手动调整虚拟机的内存大小。例如:
    1. 编写脚本:通过编写脚本,监控虚拟机的内存使用情况,并在需要时自动调整内存大小。
    1. 考虑其他平台:如果你对动态内存分配有较高需求,可以考虑使用其他虚拟化平台(如 Proxmox),这些平台在动态内存管理方面可能更加成熟。
    虽然用户可以通过手动调整或脚本来优化内存管理,但这需要一定的门槛,对大多数用户来说这么做并不现实。所以。如果你对动态内存分配有较高需求,可能需要进一步研究或考虑其他虚拟化平台。

    ⚙️ Windows 虚拟机和 Linux 虚拟机在内存动态分配方面的比较

    特性
    Windows 虚拟机
    Linux 虚拟机
    自动内存增加
    支持
    不支持
    自动内存减少
    不支持
    不支持
    内存报告准确性
    不准确(virtio-balloon 隐藏部分内存)
    准确
    手动调整内存
    支持
    支持
    适用场景
    高性能应用、内存需求波动较大的场景
    轻量级应用、内存需求相对稳定的场景
    在 Unraid 或其他基于 KVM 的虚拟化平台中,Windows 虚拟机和 Linux 虚拟机在内存动态分配方面的行为有所不同。以下是对这两类虚拟机的比较:
    Windows 虚拟机:
    • 支持自动内存增加:Windows 虚拟机在安装了 virtio-balloon 驱动程序后,支持自动增加内存。当虚拟机需要更多内存时,系统会自动从主机请求更多内存,而不需要手动干预。
    • 不支持自动内存减少:虽然 Windows 虚拟机可以自动增加内存,但它不会自动减少内存。即使虚拟机的内存使用量降低,系统也不会主动释放内存给主机,除非用户手动调整。
    • 内存报告的准确性:Windows 虚拟机在启用 virtio-balloon 后,系统报告的内存使用量可能不准确(详见 Github issue)。这是因为 virtio-balloon 机制会“隐藏”部分内存,导致 Windows 无法正确显示实际使用情况。
    Linux 虚拟机:
    • 不支持自动内存增加:Linux 虚拟机在启用 virtio-balloon 后,无法自动增加内存。当虚拟机需要更多内存时,系统不会主动从主机请求资源,而是直接使用交换文件(Swap),这可能导致性能下降甚至虚拟机崩溃。
    • 不支持自动内存减少:与 Windows 虚拟机类似,Linux 虚拟机也不会自动减少内存。即使内存使用量降低,系统也不会主动释放内存给主机。
    • 手动调整内存:用户可以通过 virsh setmem 命令手动调整 Linux 虚拟机的内存大小,但这一过程需要用户干预。
    2️⃣ 底层 BIOS 配置(机器BIOSHyper-v
    notion image
    什么是“机器”(Machine),要如何选择?
    “机器”Machine 的中文翻译(见下图英文界面),但是博主认为这一翻译不是很恰当,个人认为翻译成“硬件架构”会更符合语境。因此,下文将用“硬件架构”替代“机器”这一翻译。
    notion image

    什么是“硬件架构”配置项?

    在 Unraid 的虚拟机配置中,硬件架构选项用于指定虚拟机使用的硬件架构类型。它决定了虚拟机如何模拟物理计算机的硬件,包括主板、芯片组、总线类型等。Unraid 提供了两种主要的选择:
    1. i440fx:这是基于传统 PCI 总线的芯片组,模拟的是较老的硬件架构(类似于 20 世纪 90 年代的 PC 硬件)。
    1. Q35:这是基于现代 PCI Express (PCI-E) 总线的芯片组,模拟的是更接近现代计算机的硬件架构。

    i440fx 和 Q35 的区别是什么?

    为了更好地理解这两种选项的区别,我们可以用比喻的方式来解释:
    • i440fx:就像一辆经典的老爷车,它的设计和功能相对简单,适合运行一些较老的操作系统(如 Windows XP、Windows 7 等)。它的主要特点包括:
      • 使用传统的 PCI 总线(不是 PCI-E)。
      • 模拟了较老的硬件架构,兼容性较好,但对现代硬件的支持有限。
    • Q35:就像一辆现代化的跑车,它的设计和功能更加先进,适合运行现代操作系统(如 Windows 10、Windows 11 等)。它的主要特点包括:
      • 使用 PCI-E 总线,支持更快的硬件性能。
      • 模拟了更接近现代计算机的硬件架构,尤其是对 GPU 直通(GPU Passthrough)等功能的支持更好。

    为什么 Unraid 建议先尝试 i440fx?

    如果你在虚拟机配置界面按下 F1 键,会看到官方对这一选项的说明:
    As a rule of thumb, try to get your configuration working with i440fx first and if that fails, try adjusting to Q35 to see if that changes anything. —— 通常来说,建议首先尝试使用i440fx芯片组来配置您的虚拟机,如果未能成功,再考虑调整为Q35芯片组,以观察是否能够解决问题。
    Unraid 官方文档建议你首先尝试使用 i440fx,这是因为:
    1. 兼容性更高:i440fx 模拟的是较老的硬件架构,兼容性更好,尤其是一些老的操作系统或应用程序。
    1. 稳定性更好:由于 i440fx 是 QEMU(Unraid 虚拟机背后的技术)中默认的机器类型,它经过了更多的测试,稳定性更高。
    如果使用 i440fx 时遇到问题(例如无法启动虚拟机或硬件直通失败),再尝试切换到 Q35,因为它可能更好地支持现代硬件特性。

    什么时候应该使用 Q35?

    以下几种情况下,你可以考虑使用 Q35
    1. 需要 GPU 直通:Q35 对 PCI-E 总线的支持更好,适合需要将物理 GPU 直通给虚拟机的场景。
    1. 运行现代操作系统:如果你计划运行 Windows 10 或 Windows 11 等现代操作系统,Q35 可能会提供更好的性能和兼容性。
    1. i440fx 无法满足需求:如果使用 i440fx 时遇到问题(如硬件无法正常工作),可以尝试切换到 Q35。

    举个例子

    假设你想在 Unraid 上运行一个虚拟机,用于玩游戏,并且你有一块高性能的显卡想直通给虚拟机。在这种情况下,你可以选择 Q35,因为它支持 PCI-E 总线,能够更好地利用显卡的性能。
    但如果你只是想运行一个老的操作系统(如 Windows XP),或者你的虚拟机只需要基本的硬件功能,那么 i440fx 可能是更好的选择,因为它更稳定且兼容性更高。
    理论上来说,读者可以按照上述的原则去配置,但也应具体问题具体调整。比如说,在博主的《unRAID 11~13 代CPU开启 SR-IOV 实现虚拟机核显直通》教程中,我提到过可以通过将硬件架构更改为 i440fx 来解决核显虚拟化直通所遇到的代号 43 驱动错误问题。所以,如果读者在 PCIE 硬件直通上面遇到问题,可以尝试更换硬件架构的配置项。

    总结

    • i440fx:适合兼容性优先的场景,尤其是老的操作系统或应用程序。
    • Q35:适合现代硬件支持优先的场景,尤其是需要 GPU 直通或运行现代操作系统时。
    作为新手用户,可以按照 Unraid 的建议,先尝试使用 i440fx,如果遇到问题再切换到 Q35。这样可以逐步调试和优化你的虚拟机配置,确保它能够稳定运行。
    什么是“BIOS”,要如何选择?
    notion image
    在 BIOS 这一项配置中,有以下几个选择:
    • SeaBIOS
    • OVMF
    • OVMF TPM

    1. 什么是 BIOS?

    BIOS(Basic Input/Output System)是一段固化在计算机主板上的程序,负责在计算机启动时进行硬件检测和初始化,并加载操作系统。对于虚拟机来说,BIOS 的作用也是一样的,只不过它是在虚拟环境中运行。

    2. OVMF 是什么?

    OVMF(Open Virtual Machine Firmware)是一种开源的 UEFI(Unified Extensible Firmware Interface)固件,专门为虚拟机设计。UEFI 是现代计算机中替代传统 BIOS 的固件标准,它提供了更多的功能和更好的兼容性。
    (1)什么时候选择 OVMF
    • 支持现代操作系统:OVMF 支持安装和运行现代操作系统,如 Windows 10/11 和最新版本的 Linux 发行版。
    • 安全性更高:OVMF 支持安全启动(Secure Boot),可以防止恶意软件在启动过程中加载。
    • 更大的硬盘支持:OVMF 支持 GPT(GUID Partition Table)分区表,可以管理超过 2TB 的硬盘。
    你可以把 OVMF 想象成一个现代化的“管家”,它不仅能够管理传统的任务,还能处理更复杂的现代需求。
    (2)什么是 OVMF TPM
    OVMF TPM 是 OVMF 的一个特殊选项,如果你需要安装 Windows 11 系统,那么必须选择此选项。
    首先,TPM(Trusted Platform Module,可信平台模块)是一种硬件芯片,用于提供安全相关的功能,例如密钥存储、加密操作和完整性验证。TPM 的主要作用是增强系统的安全性,防止恶意软件篡改系统启动过程或窃取敏感数据。在虚拟机中,TPM 并不是一个实际的硬件芯片,而是通过软件模拟的虚拟 TPM(vTPM)。通过虚拟 TPM,虚拟机可以享受到与物理机类似的安全功能。
    其次,在 Unraid 中,OVMF TPM 选项为虚拟机提供了对虚拟 TPM 的支持,虽然它提供了不少安全相关的功能,但实际上其主要目的是为了能够让用户在 Unraid 上安装 Windows 11 系统:因为 Windows 11 要求设备必须支持 TPM 2.0 才能安装和运行,如果你的虚拟机需要运行 Windows 11,必须启用 OVMF TPM。
    在 Unraid 旧版本中,虚拟机 BIOS 并没有这个选项,所以当时如果需要安装 Windows 11 系统,还需要单独去做相应的配置来绕过 Windows 11 对 TPM 的检测,否则是没办法安装上 Windows 11 的。
    (3)“启用 USB 启动引导”(USB Boot)的作用是什么?
    在选择 OVMF 或 OVMF TPM 的情况下,会额外提供一个叫做“启用 USB 启动引导”的选项,它的功能是增加了通过 UEFI 从 USB 设备启动的支持。简单来说,如果你选择了 OVMF 或 OVMF TPM 作为虚拟机的 BIOS 类型,开启“启用 USB 启动引导”后,虚拟机将能够识别并启动连接到主机的 USB 设备(如 U 盘、外置硬盘等)。
    • UEFI 支持:“启用 USB 启动引导”仅在使用 OVMF 或 OVMF TPM 时可用,因为 UEFI 是启动 USB 设备的必要条件。
    • 灵活性:通过“启用 USB 启动引导”,你可以轻松地从 USB 设备启动虚拟机,这在安装操作系统或运行特定工具时非常有用。
    • 限制:启用 USB Boot 后,你无法在虚拟机中指定设备的启动顺序(Boot Order)。
    应用场景:
    1. 安装操作系统:如果你需要通过 USB 设备安装操作系统(如 Windows 或 Linux),开启“启用 USB 启动引导”后,虚拟机可以像物理机一样从 U 盘启动。
    1. 运行工具或修复系统:许多系统维护工具(如分区工具、系统修复工具)通常是通过 USB 设备启动的。通过此功能,你可以在虚拟机中使用这些工具。
    1. 测试和开发:如果你需要在虚拟机中测试某个 USB 设备中的系统或应用程序,此功能提供了极大的便利。
    注意事项:
    1. 启动顺序:启用该功能后,虚拟机将优先从 USB 设备启动。如果你希望从其他设备(如虚拟磁盘)启动,需要禁用 USB Boot。
    1. USB 设备兼容性:并非所有 USB 设备都支持 UEFI 启动。确保你的 USB 设备已经正确格式化为 UEFI 启动模式。
    1. 性能:从 USB 设备启动虚拟机的性能可能不如从虚拟磁盘启动快,因此建议在安装完成后,将启动设备切换为虚拟磁盘。

    3. SeaBIOS 是什么?

    SeaBIOS 是一种开源的 BIOS 实现,它模拟了传统 PC 的 BIOS 环境。SeaBIOS 通常用于那些需要传统 BIOS 支持的虚拟机。
    什么时候选择 SeaBIOS:
    • 兼容性:SeaBIOS 兼容各种老旧的硬件和操作系统,特别是一些老版本的 Windows 和 Linux 发行版。
    • 简单易用:SeaBIOS 配置简单,适合初学者使用。
    • 轻量级:SeaBIOS 是一个轻量级的 BIOS 实现,占用的资源较少。
    SeaBIOS 就像是一个“老派管家”,它虽然功能不如现代管家丰富,但在处理一些老旧任务时非常得心应手。

    4. 如何选择 OVMF 或 SeaBIOS

    选择 OVMF 还是 SeaBIOS 取决于你的需求,我的个人经验是:
    • 如果你打算安装的是 Windows 10/11 虚拟机,建议一律用 OVMF(OVMF TPM)。
    • 如果你需要运行一些老旧的软件或操作系统,或者你更倾向于简单易用的配置,那么 SeaBIOS 可能更适合你。
    Hyper-V 是什么,有什么用?
    Hyper-V 是微软开发的一项虚拟化技术,它允许在 Windows 操作系统上创建和管理虚拟机。Hyper-V 提供了一系列的扩展功能,使得 Windows 系统下的虚拟机能够更高效地运行。这些扩展功能包括虚拟硬件加速、内存管理优化等。
    在 Unraid 中,启用 Hyper-V 选项的主要目的是为 Windows 虚拟机提供 Hyper-V 扩展支持,从而允许虚拟机内部运行 Hyper-V 相关的功能(如 WSL2Windows Sandbox嵌套虚拟化)。以下是具体说明:
    1. 嵌套虚拟化
        • 如果你在虚拟机中运行 Windows,并希望启用 Hyper-V 相关功能(如 WSL2 或嵌套虚拟机),则必须在 Unraid 的虚拟机配置中启用 Hyper-V 选项。
        • 如果没有启用 Hyper-V 选项,虚拟机将无法识别 Hyper-V 扩展,从而导致嵌套虚拟化功能无法正常工作。
    1. 兼容性支持:某些 Windows 应用程序或功能(如 Docker Desktop 的 WSL2 后端)依赖于 Hyper-V 扩展。启用 Hyper-V 选项可以确保这些功能在虚拟机中正常运行。
    总的来说,如果你在 Unraid 中运行的虚拟机是基于 Windows 操作系统的,并且需要运行 Hyper-V 相关功能(如 WSL2 或嵌套虚拟机),那么启用 Hyper-V 选项是有必要的。但是,如果你的虚拟机运行的是非 Windows 操作系统(如 Linux 或 macOS),或者你不需要使用 Hyper-V 相关功能,启用 Hyper-V 选项通常不会带来明显的好处,甚至可以忽略。
    需要注意的是,某些情况下开启 Hyper-V 可能会造成 Windows 虚拟机无法正常启动,例如这个案例 Intel 12th Gen CPU not working with QEMU Hyper-V nested virtualization 就提到了使用 Intel 12th CPU 在启用了 Hyper-V 并使用了 host-passthrough 模式的情况下,虚拟机在启动时卡在 Tianocore(UEFI 固件)阶段,无法进入操作系统,最终进入 Windows 诊断循环。
    因此,如果读者遇到类似的情况,可以将 Hyper-V 选项关闭。
    3️⃣ 安装镜像(ISO 与 VirtIO 安装镜像)
    notion image
    • 操作系统安装 ISO 镜像 :用于选择 Windows 系统的 .iso 镜像文件。当你点击这一项的文本输入框时,会自动弹出下拉列表供你选择文件,下拉列表里面的文件都是基于 isos 这个用户共享文件夹所遍历出来,这也是为什么博主强调建议将系统镜像的安装文件上传到 isos 这个目录的原因(当然不上传到这里也是没有问题的,针对性选择即可)。
    • 包含 VirtIO 驱动程序的 ISO 镜像 :用于选择 VirtIO 驱动程序镜像文件。
    • 操作系统虚拟光盘总线类型包含VirtIO驱动程序的CD-ROM设备总线类型 :默认情况下系统会自动选择 IDE 这种模拟接口,但对于 Windows 10/11 来说,建议选择 SATA 。
    关于虚拟机模拟接口(IDE、SATA、SCSI 等)说明
    “操作系统虚拟光盘总线类型““包含VirtIO驱动程序的CD-ROM设备总线类型”这两项功能选项用于指定虚拟机中虚拟光驱(CD/DVD-ROM)通过哪种接口与虚拟机内部进行连接。
    你可以把它想象成现实世界中的电脑主板上的接口,比如 USB 或 SATA,它们用来连接光驱。在虚拟机中,虽然一切都是虚拟的,但同样需要模拟这些接口,以便虚拟机能够识别和使用光驱。
    你可能会问,既然一切都是虚拟的,为什么还需要指定接口呢?
    这是因为不同的操作系统和软件对硬件接口的支持程度不同。有些操作系统可能更擅长处理某些类型的接口,而另一些则可能更适合其他类型。通过选择合适的光驱接口,你可以确保虚拟机能够正确地识别和使用光驱,避免出现兼容性问题。
    在这两个功能选项中,有以下几个可选项:
    1. IDE:IDE(Integrated Drive Electronics)是一种较为老式的接口,通常用于连接硬盘和光驱。虽然它的性能不如现代接口,但它的兼容性非常好,几乎所有的操作系统都支持 IDE 接口。如果你的虚拟机运行的是老版本的操作系统,或者你不太确定该选择哪种接口,IDE 是一个安全的选择。并且,默认情况下,操作系统虚拟光盘总线类型包含VirtIO驱动程序的CD-ROM设备总线类型 都是选择 IDE 作为默认选项。
    1. SATA:SATA(Serial Advanced Technology Attachment)是一种现代接口,性能优于 IDE,并且支持热插拔。如果你的虚拟机运行的是较新的操作系统,比如 Windows 10/11 或 Ubuntu 20.04,选择 SATA 接口会是一个更好的选择。它不仅能提供更高的数据传输速度,还能更好地支持现代光驱。
    1. SCSI:SCSI(Small Computer System Interface)是一种高性能的接口,通常用于服务器和高性能计算环境中。虽然它的性能非常出色,但它的兼容性不如 IDE 和 SATA。除非你有特殊的需求,比如需要在虚拟机中运行某些依赖 SCSI 接口的软件,否则通常不建议选择 SCSI 接口。
    除了上述的模拟接口之后,还有 VirtIO 这一种模拟接口(不过在此处并不可选):VirtIO 是一种专为虚拟化环境设计的接口,能够提供最佳的性能和效率。然而,并不是所有的操作系统都支持 VirtIO 接口。如果你的虚拟机运行的是 Linux 系统,并且你希望获得最佳的性能,VirtIO 是一个不错的选择。但对于 Windows 或其他非 Linux 系统,需要额外安装驱动程序才能支持 VirtIO。
    4️⃣ 虚拟硬盘(vDsik)
    notion image
    1️⃣ 主要虚拟硬盘位置(Primary vDisk Location)
    notion image
    首先,我们需要为虚拟机指定一个存储位置。这个位置可以是一个用户共享文件夹(User Share),也可以是一个已经存在的虚拟硬盘文件。虚拟硬盘主要用于存储虚拟机的操作系统。
    默认情况下,这里的选择为“自动”,也就是会自动帮你选择对应的位置去存储虚拟硬盘文件。当然你也可以选择对应的存储池,例如上图中的 cache - 150 GB 可用 ,此外你也可以选择 手动 来自己填写或选择其他的存储位置。
    小提示:Unraid 在启动虚拟机时,会自动“解引用”虚拟硬盘的路径。简单来说,如果你指定了一个用户共享文件夹作为存储位置,Unraid 会通过系统扩展属性(SYSTEM.LOCATION)找到虚拟硬盘实际所在的物理磁盘,并将这个路径传递给虚拟机。这样做的好处是,虚拟机的 I/O 操作可以绕过 shfs(FUSE 用户共享文件系统),从而提升性能。另外,虚拟硬盘文件可以在不同物理设备之间移动,而无需修改虚拟机的 XML 配置文件。
    举个例子:假设你指定了 /mnt/user/domains/Windows/vdisk1.img 作为存储位置,而实际上这个文件位于缓存盘(cache)上,那么 Unraid 会自动将其解引用为 /mnt/cache/domains/Windows/vdisk1.img;而如果这个文件位置实际位于 /mnt/disk1 硬盘上,那么 Unraid 会自动将其解引用为 /mnt/disk1/domains/Windows/vdisk1.img
    2️⃣ 主要虚拟硬盘大小(Primary vDisk Size)
    notion image
    这里你可以输入一个数字,后面加上字母 M 表示兆字节,或者 G 表示千兆字节。对于 Windows 系统来说,我个人习惯是创建一个 100G 大小的硬盘用于 C 盘,然后再另外新创建一个数据存储虚拟硬盘(例如作为 D 盘)。
    个人建议,不要将虚拟硬盘设置的太大,也不需要担心日后空间够不够用,因为在后续的使用中我们可以将虚拟硬盘的进行扩容(比如将 100G 更改为 200G 进行扩容)。
    3️⃣ 主要虚拟硬盘类型(Primary vDisk Type)
    notion image
    虚拟硬盘类型决定了虚拟机如何存储和管理硬盘数据。Unraid 提供了两种主要的虚拟硬盘类型:RAWQCOW2。这两种类型各有特点,适用于不同的场景。

    1. RAW(原始格式)

    RAW 是一种简单的虚拟硬盘格式,它会将虚拟硬盘的所有数据直接存储为一个文件,文件的大小等于你设置的虚拟硬盘大小。换句话说,如果你创建了一个 50GB 的 RAW 虚拟硬盘,它会在硬盘上占用 50GB 的实际空间,无论你是否使用了全部空间。
    优点
    • 高性能RAW 格式的读写操作直接映射到物理硬盘,几乎没有额外的开销,因此性能最佳。
    • 简单易用RAW 格式的文件结构非常简单,兼容性也很强,几乎所有虚拟机软件都支持它。
    • 适合大文件存储:如果你需要存储大量数据且不需要频繁调整硬盘大小,RAW 是一个不错的选择。
    缺点
    • 空间占用大:即使虚拟硬盘中没有数据,它仍然会占用全部的硬盘空间。
    • 无法动态调整大小:一旦创建,RAW 虚拟硬盘的大小是固定的,无法像 QCOW2 那样动态扩展。
    适用场景
    • 追求高性能的虚拟机,如游戏服务器、数据库服务器等。
    • 不需要频繁调整硬盘大小的场景。

    2. QCOW2(动态分配格式)

    QCOW2 是一种更高级的虚拟硬盘格式,它支持动态分配存储空间。这意味着,虚拟硬盘文件的大小会随着实际使用量增长,而不是一开始就占用全部空间。例如,如果你创建了一个 50GB 的 QCOW2 虚拟硬盘,但只存储了 10GB 的数据,那么它只会占用 10GB 的实际硬盘空间。
    优点
    • 节省空间QCOW2 格式只在需要时占用硬盘空间,非常适合存储空间有限的环境。
    • 支持快照QCOW2 格式支持虚拟机快照功能,可以方便地备份和恢复虚拟机状态。
    • 动态扩展:虚拟硬盘的大小可以根据需要动态扩展,而无需重新创建硬盘。
    缺点
    • 性能较低:由于 QCOW2 格式需要动态管理存储空间,读写操作会有一定的性能开销,不如 RAW 格式高效。
    • 仍在开发中:在 Unraid 中,QCOW2 的实现仍在开发中,可能不如 RAW 稳定。
    适用场景
    • 需要节省存储空间的虚拟机,如测试环境、轻量级应用等。
    • 需要频繁调整硬盘大小或使用快照功能的场景。

    3. 如何选择?

    对于大多数新手用户来说,如果你追求性能且不需要动态调整硬盘大小,RAW 是更推荐的选择。它简单、高效,适合大多数日常使用场景。而如果你需要节省存储空间,或者对快照功能有需求,可以尝试 QCOW2,但需要注意它可能存在的一些性能限制。
    例子
    • 如果你正在运行一个 Windows 虚拟机,用于日常办公或游戏,建议使用 RAW 格式,因为它能提供更好的性能。
    • 如果你正在运行一个 Linux 虚拟机,用于测试或开发,且存储空间有限,可以选择 QCOW2 格式。
    虚拟硬盘类型的选择并没有绝对的对错,关键在于根据你的实际需求来决定。
    4️⃣ 主要虚拟硬盘总线类型(Primary vDisk Bus)
    notion image
    虚拟硬盘总线类型的相关内容,在前面的“3️⃣ 安装镜像(ISO 与 VirtIO 安装镜像)”中已经做过讲解,此处不再赘述。
    这里博主主要讲解一下其他相关选择:
    启动顺序(vDisk Boot Order)
    启动顺序决定了虚拟机在启动时首先尝试从哪个设备引导。你可以指定多个设备,并设置它们的启动顺序。如果你希望虚拟机首先从虚拟硬盘启动,可以将虚拟硬盘的启动顺序设置为 1
    舍弃(vDisk Discard)
    notion image
    虚拟硬盘的舍弃(vDisk Discard)功能是一个与存储管理和性能优化相关的选项,尤其适用于固态硬盘(SSD)环境。
    它包含两个选项,分别是 Ignore(No Trim)Unmap(Trim)(实际上也就是启用或不启用)。对于前者,它的主要作用是让虚拟机能够向底层文件系统发送 unmap(也称为 Trim)请求,从而释放未使用的磁盘空间。

    1. 什么是 Unmap(Trim)

    unmapTrim 是一种存储管理机制,主要用于固态硬盘(SSD)。它的作用是告诉存储设备哪些数据块已经不再使用,可以被回收或擦除。这对于 SSD 来说非常重要,因为 SSD 的存储单元需要先擦除才能写入新数据。如果没有 Trim,SSD 的性能可能会逐渐下降,因为未使用的数据块仍然被视为“已占用”,导致写入操作变慢。
    你可以把 SSD 想象成一个白板。当你删除白板上的内容时,数据并没有真正被擦除,只是被标记为“可覆盖”(也就是可以被写入数据)。Trim 的作用就是告诉白板:“这些内容已经没用了,可以擦掉了”,这样下次写入新内容时,白板会更干净,效率更高。

    2. Unmap(Trim)的作用

    在 Unraid 的虚拟机配置中,Unmap(Trim) 选项决定了是否将 unmap 请求传递给底层文件系统。当选择 Unmap(Trim) 这个选项后,当虚拟机删除文件或数据时,unmap 请求会传递到 Unraid 的文件系统,最终通知物理 SSD 哪些数据块可以被回收。
    优点
    • 优化 SSD 性能:通过定期释放未使用的空间,Unmap(Trim) 可以保持 SSD 的高效写入性能,避免性能下降。
    • 延长 SSD 寿命:减少不必要的写入操作,延长 SSD 的使用寿命。
    • 节省存储空间:及时回收未使用的空间,避免存储资源的浪费。
    缺点
    • 可能增加开销:启用 Unmap(Trim) 会增加少量的系统开销,因为需要频繁发送 unmap 请求。
    • 仅适用于 SSD:如果你的存储设备是传统机械硬盘(HDD),Unmap(Trim) 不会带来任何性能提升,反而可能增加不必要的开销。

    3. 什么时候启用 Unmap(Trim)

    • 使用 SSD 作为存储设备:如果你的虚拟硬盘存储在 SSD 上,建议启用 Unmap(Trim) ,以优化性能和延长 SSD 寿命。
    • 虚拟机频繁删除文件:如果你的虚拟机经常删除大量文件或数据,启用 Unmap(Trim) 可以帮助及时释放空间。
    • 需要长期稳定性能:如果你希望虚拟机长期保持高性能运行,Unmap(Trim)  是一个值得启用的选项。

    4. 什么时候不启用 Unmap(Trim)

    • 使用机械硬盘(HDD)Unmap(Trim)  对 HDD 没有实际作用,反而可能增加不必要的开销。
    • 虚拟机存储需求稳定:如果你的虚拟机很少删除文件或数据,Unmap(Trim) 的作用有限,可以不启用。

    5. 实际例子

    假设你有一个 Windows 虚拟机,用于日常办公。虚拟硬盘存储在 Unraid 的 SSD 上。随着时间的推移,你可能会在虚拟机中删除一些文件,比如临时文件、旧文档等。如果不启用 Unmap(Trim) ,这些删除的文件仍然会占用 SSD 的空间,导致 SSD 的性能逐渐下降。而启用 Unmap(Trim) 后,删除的文件会被及时标记为可回收,保持 SSD 的高效运行。

    6. 总结

    舍弃(vDisk Discard)是一个针对 SSD 存储环境的功能,能够优化虚拟机性能和延长 SSD 寿命。如果你的虚拟硬盘存储在 SSD 上,并且虚拟机频繁删除文件,建议启用这个选项。而对于传统机械硬盘(HDD),则可以忽略这个功能。
    SSD(vDisk SSD Flag)
    这个选项可以将虚拟硬盘标记为 SSD,仅在 SCSISATAIDE 总线类型下支持。启用此选项后,虚拟机内部会将该虚拟硬盘识别为 SSD。
    如果说你的这个虚拟硬盘存储在 SSD 固态硬盘上面,那么在选择了 SCSISATAIDE 其中一个的情况下,那么勾选上方框 🔲 ,让系统将这一虚拟硬盘识别为 SSD 是一个不错的选择。
    5️⃣ 主要串口(vDisk Serial,虚拟硬盘序列号)
    虚拟硬盘序列号(vDisk Serial)是一个用于标识虚拟硬盘的字符串,它可以被虚拟机识别并用于区分不同的存储设备。你可以为虚拟硬盘设置一个序列号,这个序列号会呈现给虚拟机。序列号可以用于识别和管理虚拟硬盘。

    1. 什么是虚拟硬盘序列号?

    虚拟硬盘序列号类似于物理硬盘的序列号,它是一个唯一的标识符,用于区分不同的硬盘设备。在虚拟机内部,操作系统可以通过这个序列号识别虚拟硬盘,就像识别物理硬盘一样。
    你可以把虚拟硬盘序列号想象成汽车的牌照号码。每辆车都有一个唯一的牌照号码,用于识别和区分不同的车辆。同样,每个虚拟硬盘也可以有一个唯一的序列号,用于识别和区分不同的硬盘设备。

    2. 为什么要设置虚拟硬盘序列号?

    虽然虚拟硬盘序列号不是必须的,但在以下场景中,它可以发挥重要作用:
    1. 识别和管理硬盘:如果你有多个虚拟硬盘连接到同一台虚拟机,序列号可以帮助你快速识别和管理这些硬盘。
    1. 操作系统识别:某些操作系统(如 Windows)会使用序列号来标识硬盘设备。如果虚拟硬盘没有序列号,操作系统可能会随机生成一个,这可能导致不一致性或混淆。
    1. 脚本和自动化:在编写脚本或自动化任务时,序列号可以作为一个可靠的标识符,帮助你准确地操作特定的虚拟硬盘。

    3. 如何设置虚拟硬盘序列号?

    在 Unraid 的虚拟机配置中,“主要串口”是一个可选的字段。默认情况下,Unraid 会自动虚拟硬盘的顺序分别将值设置为 vdisk1、vdisk2、vdisk3 … 等字符。你可以输入一个自定义的字符串作为序列号,通常建议使用以下格式:
    • 长度:不超过 20 个字符。
    • 字符类型:可以包含字母、数字和特殊符号(如 - 或 _ )。
    • 唯一性:尽量确保每个虚拟硬盘的序列号是唯一的,以避免混淆。
    假设你有一台虚拟机,安装了 Windows 操作系统,并连接了两个虚拟硬盘。你可以为它们设置如下的序列号:
    • 系统盘(如 C 盘):VM-WIN-C
    • 数据硬盘(如 D 盘):VM-WIN-D

    3. 实际应用场景

    1. 多硬盘虚拟机:如果你的虚拟机连接了多个虚拟硬盘,序列号可以帮助你在操作系统中快速区分它们。例如,在 Windows 的磁盘管理工具中,你可以通过序列号识别哪个硬盘是系统盘,哪个是数据盘。
    1. 故障排查:当虚拟机出现硬盘相关的问题时,序列号可以帮助你快速定位问题硬盘。例如,如果某个硬盘无法访问,你可以通过序列号确认是哪个虚拟硬盘出现了问题。
    1. 自动化任务:如果你使用脚本或工具管理虚拟机,序列号可以作为一个可靠的标识符。例如,你可以编写一个脚本,根据序列号自动挂载特定的虚拟硬盘。

    4. 注意事项

    • 唯一性:尽量确保每个虚拟硬盘的序列号是唯一的,尤其是在多硬盘环境下。重复的序列号可能导致混淆或错误。
    • 兼容性:某些操作系统可能对序列号的长度或字符类型有特定要求。在设置序列号时,建议参考操作系统的文档。
    • 非必填项:如果你不需要使用序列号,可以留空。虚拟机仍然可以正常运行,只是操作系统可能会生成一个随机的序列号。

    5. 总结

    虚拟硬盘序列号是一个简单但实用的功能,可以帮助你更好地管理和识别虚拟硬盘。如果你有多硬盘虚拟机、需要故障排查或编写自动化任务,建议为每个虚拟硬盘设置一个唯一的序列号。对于大多数新手用户来说,这个配置项不是必须的,Unraid 默认会为用户指定特定的序列号,因此这是一个可以逐步探索的高级功能,但理解它的作用可以为你未来的虚拟机管理带来更多便利。
    5️⃣ 虚拟网络(Network)
    notion image
    网络 MAC(Network MAC)
    默认情况下,Unraid 会为虚拟机的虚拟网卡随机分配一个符合虚拟网络接口控制器标准的 MAC 地址。MAC 地址就像是网络设备的“身份证”,用于在局域网中唯一标识一个设备。用户可以点击右侧的 🔄 按钮来生成随机的 MAC 地址。
    网络资源(Network Source)
    notion image
    网络资源(Network Source)是一个非常重要的选项,它决定了虚拟机如何与外部网络(包括宿主机和其他设备)进行通信。Unraid 提供了几种常见的网络桥接选项,默认是 virbr0,但你也可以选择 br0vhost0 (或其他的 br1vhost1 之类的选项)。
    br0vhost0 中的数字 0 代表的是网卡的编号,如果你有第二个网卡,那么还会存在 br1vhost1
    • virbr0:默认情况下,Unraid 会使用 libvirt 管理的网络桥接 virbr0virbr0 是隔离网络,选择了此网络的情况下,虚拟机只能与 Unraid 之间进行通信,无法与外界网络相连接。假设你希望创建一个虚拟机用于测试某些网络应用,而不希望它影响宿主机或其他虚拟机的网络环境,那么你可以选择 virbr0
    • br0br0 是 Unraid 系统中常见的一个网络接口,它基于 Linux 的 bridge(桥接)驱动,主要用于桥接主机的物理网卡(例如 eth0 )和虚拟机的虚拟网卡,使虚拟机能够直接访问外部网络。桥接是一种将多个网络接口(物理或虚拟)连接在一起的技术,形成一个逻辑上的网络,使这些接口能够共享同一个网络段。如果你希望你的虚拟机能够正常联网,并且能够访问内网上的其他设备,那么请选择 br0
    需要说明的是,只有在 Unraid 的网络设置中开启桥接功能之后,才会有 br0 这一网络资源选项:
    notion image
    如果没有启用桥接功能,那么你会在网络资源中看到另一个选项 —— vhost0
    notion image
    什么是 vhost0
    vhost0br0 的作用是一样的,但不同在于 vhost0 基于 macvtap 驱动创建,而 br0 基于 bridge 驱动创建。
    macvtap 是一种 Linux 内核驱动( macvtap 基于 macvlan ),专门用于简化虚拟化桥接网络的配置。它结合了 tun/tapbridge 驱动的功能,允许虚拟机直接连接到主机的物理网络接口。
    理论上来说,在性能和效率上 vhost0br0 优秀,但博主没做过相关的测试,实际使用中没我也没直观感受出来两者的区别,大家有兴趣的可以对比一下。
    另外有一点需要注意的是,选择 vhost0 后,虚拟机上可能会无法访问 Unraid(比如说虚拟机里面无法打开 Unraid 的后台),这时候的解决办法要么是选择 brX 网络,要么是选择 vhost1(或其他的 vhostX ),具体的说明阅读此篇文章《6.12.4 关于失联问题的解决办法以及相关更新说明》
    网络模型(Network Model)
    notion image
    网络模型(Network Model)决定了虚拟机如何与虚拟网络设备交互。不同的网络模型在性能、兼容性和稳定性上各有特点,一般来说选择 virtio-netvirtio 即可。
    • virtio-net / virtiovirtio-netvirtio 是一种专为虚拟化环境设计的高性能网络设备模型,使用了半虚拟化技术(Paravirtualization)。virtio-net 是默认的选项,在稳定性上要比 virtio 好,但 virtio 的性能比 virtio-net 优秀。目前较新的 Win 系统或 Linux 系统都可以支持这两种网络模型,但是一些比较旧的系统,比如 Windows XP 这一类的系统就无法支持。
    • e1000 :是一种完全虚拟化的网络设备,模拟了 Intel 82545EM 千兆以太网网卡。它通过软件模拟硬件网络设备,不需要虚拟机操作系统支持特殊驱动,兼容性广泛。但是,除非是运行一些老旧的系统且无法安装 virtio 驱动,如 Windows XP,否则不建议选择此网络模型,因此它的性能远不如 virtio-netvirtio ,且 CPU 占用率高。
    • rtl8139 :类似 e1000rtl8139 是一种完全虚拟化的网络设备,模拟了 Realtek 8139 以太网网卡。它是一种老旧的网络设备模型,主要为了兼容性而存在,不推荐使用。
    • vmxnet3 vmxnet3 是一种半虚拟化的高性能网络设备,最初由 VMware 开发。它专为虚拟化环境优化,提供了更高的网络性能和更低的延迟,但需要虚拟机操作系统支持 vmxnet3 驱动(通常需要在虚拟机中安装 VMware Tools)。博主很少会用到此网络模型,唯一一次接触此模型是有一次帮一位朋友迁移 VMware 虚拟机到 Unraid 上,然后选择此网络模型让虚拟机可以正常访问网络。
    引导顺序(Boot Order)
    你可以通过设置引导顺序来指定虚拟机启动时优先使用哪个设备进行引导。通常,虚拟机的引导顺序包括硬盘、光盘、网络等设备。
    举个例子:假设你希望在虚拟机启动时首先从网络启动(比如通过 PXE 启动),你可以将网络设备设置为优先引导设备。
    6️⃣ (可选)硬件设备直通
    notion image
    此模块专门用于直通 USB 或 PCI 设备,由于 PCI 设备直通是一个相对比较深一些的话题,这里不会做太深入的说明,后续会另外单独写教程作说明。
    1️⃣ USB 直通
    对于 USB 设备,在设备前面的方框中勾选 ☑️ 后,就可以将 USB 直通到虚拟机中使用,比如你可以将键盘和鼠标直通到虚拟机中,然后就可以通过键鼠外设去操控虚拟机。
    需要注意的是,USB 设备前面有两个方框,分别对应“选择”和“可选的”两种类型:
    notion image
    勾选上“选择”列的意思就是将此 USB 设备进行直通,勾选上“可选的”的意思是当这个 USB 设备不存在了,那么不会影响虚拟机的正常启动。
    举个例子,比如说你将一个键盘插入到 Unraid 上,然后在虚拟机设置中将这个键盘直通给了虚拟机(勾选“选择”框)。如果此时没有勾选“可选的”,那么当你将这个键盘从 Unraid 上移除,且没有取消勾选“选择”框(取消直通),那么此时是无法启动虚拟机的,系统会提示你所要直通的 USB 设备不存在。你必须先取消掉“选择”框,更新虚拟机配置,然后才可以再次正常启动虚拟机。而“可选的”功能意义就在于,即使你拔掉了键盘,不需要取消 USB “选择”框的情况下也可以正常启动虚拟机。
    2️⃣ 其他 PCI 设备直通
    notion image
    常见的 PCI 设备包括网卡(如上图)、固态硬盘或显卡等(但显卡并不在此模块进行直通,会另外单独说明)。
    需要注意的是,PCI 设备直通往往先需要到 工具 - 系统设备 中,将需要直通的设备绑定到 vfio-pci 之后(需要重启),再在虚拟机中勾选进行直通:
    打上勾,然后点击 在系统引导时..VFIO 进行绑定
    打上勾,然后点击 在系统引导时..VFIO 进行绑定
    vfio-pci 是一个 Linux 内核模块,用于实现设备的 直接硬件访问设备直通。它允许用户空间程序(如虚拟机)直接访问和控制 PCI 设备,而无需通过内核驱动。在 Unraid 中,vfio-pci 通常用于将物理 PCI 设备(如 GPU、网卡、USB 控制器等)直通给虚拟机(VM),以便虚拟机可以独占使用这些设备。
    重启之后,在需要直通的设备前面打上勾 ☑️ ,并更新虚拟机配置,启动虚拟机后即可在虚拟机里面调用所直通的 PCI 设备:
    notion image

    3. 运行虚拟机并安装 Windows 11 系统

    在上文,博主详细说明了虚拟机配置项中各项主要参数的具体细节,在这里我们将开始正式安装 Windows 11 系统。博主配置了一个 4C 4G 的虚拟机(2 x 100G 虚拟硬盘),参考配置如下:
    Win 11 虚拟机参考配置
    notion image
    notion image
    notion image
    以下是具体安装过程和注意细节:
    ⚠️ 先不着急启动虚拟机
    当配置好了虚拟机的各项参数之后,博主建议取消勾选 创建后启动虚拟机 选项:
    notion image
    然后点击 创建
    1️⃣ 手动启动虚拟机,然后按下任意键进入系统安装界面
    选择虚拟机的 Start with console(VNC) 启动虚拟机:
    手动启动虚拟机
    手动启动虚拟机
    驱动虚拟机之后,你会看到下图:
    Press any key to boot from cd or DVD —— “按任意键从 CD 或 DVD 启动”
    此时你需要按下任意键来进入系统安装界面:
    notion image
    但是,有不少时候当你启动虚拟机时,上述的 VNC 网页窗口未能及时弹出,而由于 Press any key to boot from cd or DVD 的提示只停留 3s 左右,所以当你未能及时按下键盘上的任意键,你会错过安装镜像的加载提示,此时会出现以下界面:
    notion image
    此时按下任意键,就会进入 BIOS 的启动项管理界面:
    notion image
    此时你需要进入 Boot Manager 选项,选择 UEFI QEMU DVD-ROM … 选项来加载系统安装镜像:
    notion image
    第一个 UEFI QEMU DVD-ROM … 选项是 win 系统安装镜像,第二个 UEFI QEMU DVD-ROM … 选项是 virtio 驱动镜像
    第一个 UEFI QEMU DVD-ROM … 选项是 win 系统安装镜像,第二个 UEFI QEMU DVD-ROM … 选项是 virtio 驱动镜像
    此时会重回 Press any key to boot from cd or DVD 界面,然后再及时按下键盘的任意键加载即可:
    notion image
    成功进入系统安装界面:
    notion image
    2️⃣ 加载 virtio 驱动,执行系统安装
    选择语言和地区(默认即可):
    notion image
    选择 安装 Windows 11 ,勾选同意确认框
    选择 安装 Windows 11 ,勾选同意确认框
    没有密钥的情况下选择跳过密钥输入
    没有密钥的情况下选择跳过密钥输入
    建议选择专业版
    建议选择专业版
    在选择分区进行安装系统的时候,你会看到并没有列出我们为虚拟机所添加的虚拟硬盘:
    notion image
    那是因此由于我们的虚拟硬盘所采用的模拟接口是 virtio,而此时 Windows 安装镜像并没有包含 virtio 的驱动,所以这时候我们需要先加载 virtio 的驱动之后,才可以进行下一步的安装:
    notion image
    notion image
    notion image
    notion image
    选择安装在第一个虚拟磁盘上面,然后点击下一步:
    notion image
    notion image
    等待安装完成:
    notion image
    3️⃣ 跳过联网初始化
    目前 Windows 11 系统在初始化的时候,默认会联网进行安装。而由于在虚拟机里面我们尚未配置虚拟网卡的驱动,Windows 系统无法联网,这会阻碍我们的系统初始化安装,所以我们可以通过以下方法跳过联网安装这一过程:
    1. 按下:Shift + F10
    1. 输入:oobe\BypassNRO.cmd
    1. 回车执行
    notion image
    此时会重新进入系统初始化界面,接下来就可以正常初始化了:
    notion image
    在联网配置界面,先选择不联网:
    notion image
    后续的配置就正常按读者个人喜爱设置即可,没有特别需要注意的地方(在配置密码的时候建议设置一个密码,方便后续使用远程桌面)。
    notion image
    等待系统完成初始化:
    notion image
    完成初始化:
    notion image
    4️⃣ 安装 virtio 驱动
    打开资源管理器:
    或按下 开始键 + E
    或按下 开始键 + E
    notion image
    notion image
    notion image
    notion image
    notion image
    notion image
    notion image
    notion image
    安装完成
    安装完成
    同样的,再继续安装另一个驱动:
    notion image
    notion image
    notion image
    5️⃣ 配置第二块虚拟硬盘
    在本教程示例中,我们给虚拟机配置了两块 100G 的虚拟硬盘,其中一块已经用于安装 Windows 11 系统,现在需要配置第二块虚拟硬盘用于其他用途:
    进入磁盘管理:
    notion image
    此时会自动弹出初始化磁盘的选项,点击确定即可:
    notion image
    如果你不小心关闭了,也不要紧,右键点击 磁盘1 的空白处,选择 初始化磁盘 即可:
    notion image
    初始化磁盘后,右键点击分区的空白处,点击 新建简单卷
    notion image
    notion image
    保持数值默认(即最大化):
    notion image
    选择一个分区下一步即可:
    由于 windows 的系统安装镜像和 virtio 的镜像目前还在 windows 虚拟机当中运行,所以当前并没有 D 盘符可以使用,如果读者希望给这个虚拟硬盘的分区分配盘符 D,那么取消掉这两个镜像之后就可以释放出 D 盘符了。
    notion image
    卷标 是分区的名称,可自行更改:
    notion image
    notion image
    notion image

    4. Windows 虚拟机优化

    由于 Windows 系统运行在虚拟机中,与现实物理环境会有本质的区别,因此可以通过以下的一些配置去优化 Windows 系统在虚拟机中的运行环境。
    我一般习惯用自带的远程桌面连接到虚拟机
    notion image
    notion image
    notion image
    记下 IP 地址:
    notion image
    在你自己的电脑上,按下 🪟 + R 调出运行窗口,输入 mstsc 打开远程桌面:
    notion image
    输入 IP 地址:
    notion image
    输入账号密码进行链接即可:
    notion image
    1️⃣ 更改电源管理策略:关闭快速启动、休眠、熄屏等
    在开始菜单中输入以下命令:
    notion image
    打开电源管理控制面板后,开启以下选项:
    notion image
    notion image
    notion image
    取消快速启动、睡眠和休眠功能:
    notion image
    notion image
    取消显示器关闭和进入休眠状态:
    notion image
    高级电源设置中取消硬盘休眠:
    notion image
    取消混合睡眠:
    notion image
    最后,在开始菜单中输入以下命令执行:
    notion image
    至此完成关于电源的配置。
    2️⃣ 关闭相关系统服务
    输入 service ,打开 服务 管理:
    notion image
    找到 Windows Search 服务,将其停止、关闭:
    notion image
    notion image
    3️⃣ 禁用碎片整理
    notion image
    notion image
    notion image
    取消计划:
    notion image
     
    (未完待施工🚧)
    上一篇
    解决 Transmission 4.x 版本主题问题(transmission-web-control)
    下一篇
    Unraid 7.0 新手入门系列:使用 Docker

    评论
    Loading...