同时定制了ubuntu kylin 14.04 iso,里面包含了使用和管理kvm的相关软件包。我用这个定制的iso文件制作了一个live usb,然后用live usb往我的机器上安装ubuntu kylin 系统。在使用虚拟机的时候遇到奇怪的问题:
(1)从硬盘启动ubuntu kylin,用virt-manager创建kvm虚拟机,完成windows 7安装,然后用“virsh edit <虚拟机名称>”修改虚拟机配置如下:
代码: 全选
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
......
<qemu:commandline>
<qemu:arg value='-bios'/>
<qemu:arg value='定制BIOS文件的绝对路径'/>
</qemu:commandline>
</domain>
(2)我又用live usb启动我的机器,用virt-manager创建配置一样、使用同一个磁盘镜像文件的虚拟机,用“virsh edit <虚拟机名称>”对配置做了同样的修改,虚拟机能用定制的BIOS文件启动并激活Windows 7。
(3)kvm默认的bios文件是/usr/share/qemu/bios-256k.bin,这实际是真正BIOS文件的符号链接。我从硬盘启动,把这个符号链接改成指向我的定制BIOS文件,设置虚拟机用默认BIOS文件启动,还是不能加载BIOS。
不知道为啥从安装在硬盘上的ubuntu kylin 14.04 启动,不能使用定制的BIOS启动虚拟机。
进一步测试发现:
(1)硬盘启动ubuntu,直接用kvm命令带少数几个参数,是可以用定制的BIOS启动虚拟机并激活Windows。
(2)用virt-manager启动虚拟机,实际也是在后台用kvm命令启动虚拟机,并带了29个参数。但是无论用usb live启动,还是用硬盘启动,附带的29个参数是一致的(只在虚拟机UUID、磁盘映像文件路径、虚拟网卡MAC地址上有差异)。估计是在硬盘启动的UBUNTU Kylin环境中,附带的参数导致无法用定制的BIOS启动。kvm默认bios文件是256k,我自己定制的bios文件是128k。
解决了,但不知道问题的根本原因:
从硬盘启动,bios文件放在/usr/share/qemu目录下就正常,我原先都是放在home目录下。