跳到主要内容

VM 转换与迁移

在合并硬件、保留遗留系统或在虚拟环境中进行升级测试时,您可能需要将物理磁盘转换或将现有系统迁移到 Unraid 上的虚拟机。这个过程适用于Linux和Windows系统,使您可以在Unraid服务器中作为VM运行您的安装。

:::note[Prerequisites]

  • 您的 Unraid 服务器应满足虚拟化的最低硬件要求(见下表)。
  • 源磁盘必须通过 SATA、USB 或作为未分配设备连接到您的 Unraid 服务器。
  • 确保您的 arraycache pool 有足够的可用空间来容纳新的虚拟磁盘映像。
  • 在开始转换或迁移过程之前,备份任何重要数据。

:::

硬件要求

组件最低要求建议以获得最佳性能
CPU启用硬件虚拟化的64位(Intel VT-X/AMD-V具有 VT-d/AMD-Vi 直通功能的多核 CPU
内存8 GB16 GB 或更多
存储SSD 或 NVMe cache pool 需要足够的空间用于 VM 存储的专用 NVMe cache pool
主板/BIOS启用虚拟化的UEFI启用IOMMU/VT-d/AMD-Vi的UEFI

将物理磁盘转换为 VM

将现有的 Linux 或 Windows 系统迁移到 Unraid 服务器中的 虚拟机,可以节省硬件空间,保持旧系统运行或安全地测试新升级。

将物理磁盘转换为 VM

步骤 1: 准备物理磁盘

  1. 通过 SATA 或 USB 将源磁盘连接到您的 Unraid 服务器。
  2. 登录 WebGUI (http://towerhttp://tower.local)。
  3. 点击主界面选项卡。
  4. 启动 array 如果尚未运行。
  5. 未分配设备 中找到您的磁盘。
  6. 请注意设备的字母(如,sdbsdc)和磁盘大小。您需要在您的 %%array|阵列%%%%cache pool|缓存池%% 上至少有这个空间来放置新的 虚拟磁盘

步骤 2: 创建新的虚拟机

参考创建您的虚拟机指南,但有以下例外:

步骤 3: 将物理磁盘转换为 虚拟磁盘 映像

打开终端 (使用 SSH 或本地控制台) 并以 root 身份登录。

使用以下命令将物理磁盘转换为 虚拟磁盘 映像:

qemu-img convert -p -O raw /dev/sdX /mnt/user/[vdisk_share]/[vmname]/vdisk1.img
  • /dev/sdX: 替换为步骤 1 中的设备字母 (例如 /dev/sdb)
  • [vdisk_share]: 您保存 %%VM|虚拟机%% 图片的共享位置
  • [vmname]: 您想要的 %%VM|虚拟机%% 名称

命令分解:

  • qemu-img convert: 此工具用于磁盘映像转换。
  • -p: 显示百分比进度。
  • -O raw: 输出格式设置为 raw (Unraid 默认)。
  • /dev/sdX: 源是您的物理磁盘。
  • /mnt/user/[vdisk_share]/[vmname]/vdisk1.img: 目标是 虚拟磁盘 映像。

等待操作完成。生成的 .img 文件将是您的 %%VM|虚拟机%% 的主磁盘。


将物理磁盘迁移到 VM

您可以直接从 Unraid 虚拟机 (VM) 中的物理磁盘运行 Windows 系统。这种方法有助于在不转换为虚拟磁盘映像的情况下迁移现有的 Windows 系统。如需视觉演示,请查阅 Spaceinvader One 的教程:
如何在 Unraid 虚拟机中传递硬盘、转换磁盘和测试性能 (YouTube)

Choosing 您的迁移方式

有两种常见方式可以将 Windows 安装迁移到 Unraid 中的 VM

物理磁盘直通: 这直接在 VM 中使用原始磁盘。

  • 优点:最快, 无需图像转换。
  • 缺点:占用 SATA 端口; Unraid 在连接到 VM 时无法将此磁盘用于其他用途。

磁盘映像转换: 将物理磁盘转换为 虚拟磁盘 映像(.img 格式)供 VM 使用。

  • Pros: More flexibility, allows the disk to be used as an Unraid share or for VM snapshots.
  • 缺点:需时,还需转换过程的可用空间。

如果您需要简单的迁移或打算双启动磁盘,请选择直通。选择图像转换以获得更好的便携性和备份选项。

:::note[Prerequisites]

  • 在开始之前备份您的 Windows 安装。
  • 准备好空闲的 USB 闪存驱动器以进行恢复工具。
  • 选择一个硬件准备工具,以通过修改驱动程序和硬件抽象层(HAL)来启用在虚拟化硬件上的 Windows 启动:
    • Microsoft Sysprep(免费并内置于 Windows 8.1 及更高版本)
    • Acronis True Image 2025(具有高级迁移功能的商用解决方案)
  • 确保您的 Unraid 服务器有一个空闲的 SATA 或 NVMe 端口用于物理磁盘。

:::

步骤 1: 准备 Windows 磁盘以进行迁移

Sysprep 内置于 Windows 中,消除了独特的系统信息,准备在不同硬件上使用 Windows。

选项 A: Microsoft Sysprep(推荐 - 免费)

Sysprep 内置于 Windows 中,消除了独特的系统信息,准备在不同硬件上使用 Windows。

Before 运行 sysprep
  • 暂时禁用任何杀毒软件。
  • 清理不必要的用户配置文件和临时文件。
  • 修复或删除可能阻止 sysprep 运行的任何问题 Microsoft Store 应用程序。
  1. 下载并安装 Acronis True Image 2025

    • 以管理员身份打开命令提示符。

    • 导航到 sysprep 目录:

      cd C:\Windows\System32\Sysprep
    • 执行 sysprep 进行常规化:

      sysprep.exe /generalize /shutdown /oobe
    • 系统将常规化安装,然后关机。

  2. 在关机后将磁盘安装到您的 Unraid 服务器中。

选项 B: Acronis True Image 2025(商用)

Acronis True Image 2025 带有通用恢复功能,可协助硬件迁移。

  1. 下载并安装 Acronis True Image 2025
  2. 使用附带工具创建可启动恢复媒体:
    • 选择类似 Windows 的界面。
    • 选择与您的 Windows(32 位或 64 位)匹配的体系结构。
  3. 从 Acronis 恢复媒体启动您的 Windows 系统。
  4. 按照屏幕说明将Universal Restore应用到您的Windows磁盘上。这将更新驱动程序和HAL,以便更好地兼容虚拟化硬件。
  5. 关闭系统并将磁盘安装到您的 Unraid 服务器中。

步骤 2: 在 Unraid 中识别物理磁盘

  1. 登录 WebGUI (http://towerhttp://tower.local)。
  2. 进入主界面选项卡。
  3. 启动 array 如果尚未运行。
  4. 在未分配设备中找到您的磁盘。
  5. 注意设备字母(例如,sdbsdc),以在 VM 配置中使用。

步骤 3: 创建新的虚拟机

  1. 转到WebGUI中的**VMs**选项卡。如果缺少该选项卡,请确保启用虚拟化并满足硬件要求。
  2. 点击添加 VM
  3. 点击 Update 保存您的 XML 更改。
    • 设置 BIOSSeaBIOS(如果 SeaBIOS 启动失败,请尝试 OVMF)。
    • 保持 OS 安装 ISO 为空。
    • 指定 VirtIO 驱动 ISO 以优化启动后的性能。
    • 对于主 virtual disk ,选择任意位置和大小(将在下一步中替换)。
    • 取消选中 创建后启动 VM

步骤 5:安装驱动程序

您需要修改 VM 的 XML 配置,以连接您的物理磁盘到 virtual machine

  1. VMs 标签页中,点击 VM 图标,然后从上下文菜单中选择 Edit XML

  2. 向下滚动XML,找到用于主虚拟磁盘的现有<disk>条目。通常指向.img文件,看起来像这样:


    <disk type='file' device='disk'>
    <driver name='qemu' type='raw' cache='writeback'/>
    <source file='/mnt/user/[vdisk_share]/[vmname]/vdisk1.img'/>
    <backingStore/>
    <target dev='hda' bus='virtio'/>
    <boot order='1'/>
    <alias name='virtio-disk0'/>
    <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>

    将此块替换为以下内容,其中 sdX 为设备字母,或者更好的使用 /dev/disk/by-id/[your-disk-id] 以便更可靠的设备分配(参考 [Unraid Docs:在 VM 中使用物理磁盘]):


    <disk type='block' device='disk'>
    <driver name='qemu' type='raw' cache='writeback'/>
    <source dev='/dev/disk/by-id/[your-disk-id]'/>
    <target dev='hdd' bus='sata'/>
    </disk>

    If your disk is IDE, change the bus from "SATA" to "IDE" and the target device from "hdd" to "hda".

    使用 /dev/disk/by-id/ 优于 /dev/sdX 以确保即使在重启或硬件更换后磁盘分配保持一致。

  3. 点击 Update 保存您的 XML 更改。

步骤 5:安装驱动程序

  1. 启动您的 VM
  2. 进入 Windows 后,右键单击开始菜单,选择 设备管理器 以打开它。
  3. 查找带有黄色感叹号标记(表示缺少驱动程序)的设备。右键单击每个并选择更新驱动程序
  4. 选择 在我的计算机上浏览驱动程序
  5. 指向挂载 VirtIO 驱动 ISO 的驱动器(通常为 D: 或 E:)。
  6. 确保 包括子文件夹 被勾选,然后点击 下一步
  7. 对于缺少驱动器的设备重复此过程,通常包括:SCSI控制器、以太网、Balloon 和串行设备。

如果您使用安装自己驱动程序的软件(例如杀毒程序),请记住在迁移后重新安装这些应用程序。

提示

如果您停留在SeaBIOS并显示"从硬盘启动"的消息,这可能是因为您的Windows操作系统使用了UEFI而不是传统BIOS进行安装。在这种情况下,应使用OVMF而不是SeaBIOS作为BIOS类型重新创建VM。大多数现代Windows系统(Windows 8.1、10 和 11)支持UEFI,可能需要OVMF才能成功启动。其余的转换过程保持不变。


从 Xen 到 KVM 的迁移

Historical 上下文

Unraid 从早期的 6.x 版本开始支持 Xen,但在 6.2 版本(2016 年 9 月)后弃用并最终完全移除。本迁移指南适用于从非常旧的 Unraid 安装(2017 年之前)升级到现代版本的用户。

Xen 虚拟机管理程序是一个虚拟化平台,允许多个操作系统在相同硬件上运行。在 Unraid 中,Xen 历史上用于虚拟机,但现在KVM是标准。迁移从XenKVM是利用现代Unraid功能、实现硬件直通和确保与当前版本兼容的必要步骤。

VMXen迁移到KVM的过程根据VM是否设置为半虚拟化(PV)或硬件虚拟化(HVM)客户机而有所不同。本指南专门针对使用Xen的GPLPV驱动程序的Windows VM进行转换,因为它们需要特殊处理。

在开始此过程之前,请始终备份您的Xen虚拟磁盘。并在备份上测试您的迁移以防止数据丢失。

Why 迁移?

Unraid 从版本 6.2 开始不再支持 Xen。现在,KVM 对于 VM 管理、硬件直通和持续更新是必需的。迁移确保您的虚拟机保持安全并与新功能兼容。

Windows 转换步骤

要将Windows VMXen转换为KVM,请按以下步骤操作。记住在开始前,从您的Xen域配置中移除任何PCI设备直通。这些设备可以在迁移完成后放回。

步骤 1:确定您的 VM 是否使用 Xen 的 GPLPV 驱动程序 -,点击展开/折叠
  1. Inside your Xen VM, open Windows Device Manager (press Windows key + X, then select Device Manager).
  2. 展开 网络适配器 并检查设备名称。
    • 如果名称包含 “Xen”,您正在使用 GPLPV 驱动程序。
    • 如果不是,请跳转到关于重启至 KVM 模式的步骤。
提示

如果您不使用 GPLPV 驱动程序,可以跳过接下去的几个步骤并继续从重启至 KVM 模式部分。

步骤 2:为 GPLPV 驱动程序移除准备 Windows - 点击展开/折叠
  1. 以管理员身份打开命令提示符(开始菜单 → 输入 cmd → 右键单击 命令提示符 → 选择 以管理员身份运行)。
  2. 输入以下命令:
    bcdedit -set loadoptions nogplpv
  3. 重启您的 VM。
步骤 1:确定您的 VM 是否使用 Xen 的 GPLPV 驱动程序 -,点击展开/折叠

重启后,使用 Xen Project Wiki 中的全面手动移除过程从系统中完全清除所有 Xen GPLPV 驱动程序。

注意

GPLPV removal requires extensive registry editing and manual file deletion. Follow the Xen Project Wiki instructions exactly as written, as errors can cause system instability or boot failures.

步骤 2:为 GPLPV 驱动程序移除准备 Windows - 点击展开/折叠
  1. 确保启用了 VM 管理器

    • Go to Settings → VM manager.
    • 设置 启用 VM
    • 通过从下拉菜单中选择最新 Windows VirtIO 驱动程序 ISO,下载并点击 下载
  2. 导航至 VMs 标签并点击 添加 VM

  3. 选择与您的原始 Xen 虚拟机匹配的 Windows 版本。

  4. 配置基本设置:

    • 名称:为您的 VM 指定一个描述性的名称。
    • VirtIO 驱动程序 ISO:选择您刚刚下载的版本。
  5. 主 vDisk 位置下:

    • 浏览并选择您现有的 Xen 虚拟磁盘。
  6. 添加一个 临时第二 vDisk

    • 点击绿色加号。
    • 将大小设置为 1M (这将在首次启动时强制 IDE 总线兼容性)。
    • 为位置选择任意临时目录(稍后将移除)。
  7. 其余的图形和声音设置保持默认值,然后点击 创建

  8. If the VM started automatically, stop it:

    • Prefer Stop (avoid Force stop unless the VM is unresponsive).
    • Alternatively, uncheck Start VM after creation when creating the VM.
  9. 编辑 VM 配置:

    • 点击 VM 图标并选择 编辑
    • 使用右上角的切换按钮切换至 XML 视图
  10. 修改主要磁盘 XML:

    • 找到您的主要虚拟磁盘的 <disk> 部分。
    • 移除整个 <address> 行。
    • <target> 标签中将 bus='virtio' 修改为 bus='ide'
    • 点击 Update
Why the temporary disk?

The 1MB temporary disk forces Unraid to assign the primary disk as hda (IDE) instead of vda (VirtIO), allowing Windows to boot without VirtIO drivers initially. This temporary disk will be removed after the driver installation.

步骤 5:安装 VirtIO 驱动程序 - 点击展开/折叠
  1. VMs 标签启动 VM。
  2. 通过点击 VM 图标连接 VNC 并选择 使用控制台 (VNC) 启动
  3. 在启动过程中:
    • Windows 将检测到新硬件但可能无法安装驱动程序。
    • 在提示时选择“以后再重启”。
  4. 打开 设备管理器(按 Win+X 并选择设备管理器):
    • 其他设备 下列出的每个设备安装驱动程序(例如以太网控制器、PCI设备等):
      1. 右键点击设备并选择 更新驱动程序
      2. 选择 在我的计算机上浏览驱动程序
      3. 定位到 VirtIO ISO 驱动(例如,'D:')。
      4. 选择 包含子文件夹
      5. 若有提示,接受 始终信任 Red Hat
  5. 安装 QEMU guest agent
    • 打开文件资源管理器并导航到 D:\guest-agent\
    • 双击 qemu-ga-x64.msi
  6. 关闭 VM。
步骤 4:创建新 KVM 虚拟机 - 点击展开/折叠
  1. 编辑 VM:
    • 通过点击红色减号图标移除临时的第二个 vDisk
    • 确认主要的 vDisk 指向您的原始 Xen 磁盘。
  2. 更新 VM:
    • 点击 Update 保存更改。
  3. 正常启动 VM。
  4. 设备管理器 中验证:
    • 不会出现警告图标。
    • 所有设备都使用 VirtIO 驱动程序(例如,“Red Hat VirtIO 以太网适配器”)。
  5. (可选)启用 VirtIO 以获得更好的性能:
    • 编辑 VM 并切换到 XML 视图。
    • 将主磁盘的 buside 改为 virtio
    • 点击 Update 并重启 VM。
Driver troubleshooting

If you notice errors on devices after migration:

  1. 从 ISO 重新安装 VirtIO 驱动程序。
  2. 检查 Windows 更新,可能会提供更新的驱动程序。
  3. Visit the Red Hat VirtIO Drivers page for the latest versions.