Featured image of post ESXi 将虚拟磁盘镜像模拟为 USB 设备

ESXi 将虚拟磁盘镜像模拟为 USB 设备

- 让虚拟磁盘镜像模拟为 USB 设备

背景

今天在家里的 R730xd 上折腾 Synology 的引导。继 ARPL 断更、arpl-i18n 删库(版权问题)之后,引导转而采用了 Arc Loader。

在介质上,现有的黑群晖引导介质有这几种:

  • U 盘引导
  • 硬盘引导
  • 虚拟硬盘引导

这里主要介绍最后一种:虚拟硬盘引导。具体来说,是把引导镜像 synoboot.vmdk 挂到虚拟机的 USB 控制器上,让虚拟机把它当成一个 U 盘,和实体机插 U 盘引导的形态保持一致:

原理示意

准备工作

  • ESXi 启用 SSH;
  • 能通过 SSH 连接到 ESXi。

操作步骤

  1. 新建虚拟机,唯一需要注意的是:删除所有的 USB 控制器,重新添加一个 USB 控制器,并选择 USB 3.1,如图所示:

    添加 USB 控制器

    选择 USB 3.1

  2. 将引导镜像上传到 ESXi 的数据存储中,可以通过 scp 等方式上传,也可以用 ESXi 的 Web UI 上传。我这里放在虚拟机目录下:/vmfs/volumes/datastore1/Synology/synoboot.vmdk。

  3. 在虚拟机关机状态下,通过 SSH 连接到 ESXi,用 vi 编辑 vmx 虚拟机配置文件:

    这里假设我的虚拟机名字为 Synology。

    1
    
    vi /vmfs/volumes/datastore1/Synology/Synology.vmx
    

    在文件末尾添加以下内容:

    1
    2
    3
    
    usb_xhci:3.present = "TRUE"
    usb_xhci:3.deviceType = "disk"
    usb_xhci:3.fileName = "synoboot.vmdk"
    
    • usb_xhci:挂在 xHCI(USB 3.x)控制器上,所以第 1 步要添加 USB 3.1 控制器;
    • deviceType = "disk":把这个设备作为 USB 磁盘呈现给虚拟机;
    • fileName:引导文件的虚拟磁盘。这里写的是相对路径,相对于 vmx 文件所在的目录,也就是上一步上传的位置。
  4. 启动虚拟机,继续后续的引导配置即可。

效果:

result

参考

由 Hugo 强力驱动