ubuntu 20.04 kvm安装windows
记录一下kvm安装windows过程中的步骤以及注意点。
先说明一下环境:
- host: ubuntu server 20.04
- vm: windows server 2019
安装前准备
- winddows server 2019 的镜像: 可以去msdn I tell you上下载
- virtio驱动:注意windows server 2019对应的是0.1.171, 下载其中的
virtio-win-0.1.171_amd64.vfd
文件 : 下载地址
安装kvm
1 | sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager |
配置网络
这里使用桥接模式, 这样就可以保证虚拟出来的windows server与主机是平级的, 其他设备和该虚拟机能够互通。
编辑文件 /etc/netplan/00-installer-config.yaml
(每个人在/etc/netpaln下的文件名可能不一样)
1 | network: |
有几点需要注意:
- eno1是另外一个网卡, 没用, 可以不用配置
- 此处使用的是网卡是enp2s0
- 设置桥接的关键是bridges配置, 此处指定了虚拟机的IP: 10.0.0.240, 后续都会用这个IP来访问虚拟机
编辑保存完之后, 执行sudo netplan apply
安装虚拟机
上传文件
- 新建文件夹
mkdir -p /opt/kvm/ws2019
- 将之前准备好的windows server镜像文件和virtio驱动文件上传到该文件夹下, 例如:
- cn_windows_server_2019_updated_march_2019_x64_dvd_c1ffb46c.iso
- virtio-win-0.1.171_amd64.vfd
创建虚拟硬盘文件
1 | qemu-img create -f qcow2 /opt/kvm/ws2019/win_server_2019.qcow2 50G |
此处创建的虚拟硬盘大小为50G。
创建虚拟机
1 | virt-install \ |
对其中几项进行说明:
- 分配给虚拟机的vCPU个数由sockets、cores、threads三个参数的乘积来控制,sockets指代CPU插槽数目,cores指代每个插槽芯片的核心数,threads指代那个核心的超线程,如上所示创建的虚拟机共有4个逻辑cpu。
- network中填的网络名就是配置桥接网络时指定的名称。
- listen 指代的是虚拟机的VNC监听接口,默认是localhost,
0:0:0:0
指带所有的IPv4接口,::
指代所有接口,包括IPv4和IPv6。password是vnc连接的密码, port是vnc连接的端口 - 顺便说一下, 如果要安装linux虚拟机, 需要将os-type设置为
linux
windows server 安装
- 使用vnc软件连接虚拟机,例如MobaXterm, 地址: 10.0.0.240, 密码:12358, 端口:5910
- 进入windows server安装界面,使用自定义, 安装过程会出现看不见磁盘的情况,是因为没有加载virtio驱动的原因。
- 选择“加载驱动”,“浏览”,找到“软盘驱动器”,选择 amd64 -> Win10, 然后点击确定, 会发现有两个驱动,一个是Ethernet网卡,一个SCSI磁盘,操作两次驱动加载完成后,磁盘就出现了,继续安装即可。
注意:在安装的过程中, 可能会出现无法连接的问题, 不要慌, 按如下步骤执行
virsh undefine [name]
name是虚拟机名称- 然后继续执行之前的virt-install命令
虚拟机管理常用命令
可通过lib-virt的virsh
来完成虚拟机生命周期管理。
1 | 查看虚拟机运行状态 |
要彻底删除某个虚拟机, 需要如下几个步骤:
- virsh destroy [name]
- 删除/etc/libvirt/qemu/下的同名xml文件
- 重启libvirt服务 service libvirtd restart
- 删除创建的虚拟硬盘文件
修改已有虚拟机配置
1 | 关闭虚拟机 |
参考资料:
评论