kvm 安装 windows 虚拟机


作者: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
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

关闭SELinux

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

sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

安装一些最基本的服务

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

yum install epel-release net-tools vim unzip zip wget ftp -y
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

安装KVM及其依赖项

yum install qemu-kvm libvirt virt-install bridge-utils -y
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

验证安装结果

下图说明已经成功安装了

lsmod | grep kvm
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

开启kvm服务

并且设置其开机自动启动

systemctl start libvirtd systemctl enable libvirtd

查看状态操作结果

如下图所示,说明运行情况良好

systemctl status libvirtd
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012
systemctl is-enabled libvirtd
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

配置网桥模式

先将 /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 就可以了。

sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

安装虚拟机

准备操作系统安装镜像文件

在本文中将使用和宿主环境一样的 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 写保护,将以只读方式挂载
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

创建虚拟机文件存放的目录

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
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

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

  • virtio-win-stable
    默认,该仓库的版本和RHEL版本关联在一起发布,意味着得到了非常多的测试,很稳定。

  • virtio-win-latest
    该仓库提供最新的build版本,这些版本可能有各种问题,用户需自己承担风险。这个仓库默认是disable的。如果你想从稳定版更新到最新版,可以使用如下命令:

    sudo yum --enablerepo=virtio-win-latest update virtio-win
    
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

安装完成后的文件会存放在/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              
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

查看打开新创建的虚拟机

virsh list --all
virsh start njvm2k8-win

使用VNC链接虚拟机

vncviewer下载地址

sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

使用VNC输入宿主机IP地址 加上端口号 输入虚拟机名字然后打开

sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

{{< alert theme="warning" dir="ltr" >}}
⚠️ 注意

安装的时候找不到硬盘

{{< /alert >}}

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

挂载win镜像

virsh change-media njvm2k8  hdb /usr/share/virtio-win/virtio-win.iso    
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

然后取消挂载的镜像 把系统镜像 从新挂载到系统 进行分区 安装系统

安装完毕重启虚拟机

安装完会重启windows虚拟机

我们查看状态 然后启动虚拟机

sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012
sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

等待安装完成

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

用vnc链接

sre运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

{{< 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运维|Linux运维|自动化运维|kvm安装windows虚拟机|kvm安装windows虚拟机找不到硬盘|kvm安装windows虚拟机找不到网卡|kvm安装windows虚拟机报错|kvm安装widnows2012

作者:SRE运维博客

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

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

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


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容