Gra*_*eme 45 linux-kvm windows-10
我已经使用 IDE 磁盘安装了 Windows 10 虚拟机,现在想更改磁盘以使用 Virtio 驱动程序。
对于其他版本的 Windows,这个问题中的方法似乎已经足够了 - How to migrate an IDE VM to a virtio VM?
但是,对于 Windows 10,这会导致INACCESSIBLE_BOOT_DEVICE问题。
我知道首选方法是从一开始就使用 Virtio 设备,并在出现提示时安装适当的 virtio 驱动程序。不幸的是,我在更改 KVM 中的 CD 时遇到了一些单独的问题(我也无法让 2 个 CDROM 设备工作)。
有没有办法在不重新安装的情况下解决这个问题?
类似的问题在这里 - https://me.m01.eu/blog/2015/03/windows-10-kvm-and-iscsi/#comment-36090
小智 43
所有答案都是正确的,但在安装 virtio 驱动程序后,您可能需要执行一些额外的步骤。以下是我遵循的步骤:
打开提升的命令提示符并通过键入将 VM 设置为启动到安全模式
bcdedit /set {current} 最小安全启动
关闭 VM 并将引导设备类型更改为 virtio。
启动虚拟机。它将进入安全模式。
注意:在安全模式下,所有引导启动驱动程序都将被启用和加载,包括 virtio 驱动程序。由于现在安装了一个微型端口来使用它,内核现在将使它成为要在启动时加载的驱动程序的一部分,并且不会再次禁用它。
在启动的 VM 中重置 bcdedit 设置以允许机器通过键入(再次在提升的命令提示符下)启动到正常模式:
bcdedit /deletevalue {current} 安全启动
完毕。
JPv*_*iel 27
提供了一个相当简单的答案- 并且可能在许多情况下起作用,以及其他选项的提示。如果(像我一样)您无法切换到 IDE 并被迫使用 VirtIO,那么以下替代方法可能会起作用:
drvload e:\viostor\w10\amd64\viostor.inf
dism /image:f:\ /add-driver /driver:e:\viostor\w10\amd64\viostor.inf避免需要摆弄特殊的 Windows 启动 CD/映像和动态“修补”实际的 Windows 安装映像。
请注意,对于这个利基案例,我建议避免启动修复(这对我来说失败了)。加载后它似乎不知道如何包含 vitor.inf,如果您尝试使用它,请小心避免 Windows 10 的 DVD 急于恢复或重新安装所有内容...
DISM 方法的功劳:使用 dism 添加驱动程序
har*_*ymc 11
一般要遵循的步骤是:
详细的程序是:
如果 VM 未启动但已安装驱动程序,您可以尝试执行以下操作:
如果不幸需要最后一步,可能会遇到的另一个困难是 Windows 引导 CD 无法识别 VirtIO 磁盘,因为 Microsoft 未将这些驱动程序包含在其中。在这种情况下,需要创建一个包含这些驱动程序的自定义启动 CD/USB,但请确保您从与安装相同级别的 Windows ISO 启动,获取最新的 ISO(当前为 1511)。
以下是有关如何在 Windows 中集成驱动程序的一些教程:
harrymc 的回答对我来说很好。
我遵循了以下步骤:
小智 6
不幸的是,有可能完美安装驱动程序但仍然得到“无法访问的引导设备”。原因有点令人震惊(我发现):Win 10 安装“记住”了首次安装时所需的驱动程序,并且默认情况下不会在启动时加载其他存储驱动程序。这样做似乎是为了“盗版”——这使得在不同硬件上运行“相同”安装变得困难。在这篇来自 gentoo 论坛的帖子中,有一些关于这个“特性”的很棒的文档。本质如下:
启动时禁止加载的驱动程序可以按如下方式确定: 在注册表项 Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services 中,对于安装已知的每个驱动程序,都有一个子项。此子项的名称只是驱动程序的名称。在每个驱动程序子项中,如果要防止在启动时加载该驱动程序,则将有一个子项“STARTOVERRIDE”。特别是,在 STARTOVERRIDE 子项中有一个名称为 "0" 的参数。如果此参数的值为“3”,则不会在启动时加载。将此值设置为 0 将“覆盖”行为。
我自己只是去 Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services 并搜索“STARTOVERRIDE”。每次我找到它时,如果它下面有一个名为“0”且值为“3”的名称,我将更改为“0”。这似乎有点矫枉过正,您只需要更改需要加载的驱动器即可。就我而言,有几个,我不记得是哪个,所以我只是在那个“服务”部分进行了“F3搜索”。
还有一个最后的提示,当前的、已签名的、virtio 存储不需要,但如果其他人想要使用(尚未)签名的更具实验性的驱动程序,则可能是阅读本文的人:我发现即使在执行上述操作后技巧,我还需要启动到高级选项屏幕并选择 F7(“禁用驱动程序签名验证”)。令人讨厌的是,设置 bcd 标志来禁用驱动程序验证是不够的,因为驱动程序需要在机器读取 BCD 并发现它不需要验证签名之前加载。
总而言之,不是微软最闪亮的时刻。如果您宁愿给合法用户一个虚构的人工蓝屏,而不是让人们(比如)用 NVMe 磁盘替换 SATA 磁盘并让它“正常工作”,那么您真的必须讨厌您的用户。
哇,好多恶作剧。为什么不直接使用Arch Wiki 的 QEMU方法呢?首先你要做好virtio-win-0.1-81.iso准备。从红帽下载。
1 - 创建一个假(虚拟)磁盘$ qemu-img create -f qcow2 fake.qcow2 1G。
2 - 将 Windows 启动驱动器保留为 IDE 或 SATA 或其他驱动器,添加新的假驱动器作为辅助驱动器,但该驱动器的驱动程序应该是virtio.
2a - 如果使用 libvirt,请通过编辑 VM 的 xml 来添加假驱动器,并将以下内容添加到:
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/full/path/to/fake.qcow2'/>
<target dev='vda' bus='virtio'/>
</disk>
Run Code Online (Sandbox Code Playgroud)
2b - 如果使用 QEMU 直接启动您的虚拟机$ qemu-system-x86_64 -m 512 -drive file=windows_disk_image,if=ide -drive file=fake.qcow2,if=virtio -cdrom virtio-win-0.1-81.iso
3 - 启动 VM 并viostor从 Win .iso 安装驱动程序。
4 - 安装后,关闭 Windows VM,删除 xml 配置(如果是 libvirt),删除 fake.qcow2 并启动 Win VM。
5 - 享受吧!
| 归档时间: |
|
| 查看次数: |
63423 次 |
| 最近记录: |