Dan*_*ane 4 windows-xp linux-kvm ubuntu-10.04
我想从我拥有的 windows xp upgrade cd创建一个 windows xp 来宾,以及我周围的几个完整版本之一。但是,当我到达安装程序中提示我插入完整版 cd 的阶段时,安装程序找不到它(更新:我检查了这是否适用于正常安装),即:
安装程序无法读取您插入的 CD,或者 CD 不是有效的 Windows CD。
是否有解决方法,以便我可以安装两个 cd,或者在安装过程中安装新的 cd?
我尝试了挂载 .iso 文件和指定磁盘的各种组合,例如:
$sudo virt-install --accelerate --connect qemu:///system -n xpsp1 -r 2048
--disk ./vm/winxp_sp1.iso,device=cdrom --disk ./vm/windows.qcow2,size=12
--vnc --noautoconsole --os-type windows --os-variant winxp --vcpus 2 -c /dev/cdrom
--check-cpu
Run Code Online (Sandbox Code Playgroud)
如果我尝试指定多个 cdrom 驱动器,则会收到错误消息:
virt-install --accelerate --connect qemu:///system -n xpsp1 -r 2048
--disk ./vm/winxp_sp1.iso,device=cdrom --disk /dev/cdrom,device=cdrom
--disk ./vm/windows.qcow2,size=12 --vnc --noautoconsole --os-type windows
--os-variant winxp --vcpus 2 --check-cpu
Starting install...
ERROR IDE CDROM must use 'hdc', but target in use.
Run Code Online (Sandbox Code Playgroud)
virt-install 本身似乎不支持多个 CD ROM。幸运的是,有一种相当直接的方法可以做到这一点:
使用 virt-install 创建带有第一张 CD-ROM 的虚拟机,在您的例子中名为xpsp1
. 在幕后,libvirt 将创建一个 XML 配置文件。立即关闭机器(virsh destroy xpsp1
);您只对 XML 文件感兴趣。
打开位于/etc/libvirt/qemu/
(例如/etc/libvirt/qemu/xpsp1.xml
)中的 XML 文件。大概。
搜索字符串cdrom
。这应该会引导您找到具有以下值的块:
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/path/to/vm/winxp_sp1.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
Run Code Online (Sandbox Code Playgroud)复制粘贴此块并更改第二张 CD-ROM 的设置。即,您将需要更改<source file=...>
(其他文件的路径)、<target dev=...>
(to,例如,hdd
)和<address unit=...
(to,例如,1)
重新启动机器(virsh create /etc/libvirt/qemu/xpsp1.xml
),应该可以识别两张 CD。
小智 5
因为您不能使用 --cdrom 两次,所以您可以--disk ...,device=cdrom,bus=ide
改为使用。
这个对我有用:
virt-install \
--virt-type=kvm \
--name=win10 \
--ram=4096 \
--cpu=host \
--vcpus=2 \
--os-type=windows \
--os-variant=win10 \
--disk /var/lib/libvirt/boot/win10.iso,device=cdrom,bus=ide \
--disk /var/lib/libvirt/boot/virtio-win.iso,device=cdrom,bus=ide \
--disk /var/lib/libvirt/images/win10.qcow2,size=40,bus=virtio,format=qcow2 \
--network=bridge=br0,model=virtio \
--graphics vnc
Run Code Online (Sandbox Code Playgroud)