我正在尝试在 KVM 上安装 Windows Server 2012。主机系统是 Ubuntu Server 14.04。我想使用逻辑卷(例如 /dev/VG/win)作为客户系统的主设备。但是,安装过程在我选择驱动器时停止。未找到驱动器,并要求我选择(已签名的)驱动程序。我尝试了几个驱动程序映像,但到目前为止还没有找到可用的。如果我为客户系统使用映像文件,则一切都正常。
这是我的 kvm 配置的设备部分:
<os>
<type arch='x86_64' machine='pc-1.0'>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
<bootmenu enable='yes'/>
</os>
...
<devices>
<emulator>/usr/bin/kvm-spice</emulator>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/data/virtio-win-0.1.102.iso'/>
<target dev='hda' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/dara/Win.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
<disk type='block' device='disk'>
<driver name='qemu' type='raw'/>
<source dev='/dev/VG/win'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
...
我尝试了几种变体(使用 virt-manager 和 virt-install),但都没有成功。有没有办法定义 LVM 卷,以便 Windows 可以识别它?或者我在哪里可以找到可用的驱动程序?
编辑:我系统地尝试了驱动器类型(总线等通过 virt-manager 配置)和驱动程序的每种组合(这里和下面发布的 fedora 链接),但都没有奏效。唯一的成功是,对于 virtio,驱动器出现在“选择驱动程序”对话框中,并且 viostor 驱动程序(来自 fedora 链接)被接受。但是,磁盘仍然没有出现在安装对话框中。我相应地更改了上面的 conf 摘录。
答案1
您可以尝试<target dev='sda' bus='scsi'/>
(删除控制器引用)并查看安装过程中是否显示磁盘。最佳配置是<target dev='vda' bus='virtio'/>
,但为此您需要virtio 驱动程序来自 Fedora;另请参阅https://serverfault.com/a/650681/100793。
答案2
由于我尝试了感觉像 5000 万次安装,因此我使用了以下解决方法:
- 创建一个映像文件并在其上放置一个单独的 NTFS 分区(以防止 Windows 创建其启动分区)
- 在 img 文件上安装 windows
- 将 LVM 驱动器添加到 KVM 并在 Windows 中安装 Fedora 驱动程序
- 关机并将映像分区“dd”到 LVM
- 从 KVM 中删除图像文件,从 LVM 启动即可。