书接上回,kvm安装Windows7旗舰版_zsk_john的博客-CSDN博客
kvm的相关介绍在此就省略了,同样的配方同样的味道,还是使用xml文件安装kvm虚拟机,但,Linux的安装和Windows的安装是有很大不同的。
本文中已经安装好的kvm镜像文件,安装用的ISO文件以及配置文件都放在网盘里了,下载地址:
链接:https://pan.baidu.com/s/1Lss524AqnKcPs3ZT-pgZ5g
提取码:kvms
一,建立一个安装用的xml文件。主要的安装配置linux_mini.xml文件内容如下:此文件我们定义了这个虚拟机的名字是linux_mini,挂载了一个硬盘,该硬盘的格式是qcow2,使用的驱动是virtio,挂载了一个光驱,光驱内装载系统安装文件,文件名称是CentOS-7-x86_64-Minimal-1708.iso,使用的驱动是ide。vnc的端口定义的是5992,使用的vnc模式是vga。
- <!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using: virsh edit linux_mini or other application using the libvirt API. --> - <domain type="kvm"> <name>linux_mini</name> <uuid>187ca777-a965-4777-8e95-c1f0cfe2a363</uuid> <memory unit="KiB">548576</memory> <currentMemory unit="KiB">548576</currentMemory> <vcpu placement="static">2</vcpu> - <os> <type arch="x86_64" machine="pc-i440fx-rhel7.6.0">hvm</type> <boot dev="hd" /> </os> - <features> <acpi /> <apic /> </features> - <cpu mode="host-model" check="partial"> <model fallback="allow" /> </cpu> - <clock offset="utc"> <timer name="rtc" tickpolicy="catchup" /> <timer name="pit" tickpolicy="delay" /> <timer name="hpet" present="no" /> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> - <pm> <suspend-to-mem enabled="no" /> <suspend-to-disk enabled="no" /> </pm> - <devices> <emulator>/usr/libexec/qemu-kvm</emulator> - <disk type="file" device="disk"> <driver name="qemu" type="qcow2" /> <source file="/opt/linux.img" /> <target dev="vda" bus="virtio" /> <address type="pci" domain="0x0000" bus="0x00" slot="0x06" function="0x0" /> </disk> - <disk type="file" device="cdrom"> <driver name="qemu" type="raw" /> <source file="/opt/CentOS-7-x86_64-Minimal-1708.iso" /> <target dev="hda" bus="ide" /> <readonly /> <address type="drive" controller="0" bus="0" target="0" unit="0" /> </disk> - <controller type="usb" index="0" model="ich9-ehci1"> <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x7" /> </controller> - <controller type="usb" index="0" model="ich9-uhci1"> <master startport="0" /> <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x0" multifunction="on" /> </controller> - <controller type="usb" index="0" model="ich9-uhci2"> <master startport="2" /> <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x1" /> </controller> - <controller type="usb" index="0" model="ich9-uhci3"> <master startport="4" /> <address type="pci" domain="0x0000" bus="0x00" slot="0x04" function="0x2" /> </controller> <controller type="pci" index="0" model="pci-root" /> - <controller type="ide" index="0"> <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1" /> </controller> - <controller type="virtio-serial" index="0"> <address type="pci" domain="0x0000" bus="0x00" slot="0x05" function="0x0" /> </controller> - <interface type="network"> <mac address="52:54:00:89:52:23" /> <source network="default" /> <model type="virtio" /> <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0" /> </interface> - <serial type="pty"> - <target type="isa-serial" port="0"> <model name="isa-serial" /> </target> </serial> - <console type="pty"> <target type="serial" port="0" /> </console> - <channel type="unix"> <target type="virtio" name="org.qemu.guest_agent.0" /> <address type="virtio-serial" controller="0" bus="0" port="1" /> </channel> - <input type="tablet" bus="usb"> <address type="usb" bus="0" port="1" /> </input> <input type="mouse" bus="ps2" /> <input type="keyboard" bus="ps2" /> - <graphics type="vnc" port="5992" autoport="no" listen="0.0.0.0"> <listen type="address" address="0.0.0.0" /> </graphics> - <video> <model type="vga" vram="16384" heads="1" primary="yes" /> <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" /> </video> - <memballoon model="virtio"> <address type="pci" domain="0x0000" bus="0x00" slot="0x07" function="0x0" /> </memballoon> - <rng model="virtio"> <backend model="random">/dev/urandom</backend> <address type="pci" domain="0x0000" bus="0x00" slot="0x08" function="0x0" /> </rng> </devices> </domain>
第一个文件,磁盘文件,该文件的生成命令为:
qemu-img create -f qcow2 linux.img 15G
第二个文件,也就是ISO文件,上传到opt目录下即可。
三,启动前,我们应该要检查一下xml里的boot配置,确保是cdrom,也就是这段是cdrom:
<os> <type arch='x86_64' machine='pc-i440fx-rhel7.6.0'>hvm</type> <boot dev='cdrom'/> </os>
四,直接使用xml文件启动虚拟机,开始安装,安装命令为:
virsh create linxu_mini.xml
但是,很可惜,如果直接安装的话,会有软锁报错,因此,我们需要将内核升级成高版本的稳定内核。
相关问题说明见本人博客:关于kvm安装Linux时的CPU soft lockup报错解决方案_zsk_john的博客-CSDN博客
这个bug修复后,在进行安装就和普通的安装一样了,只是建议分区的时候只划一个根分区和一个非常小的swap分区即可。具体分区方法过于基础,再次不予讨论。
这样的一个镜像在安装完毕后并重启kvm虚拟机后悔固化到前面所建立的linux.img 文件内,该文件是比较小的,大概会只有1.3G。
kvm的强大之处在于你只需要拷贝前面建立所用的xml文件和linux.img 文件,在其它的有kvm的环境机器上就可以一键启动一个linux系统了,虽然这个kvm镜像没有经过定制化,比如,网络和一些基础软件没有配置和安装,但,基本是开箱即用啦。