<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>虚拟化 on Tuan's Blog</title><link>https://blog.cloudorz.com/categories/%E8%99%9A%E6%8B%9F%E5%8C%96/</link><description>Recent content in 虚拟化 on Tuan's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>mt</copyright><lastBuildDate>Sun, 01 Nov 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://blog.cloudorz.com/categories/%E8%99%9A%E6%8B%9F%E5%8C%96/index.xml" rel="self" type="application/rss+xml"/><item><title>ESXi 将虚拟磁盘镜像模拟为 USB 设备</title><link>https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/</link><pubDate>Wed, 03 Jan 2024 20:13:37 +0800</pubDate><guid>https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/</guid><description>&lt;img src="https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/cover.svg" alt="Featured image of post ESXi 将虚拟磁盘镜像模拟为 USB 设备" /&gt;&lt;h2 id="背景"&gt;背景&#10;&lt;/h2&gt;&lt;p&gt;今天在家里的 &lt;code&gt;R730xd&lt;/code&gt; 上折腾 &lt;code&gt;Synology&lt;/code&gt; 的引导。继 &lt;code&gt;ARPL&lt;/code&gt; 断更、arpl-i18n 删库（版权问题）之后，引导转而采用了 &lt;a class="link" href="https://github.com/AuxXxilium/arc" target="_blank" rel="noopener"&#10; &gt;&lt;code&gt;Arc Loader&lt;/code&gt;&lt;/a&gt;。&lt;/p&gt;&#10;&lt;p&gt;在介质上，现有的黑群晖引导介质有这几种：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;U 盘引导&lt;/li&gt;&#10;&lt;li&gt;硬盘引导&lt;/li&gt;&#10;&lt;li&gt;虚拟硬盘引导&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;这里主要介绍最后一种：&lt;code&gt;虚拟硬盘引导&lt;/code&gt;。具体来说，是把引导镜像 &lt;code&gt;synoboot.vmdk&lt;/code&gt; 挂到虚拟机的 USB 控制器上，让虚拟机把它当成一个 U 盘，和实体机插 U 盘引导的形态保持一致：&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="原理示意" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/principle.svg"&gt;&lt;/p&gt;&#10;&lt;h2 id="准备工作"&gt;准备工作&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;ESXi 启用 SSH；&lt;/li&gt;&#10;&lt;li&gt;能通过 SSH 连接到 ESXi。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="操作步骤"&gt;操作步骤&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;新建虚拟机，唯一需要注意的是：删除所有的 USB 控制器，重新添加一个 &lt;code&gt;USB 控制器&lt;/code&gt;，并选择 &lt;code&gt;USB 3.1&lt;/code&gt;，如图所示：&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="添加 USB 控制器" class="gallery-image" data-flex-basis="314px" data-flex-grow="130" height="1228" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/add-usb-controller.png" srcset="https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/add-usb-controller_hu_2377dbbac331b018.png 800w, https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/add-usb-controller_hu_ec0eb891a7c9ace8.png 1600w, https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/add-usb-controller.png 1608w" width="1608"&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="选择 USB 3.1" class="gallery-image" data-flex-basis="2289px" data-flex-grow="953" height="160" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/add-usb-controller-2.png" srcset="https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/add-usb-controller-2_hu_c91a954b1b75c888.png 800w, https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/add-usb-controller-2.png 1526w" width="1526"&gt;&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;将引导镜像上传到 ESXi 的数据存储中，可以通过 &lt;code&gt;scp&lt;/code&gt; 等方式上传，也可以用 ESXi 的 Web UI 上传。我这里放在虚拟机目录下：&lt;code&gt;/vmfs/volumes/datastore1/Synology/synoboot.vmdk&lt;/code&gt;。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;在虚拟机&lt;strong&gt;关机&lt;/strong&gt;状态下，通过 &lt;code&gt;SSH&lt;/code&gt; 连接到 &lt;code&gt;ESXi&lt;/code&gt;，用 &lt;code&gt;vi&lt;/code&gt; 编辑 &lt;code&gt;vmx&lt;/code&gt; 虚拟机配置文件：&lt;/p&gt;&#10;&#10; &lt;blockquote&gt;&#10; &lt;p&gt;这里假设我的虚拟机名字为 &lt;code&gt;Synology&lt;/code&gt;。&lt;/p&gt;&#10;&#10; &lt;/blockquote&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;vi /vmfs/volumes/datastore1/Synology/Synology.vmx&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;p&gt;在文件末尾添加以下内容：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;&#10;&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1&#10;&lt;/span&gt;&lt;span class="lnt"&gt;2&#10;&lt;/span&gt;&lt;span class="lnt"&gt;3&#10;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#10;&lt;td class="lntd"&gt;&#10;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;usb_xhci:3.present = &amp;#34;TRUE&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;usb_xhci:3.deviceType = &amp;#34;disk&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;usb_xhci:3.fileName = &amp;#34;synoboot.vmdk&amp;#34;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#10;&lt;/div&gt;&#10;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;usb_xhci&lt;/code&gt;：挂在 xHCI（USB 3.x）控制器上，所以第 1 步要添加 USB 3.1 控制器；&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;deviceType = &amp;quot;disk&amp;quot;&lt;/code&gt;：把这个设备作为 USB 磁盘呈现给虚拟机；&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;fileName&lt;/code&gt;：引导文件的虚拟磁盘。这里写的是相对路径，相对于 &lt;code&gt;vmx&lt;/code&gt; 文件所在的目录，也就是上一步上传的位置。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;启动虚拟机，继续后续的引导配置即可。&lt;/p&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;效果：&lt;/p&gt;&#10;&lt;p&gt;&lt;img alt="result" class="gallery-image" data-flex-basis="1707px" data-flex-grow="711" height="52" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.cloudorz.com/p/use-virtal-disk-img-as-usb-device/result.png" width="370"&gt;&lt;/p&gt;&#10;&lt;h2 id="参考"&gt;参考&#10;&lt;/h2&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;a class="link" href="https://snailium.com/server/xpenology-complete-virtualization-in-esxi.html" target="_blank" rel="noopener"&#10; &gt;在 ESXi 中完美虚拟 Xpenology DSM 6.2&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;</description></item></channel></rss>