文章目录
- 宿主机的选择
- 方法一:直接用qemu源码安装
- 步骤1:下载好qemu源码,这里我们用qemu-5.1.0
- 步骤2:编译
- 步骤3:创建一个系统盘
- 步骤4:用步骤2编译的qemu-system-x86_64 启动一台Linux虚拟机
- 步骤5:用vnc连接步骤4启动的虚拟机
- 步骤6:就可以接着步骤5开始一步一步的安装对应的系统了
- 方法二:配合libvirt在linux宿主机上安装部署Guest OS (主流操作)
- 步骤1:准备系统盘磁盘文件
- 步骤2:准备guest os的xml文件
- 步骤3:开始安装
- 步骤4:调整xml文件
- 方法三:使用Qemu指令在Windows宿主机安装部署Guest OS
- 步骤1:创建系统磁盘文件
- 步骤2:启动安装
- 步骤3:正常启动
宿主机的选择
- linux作为宿主机时可通过图形界面工具virt-manager或libvirt或qemu指令直接部署Guest OS
- windows作为宿主机时只能使用qemu指令部署Guest OS
方法一:直接用qemu源码安装
步骤1:下载好qemu源码,这里我们用qemu-5.1.0
解压qemu-5.1.0.tar.xz包
步骤2:编译
cd /root/Workplace/qemu-5.1.0
make -j 4
编译结束后,有这样一个目录,下面有对应的二进制文件。其中qemu-system-x86_64 文件即编译后的qemu二进制文件
root@liyuanchao:~/Workplace/qemu-5.1.0# ls x86_64-softmmu/
accel config-devices.mak.old disas.o exec-vary.o gdbstub-xml.d Makefile softmmu
config-devices.h config-target.h dump fpu gdbstub-xml.o migration target
config-devices.h-timestamp config-target.h-timestamp exec.d gdbstub.d hmp-commands.h monitor tcg
config-devices.mak config-target.mak exec.o gdbstub.o hmp-commands-info.h qapi trace
config-devices.mak.d disas.d exec-vary.d gdbstub-xml.c hw qemu-system-x86_64 ubuntu.img
root@liyuanchao:~/Workplace/qemu-5.1.0#
步骤3:创建一个系统盘
qemu-img create -f qcow2 ubuntu.img 20G
步骤4:用步骤2编译的qemu-system-x86_64 启动一台Linux虚拟机
./qemu-system-x86_64 -m 1024 -hda ubuntu.img -cdrom ~/image/ubuntu-18.04.6-live-server-amd64.iso --enable-kvm -vnc 192.168.170.142:33
步骤5:用vnc连接步骤4启动的虚拟机
步骤6:就可以接着步骤5开始一步一步的安装对应的系统了
略
方法二:配合libvirt在linux宿主机上安装部署Guest OS (主流操作)
步骤1:准备系统盘磁盘文件
创建系统磁盘文件
qemu-img create -f qcow2 /images/winsrv2019/winsrv2019.qcow2 50G //预分配50G大小的系统盘,一般刚安装完系统文件实际大小不超过10G,后续使用会增加)
步骤2:准备guest os的xml文件
根据实际情况配置xml模板文件:win_install.xml (如果要放到51hyper上运行,为避免冲突,vnc端口、ip地址、网卡MAC按51服务器/images/network-default.xml文件中递增),这个文件定义了一些guest os的一些基础配置。在/images/network-default.xml中按示例增加vmname的mac地址及ip地址对应项。并执行如下命令使其实时生效:
virsh net-update default add ip-dhcp-host “” --live --config
/* 重点关注以下配置 */
/* 配置guest的名字以及uuid */
<name>winsrv2019</name>
<uuid>9707D4B1-8FAB-4D00-87D9-CF71A21C749A</uuid> // 通过uuid工具生成一个不会重复的uuid
/* 在hd启动项之前,增加cdrom 启动项作为第一启动项目 */
<boot dev='cdrom'/>
<boot dev='hd'/>
/* 配置第一块文件磁盘(系统盘)指向之前创建好的系统磁盘文件 */
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/images/winsrv2019/winsrv2019.qcow2'/>
<target dev='vda' bus='virtio'/> // 如果没有virtio驱动包,此处应该磁盘类型从virtio改为ide,否则识别不到该系统盘
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
/* 配置cdrom用于加载安装系统的ISO文件 */
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/kernel/software/iso/cn_windows_server_2019_updated_july_2020_x64_dvd_2c9b67da.iso'/>
<target dev='hda' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
/* 配置第二个cdrom用于加载virtio驱动包 */
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/images/winsrv2019/virtio-win-0.1.190.iso'/>
<target dev='hdb' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>
/* 配置vnc端口用于vncviewer连接进行界面操作 */
<graphics type='vnc' port='5929' autoport='no' listen='0.0.0.0'> // port=5929(5900+29)vnc客户端连接时使用宿主机 ip:29 形如 172.31.20.51:29即可连接
<listen type='address' address='0.0.0.0'/>
</graphics>
/* 配置网卡MAC地址不要重复 */
<interface type='network'>
<mac address='52:54:00:15:ff:29'/> // MAC地址有6个字节,为了方便习惯最后一个字节就设置成与vnc端口号一致
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
步骤3:开始安装
开始安装window操作系统
/* 开始安装 */
virsh create /images/winsrv2019/win_install.xml
/*
* 使用vncviewer连接host ip:vncport 如 172.31.20.51:29即可看到安装界面。
* 安装过程中选中磁盘时,因为系统盘配置类型为virtio,但windows原生ISO中并没有virtio磁盘驱动,所以在安装界面时选择加载驱动并进行扫描,
* 此时会从配置的第二个cdrom中识别到磁盘驱动viostor,我们选择对应系统版本的驱动安装好之后就能识别到系统盘。
* 如果没有virtio驱动,那就把系统盘配置成ide类型。
*/
步骤4:调整xml文件
将win_install.xml重命名为winsrv2019.xml (一个有意义的名字),并修改以下配置
/* 去掉cdrom启动项 */
<boot dev='cdrom'/>
/* 去掉两个配置cdrom ISO disk */
/* 使新的配置生效 */
virsh define /images/winsrv2019/winsrv2019.xml
下次我们就直接用winsrv2019.xml来启动系统了
方法三:使用Qemu指令在Windows宿主机安装部署Guest OS
步骤1:创建系统磁盘文件
qemu-img create -f qcow2 d:\qemu\winsrv2019.qcow2 50G //预分配50G大小的系统盘,一般刚安装完系统文件实际大小不超过10G,后续使用会增加)
步骤2:启动安装
qemu-system-x86_64 -m 2048M -smp 2 -cdrom F:\windows_iso\cn_windows_server_2019_updated_july_2020_x64_dvd_2c9b67da.iso -hda d:\qemu\winsrv2019.qcow2 -boot d -vnc 0.0.0.0:29 -usbdevice tablet
/* 参数解释 */
-m 配置2048内存
-smp 配置2核cpu
-cdrom 使用ISO文件作为光盘映像(不能同时使用-hdc和-cdrom)
-hda 指定文件作为硬盘(会在上面安装系统),-hda -hdb -hdc -hdd将文件用作硬盘 0、1、2 或 3,硬盘ID跟abcd无需严格的对应关系,一个-hdx就是一块盘
-boot d 启动项配置为d, d通常表示系统第一块cdrom盘
-vnc 0.0.0.0:29 vnc viewer通过本地任何一个ip地址如127.0.0.1:29 连接Guest
-usbdevice tablet 解决vnc鼠标偏移问题
/* 还有其他参数 */
-enable-kvm linux 作为宿主机才支持
-accel hax (windows 宿主机加速,需要安装加速组件) https://www.qemu.org/2017/11/22/haxm-usage-windows/
-spice port=3001,disable-ticketing 使用spice连接:remote-viewer spice://127.0.0.1:3001 更多spice功能:https://www.spice-space.org/spice-user-manual.html
步骤3:正常启动
/* 使用VNC连接 需要安装vncviewer */
qemu-system-x86_64 -m 2048M -smp 2 -hda winsrv2019.qcow2 -vnc 0.0.0.0:29 -usbdevice tablet
/* 使用spice客户端连接 需要安装 remote-viewer*/
qemu-system-x86_64 -m 2048M -smp 2 -hda winsrv2019.qcow2 -spice port=3001,disable-ticketing
/* 对于windows版的qemu 默认可以 */
qemu-system-x86_64 -m 2048M -smp 2 -hda winsrv2019.qcow2