关于kvm:kvm-安装-windows-虚拟机

35次阅读

共计 7077 个字符,预计需要花费 18 分钟才能阅读完成。

    • 作者:SRE 运维博客

      博客地址:https://www.cnsre.cn/

      文章地址:https://www.cnsre.cn/posts/211108848062/

      相干话题:https://www.cnsre.cn/tags/kvm/

    • 装置前筹备

验证 CPU 是否反对 KVM

如果后果中有 vmx(Intel)或 svm(AMD)字样,就阐明 CPU 的反对的。

egrep '(vmx|svm)' /proc/cpuinfo

敞开 SELinux

/etc/sysconfig/selinux 中的 SELinux=enforcing 批改为 SELinux=disabled

装置一些最根本的服务

可选项,因为我是刚装置好的 CentOS,所以为了上面不便点,先把一些必要的工具装置下

yum install epel-release net-tools vim unzip zip wget ftp -y

装置 KVM 及其依赖项

yum install qemu-kvm libvirt virt-install bridge-utils -y

验证装置后果

下图阐明曾经胜利装置了

lsmod | grep kvm

开启 kvm 服务

并且设置其开机主动启动

systemctl start libvirtd systemctl enable libvirtd

查看状态操作后果

如下图所示,阐明运行状况良好

systemctl status libvirtd

systemctl is-enabled libvirtd

配置网桥模式

先将 /etc/sysconfig/network-scripts/ 目录下的网卡配置文件备份一份

创立 ifcfg-br0 文件

创立的 br0文件的 IP 地址要和物理网卡的 IP 地址统一,命令 ipconfig 查看物理网卡将不会显示IP

内容如下:

[root@bogon ~]*# vim /etc/sysconfig/network-scripts/ifcfg-br0*

DEVICE=br0
BOOTPROTO=none
DEFROUTE=yes
ONBOOT=yes
TYPE=Bridge
IPV4_FAILURE_FATAL=yes
IPADDR=192.168.1.130
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=221.6.4.66
DELAY=0
USERCE=no

批改原网卡配置

vim /etc/sysconfig/network-scripts/ifcfg-eno1s
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="YES"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eno1"
UUID="bb40d726-8d67-4187-90c3-eb61e1b42d61"
DEVICE="eno1"
ONBOOT="yes"
IPADDR="192.168.1.130"
NETAMSK=255.255.255.0
GATEWAY="192.168.1.254"
DNS1="221.6.4.66"
IPV6_PRIVACY="no"
BRIDGE=br0

重启网络服务

systemctl restart network

应用 ifconfig 验证操作后果, 多了一块网卡 br0,当初拜访宿主机 应用 192.168.1.130 就能够了。

装置虚拟机

筹备操作系统装置镜像文件

在本文中将应用和宿主环境一样的 CentOS7.2,把该文件放到 /home/iso 目录下

挂载 U 盘

[root@nkgtsv01 ~]# fdisk -l
WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

磁盘 /dev/sda:2995.0 GB, 2994995200000 字节,5849600000 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑 / 物理):512 字节 / 4096 字节
I/O 大小(最小 / 最佳):4096 字节 / 4096 字节
磁盘标签类型:gpt
Disk identifier: 434CB2EB-C42E-4B9D-A76B-B759709EC159


#         Start          End    Size  Type            Name
 1         2048       206847    100M  EFI System      EFI System Partition
 2       206848       616447    200M  Microsoft basic
 3       616448   5849597951    2.7T  Linux LVM

磁盘 /dev/mapper/centos-root:214.7 GB, 214748364800 字节,419430400 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑 / 物理):512 字节 / 4096 字节
I/O 大小(最小 / 最佳):4096 字节 / 4096 字节


磁盘 /dev/mapper/centos-swap:17.2 GB, 17179869184 字节,33554432 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑 / 物理):512 字节 / 4096 字节
I/O 大小(最小 / 最佳):4096 字节 / 4096 字节


磁盘 /dev/mapper/centos-home:322.1 GB, 322122547200 字节,629145600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑 / 物理):512 字节 / 4096 字节
I/O 大小(最小 / 最佳):4096 字节 / 4096 字节


磁盘 /dev/mapper/centos-tmp:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑 / 物理):512 字节 / 4096 字节
I/O 大小(最小 / 最佳):4096 字节 / 4096 字节


磁盘 /dev/mapper/centos-data:2333.2 GB, 2333249372160 字节,4557127680 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑 / 物理):512 字节 / 4096 字节
I/O 大小(最小 / 最佳):4096 字节 / 4096 字节


