Ubuntu 使用 kvm 安装 Windows7
在本文中将介绍在Ubuntu等Linux主机中使用KVM虚拟机安装Windows
- 首先简单介绍虚拟机结构及工具
- 安装基本工具
- 如何配置桥接网络
- 开始安装虚拟机
- Windows中virtIO驱动的安装
KVM是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。
一、虚拟机结构及主要工具:
- kvm
CPU虚拟化以及内存虚拟化,但kvm不能模拟其他设备 - qemu-kvm
qemu其本身是纯软件实现的虚拟机但速度较慢。我们使用qemu-kvm版本将kvm整合进来,可以使用qemu单独模拟IO设备(网卡,磁盘)。 - libvirt
Libvirt是用于管理虚拟化平台的开源的API,后台程序和管理工具。它可以用于管理KVM、Xen、VMware ESX,QEMU和其他虚拟化技术。
二、开始
1. 检查是否支持虚拟化
# lscpu 检查 Virtualization 是否支持虚拟化技术
lscpu
# 或者安装检测工具
sudo apt update
sudo apt-get install cpu-checker
sudo kvm-ok
# 若成功则会显示以下内容
# INFO: /dev/kvm exists
# KVM acceleration can be used
2.安装KVM及其工具
# 安装
sudo apt install qemu qemu-kvm libvirt-bin bridge-utils virt-manager
# 启动libvirtd服务以及开启开机自启
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
3.配置网络
Ubuntu18.04 后采用netplan管理网络,安装之前我们配置一下网桥,使用虚拟的br0网卡保证虚拟机和实体机处于同一网段。
# 修改配置文件
sudo vim /etc/netplan/50-cloud-init.yaml
以下是桥接网卡br0为固定IP地址
# ens33 为本机实体网卡
# address 需要配置本机的IP地址
# gateway4 为IPv4网关
# nameservers 为DNS配置
network:
version: 2
ethernets:
ens33:
dhcp4: no
dhcp6: no
bridges:
br0:
interfaces: [ens33]
dhcp4: no
addresses: [192.168.1.170/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1]
修改完毕保存后
# 应用配置
sudo netplan apply
# 查看br0配置是否正确
ip addr
4.开始安装虚拟机
我们使用命令行在服务器安装所以使用virt-install
工具。使用示例如下,请按需修改。
- name: 虚拟机名字
- memory: 分配内存
- vcpus: 虚拟cpu数量
- disk: 需要保存磁盘文件位置
- cdrom: windows 安装镜像位置
- vnc: 配置时记得修改密码('mima')
- network: 网络模式配置成桥接
virt-install \
--name=TEST \
--os-variant=win7 \
--memory=512 \
--vcpus=1 \
--disk path=/media/Storage/VM/TEST.img,size=40 \
--accelerate \
--cdrom /media/Storage/cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso \
--graphics vnc,listen=0.0.0.0,password=mima,port=5977 \
--network bridge=br0,model=virtio \
--noautoconsole
5.使用VNC客户端登陆服务器继续安装
下载VNC客户端
VNC viewer 客户端官方地址
使用 VNC viewer登陆你设置的VNC地址,并安装系统。
6.安装网卡驱动
安装完毕后,win7在这里是没有网卡驱动的,所以我们下载驱动盘,并使用virsh加载。
- 驱动盘的地址
# 弹出之前的系统安装盘并插入下载盘
virsh change-media win7 hdb --eject
virsh change-media win7 hdb /media/Storage/virtio-win.iso --insert
- 打开设备管理器,右键未知设备,选择更新驱动。
- 选择手动查找位置,并选择自己系统的驱动文件夹。
配置网络
- 手动配置IP
参考
KVM libvirt 的基本用法
Getting started with virtualization
Creating Windows virtual machines using virtIO drivers