我想从 Windows XP 创建 Windows XP 客户机升级我有一个 CD,以及我手头上的几个完整版本之一。但是,当我到达安装程序提示我插入完整版本 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
如果我尝试指定多个 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.
答案1
virt-install 似乎本身不支持多个 CD ROM。幸运的是,有一个相当直接的方法可以让它支持多个 CD ROM:
使用 virt-install 创建带有第一张 CD-ROM 的虚拟机,在本例中名为
xpsp1
。在后台,libvirt 会创建一个 XML 配置文件。现在关闭机器 (virsh destroy xpsp1
);您只对 XML 文件感兴趣。打开 XML 文件,该文件位于
/etc/libvirt/qemu/
(例如/etc/libvirt/qemu/xpsp1.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>
复制粘贴此块并更改第二张 CD-ROM 的设置。也就是说,您需要更改
<source file=...>
(其他文件的路径)、<target dev=...>
(例如hdd
)和<address unit=...
(例如 1)重新启动机器(
virsh create /etc/libvirt/qemu/xpsp1.xml
)并且两张 CD 应该可以被识别。
答案2
因为您不能使用 --cdrom 两次,所以您可以--disk ...,device=cdrom,bus=ide
改用 you。
这个对我有用:
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