跳到主要内容

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 使用。

  • 优点:更灵活,允许将磁盘用作 Unraid 共享或用于快照。
  • 缺点:需时,还需转换过程的可用空间。

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

:::note[Prerequisites]

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

:::

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

将Windows系统转移到新硬件上,无论是物理还是虚拟的,可能会因硬件差异导致启动失败。请使用下面的方法之一来准备您的Windows系统:

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

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

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

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

    • 导航到 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. 遵循创建您自己的虚拟机指南,使用以下设置:
    • 设置 BIOSSeaBIOS(如果 SeaBIOS 启动失败,请尝试 OVMF)。
    • 保持 OS 安装 ISO 为空。
    • 指定 VirtIO 驱动 ISO 以优化启动后的性能。
    • 对于主 virtual disk ,选择任意位置和大小(将在下一步中替换)。
    • 取消选中 创建后启动 VM

步骤 4:编辑虚拟机的 XML

您需要修改 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/cache/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>

    如果您的磁盘是 IDE,将总线从 "SATA" 更改为 "IDE"。

    使用 /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. 在您的 Xen VM 内,打开 Windows 设备管理器 (按 Windows 键 + X,然后选择 设备管理器)。
  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 驱动程序,可以跳过接下来的几个步骤,并从进入 KVM 模式部分继续。 :::

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

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

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

  4. 配置基本设置:

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

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

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

  8. 立即强行停止 VM:

    • 点击 VM 图标并选择 强制停止
  9. 编辑 VM 配置:

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

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

:::提示[为何使用临时磁盘?] 1MB 的临时磁盘强制 Unraid 将主磁盘分配为 hda (IDE) 而不是 vda (VirtIO),这使 Windows 可以在没有 VirtIO 驱动程序的情况下启动。该临时磁盘将在驱动程序安装后移除。 :::

步骤 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。

:::提示[为何使用临时磁盘?] 1MB 的临时磁盘强制 Unraid 将主磁盘分配为 hda (IDE) 而不是 vda (VirtIO),这使 Windows 可以在没有 VirtIO 驱动程序的情况下启动。该临时磁盘将在驱动程序安装后移除。 :::

  1. 从 ISO 重新安装 VirtIO 驱动程序。
  2. 检查 Windows 更新,可能会提供更新的驱动程序。
  3. 访问 Red Hat VirtIO Drivers 页面以获取最新版本。 :::