磁盘 /dev/sdb:31.0 GB, 31004295168 字节,60555264 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑 / 物理):512 字节 / 512 字节
I/O 大小(最小 / 最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xcad4ebea            须要挂载的硬盘

   设施 Boot      Start         End      Blocks   Id  System
/dev/sdb4   *         256    60555263    30277504    7  HPFS/NTFS/exFAT
[root@nkgtsv01 ~]# mkdir -p /mnt/udisk
[root@nkgtsv01 ~]# ls
anaconda-ks.cfg
[root@nkgtsv01 ~]# ls /mnt/
udisk  usb
[root@nkgtsv01 ~]# mount -t ntfs-3g /dev/sdb4 /mnt/udisk/
mount: 未知的文件系统类型“ntfs-3g”[root@nkgtsv01 ~]# yum list *ntfs*
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.sjtu.edu.cn
 * epel: mirrors.ustc.edu.cn
 * extras: ftp.sjtu.edu.cn
 * updates: ftp.sjtu.edu.cn
可装置的软件包
ntfs-3g.x86_64                              2:2017.3.23-1.el7                        epel
ntfs-3g-devel.x86_64                        2:2017.3.23-1.el7                        epel
ntfsprogs.x86_64                            2:2017.3.23-1.el7                        epel

已装置:
  ntfs-3g.x86_64 2:2017.3.23-1.el7

结束![root@nkgtsv01 ~]#yum install ntfs-3g.x86_64 -y

[root@nkgtsv01 ~]# mount -t ntfs-3g /dev/sdb4 /mnt/udisk/
The disk contains an unclean file system (0, 0).
The file system wasn't safely closed on Windows. Fixing.

[root@nkgtsv01 ~]#
[root@nkgtsv01 ~]# ls /mnt/
udisk  usb
[root@nkgtsv01 ~]# ls /mnt/udisk/
CentOS-7.2-x86_64-DVD-1611.iso  CentOS-7-x86_64-DVD-1708.iso  maven_storey2.zip
[root@bogon data]# mkdir -p /data/iso
[root@bogon data]# ls
iso  kvm-bak  network
[root@nkgtsv01 ~]# mount  -o loop /mnt/udisk/CentOS-7-x86_64-DVD-1708.iso /data/iso/
mount: /dev/loop0 写爱护,将以只读形式挂载

创立虚拟机文件寄存的目录

mkdir -p /data/kvm-images

{{< alert theme=”warning” dir=”ltr” >}}
⚠️ 留神

对于 virtio-win 驱动

{{< /alert >}}

virtio-win 驱动次要用于 kvm 里的 windows 虚拟机。virtio-win 提供 yum 源装置 rpm 包,virtio 驱动默认会装置在 /usr/share/virtio-win 目录中,可共享于 kvm 里的 windows 虚拟机。

sudo wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
# 增加 repo

该 repo 文件提供两个不同的仓库:

  • virtio-win-stable
    默认,该仓库的版本和 RHEL 版本关联在一起公布,意味着失去了十分多的测试,很稳固。
  • virtio-win-latest
    该仓库提供最新的 build 版本,这些版本可能有各种问题,用户需本人承担风险。这个仓库默认是 disable 的。如果你想从稳定版更新到最新版,能够应用如下命令:

    sudo yum --enablerepo=virtio-win-latest update virtio-win

装置实现后的文件会寄存在 /user/share,内容如下:

/usr/share/virtio-win/*.iso: ISO 镜像,蕴含所有驱动,具体内容前面会形容
/usr/share/virtio-win/*.vfd: 用于 Windows XP 下的 VFD 软驱镜像
/usr/share/virtio-win/drivers: 从 VFD 软驱镜像中提取的文件
/usr/share/guest-agent/*.msi: QEMU Guest Agent 32bit 和 64bit 安装包

其中 ISO 镜像内容为:

NetKVM/: Virtio 网络驱动
viostor/: Virtio 块驱动
vioscsi/: Virtio SCSI 驱动
viorng/: Virtio RNG 驱动
vioser/: Virtio 串口驱动
Balloon/: Virtio 内存气球驱动
qxl/: 用于 Windows 7 及之前版本的 QXL 显卡驱动. (virtio-win-0.1.103- 1 和之后版本会创立)
qxldod/: 用于 Windows 8 及之后版本的 QXL 显卡驱动. (virtio-win-0.1.103- 2 和之后版本会创立)
pvpanic/: QEMU pvpanic 设施驱动 (virtio-win-0.1.103- 2 和之后版本会创立)
guest-agent/: QEMU Guest Agent 32bit 和 64bit 安装包
qemupciserial/: QEMU PCI 串口设施驱动

或者你也能够通过一下方获取

稳定版 virtio-win iso

稳定版 virtio-win x86 floppy

稳定版 virtio-win amd64 floppy

最新版 virtio-win iso

最新版 virtio-win x86 floppy

最新版 virtio-win amd64 floppy

最新版 qemu-ga files

全副下载目录

变更日志

应用 virt-install 创立虚拟机

[root@bogon data]# virt-install --virt-type kvm --name=njvm2k8 --ram=1024 --vcpus=1 --os-type=windows --accelerate --cdrom=/home/kvm_data/iso/cn_windows_server_2008_r2_617396.iso --disk path=/usr/share/virtio-win/virtio-win.iso,device=cdrom --disk path=/home/kvm_data/img/njvm2k8.qcow2,bus=virtio --network bridge=br0 --graphics vnc,listen=0.0.0.0,password=123456,port=5920 --noautoconsole
 

WARNING  无奈连贯到图形控制台:没有装置 virt-viewer。请装置 'virt-viewer' 软件包。WARNING  没有控制台用于启动客户机,默认为 --wait -1
开始装置......
正在调配 'njvm2k8.img'                                   | 200 GB  00:00:00
正在删除磁盘 'njvm2k8.img'                                |    0 B  00:00:00
域装置失败,您能够运行下列命令重启您的域:'virsh start virsh --connect qemu:///system start njvm2k8'
否则请从新开始装置

不要理睬外面提醒的谬误,接着往下走

命令含意

virt-install 
--name= 客户机名称  
--ram 内存(1024)1G 
--vcpus= cpu1 
--os-type= 客户机零碎类型  
--os-variant= win2k8 
--disk path= 客户机文件寄存门路 ,
size= 客户机硬盘大小 200 
--accelerate 
--cdrom(镜像文件门路)--vnc --vncport=vnc 近程端口 5910 
--network bridge= 网卡桥接 br0,model=virtio 
--noautoconsole

关上防火墙上的 5910 端口

因为 VNC 应用的端口默认是 5910 所以须要关上防火墙,防火墙若敞开请疏忽

 firewall-cmd --zone=public --add-port=5910/tcp --permanent              

查看关上新创建的虚拟机

virsh list --all
virsh start njvm2k8-win

应用 VNC 链接虚拟机

vncviewer 下载地址

应用 VNC 输出宿主机 IP 地址 加上端口号 输出虚拟机名字而后关上

{{< alert theme=”warning” dir=”ltr” >}}
⚠️ 留神

装置的时候找不到硬盘

{{< /alert >}}

如果再装置的时候找不到硬盘,请执行一下操作

挂载 win 镜像

virsh change-media njvm2k8  hdb /usr/share/virtio-win/virtio-win.iso    

而后勾销挂载的镜像 把零碎镜像 从新挂载到零碎 进行分区 装置零碎

装置结束重启虚拟机

装置完会重启 windows 虚拟机

咱们查看状态 而后启动虚拟机

期待装置实现

启动之后设置明码 咱们就进入了新的 windows 操作系统

用 vnc 链接

{{< alert theme=”warning” dir=”ltr” >}}
⚠️ 留神
挂载软驱(硬盘驱动 网卡驱动等)正文:网卡驱动要在零碎中装好之后挂载 不然装零碎的时候会提醒找不到光盘镜像
{{< /alert >}}

在宿主机中执行命令

virsh change-media njvm2k8  hdb /usr/share/virtio-win/virtio-win.iso 

VMTools 工具装置实现后, 应用如下命令卸载掉挂载的 VMTools 工具:

a. 如果是 Linux 虚拟机, 执行如下命令卸载 VMTools 工具:

virsh change-media【虚拟机 ID】--eject【vmtools-linux.iso 文件全门路】b. 如果是 Windows 虚拟机, 执行如下命令卸载 VMTools 工具:

virsh change-media【虚拟机 ID】--eject【vmtools-windows.iso 文件全门路】

挂载驱镜像文件到 njvm2k8 主机上

用 vnc 链接

    • 作者:SRE 运维博客

      博客地址:https://www.cnsre.cn/

      文章地址:https://www.cnsre.cn/posts/211108848062/

      相干话题:https://www.cnsre.cn/tags/kvm/

正文完
 0