ubuntu20.04设备启用windows虚拟机

比起君子讷于言而敏于行,我更喜欢君子善于言且敏于行。

目录

[一、virsh 是什么?](#一、virsh 是什么?)

[二、为什么要用 virsh?](#二、为什么要用 virsh?)

三、准备逻辑卷+镜像

四、安装virt-manager

五、准备桥接网络

六、创建windows虚拟机

参数说明

七、windows虚拟机设置IP

八、给windows虚拟机添加D盘


一、virsh 是什么?

virsh 是 libvirt 提供的命令行管理工具,用来管理 KVM/QEMU 虚拟机。

它相当于 VirtualBox/VMware 的图形界面,但全部是命令行操作。

二、为什么要用 virsh?

  • libvirt/KVM 默认不提供 GUI,virsh 是最标准的管理工具

  • 可以通过脚本自动化管理虚拟机

  • 支持远程管理(SSH 连接其他宿主机)

  • 比手动执行 qemu-system 命令更方便、更可控

三、准备逻辑卷+镜像

复制代码
sudo lvcreate -n win-test-lv -L 800G vmsvg
sudo mkfs.ext4 /dev/vmsvg/win-test-lv
sudo mkdir /mnt/win-test
sudo mount /dev/vmsvg/win-test-lv /mnt/win-test
cd /mnt/win-test
ls

#日后扩容的命令
sudo lvextend -L +200G /dev/mapper/vmsvg-win--test--lv
sudo resize2fs /dev/mapper/vmsvg-win--test--lv

#传镜像
sudo scp -r  ubuntu2@10.xxx.xxx.xxx:/data/windows/bj-windows-txy-17.qcow2 /mnt/win-test/

四、安装virt-manager

复制代码
sudo apt update
sudo apt install -y virt-manager libvirt-daemon-system libvirt-clients qemu-kvm virtinst qemu-efi ovmf
sudo systemctl enable --now libvirtd
sudo systemctl status libvirtd
#说明:virt-manager → 图形界面管理工具;libvirt-daemon-system+libvirt-clients → 提供虚拟机管理后台;qemu-kvm → 真正运行虚拟机的引擎
#将当前用户加入 libvirt 组,这一步是为了解决"权限不够导致无法连接"的问题
sudo usermod -aG libvirt $(whoami)
sudo usermod -aG kvm,libvirt $USER  

#在当前 shell 中临时刷新组权限,这条命令会让当前终端立即切换到新的组权限(不需要重启或注销)
newgrp libvirt
sudo systemctl restart libvirtd
virt-manager

五、准备桥接网络

复制代码
sudo vim /etc/netplan/01-bridge.yaml

network:
  version: 2
  renderer: networkd
  ethernets:
    eno2:
      dhcp4: no
  bridges:
    br0:
      interfaces: [eno2]                #按照实际网卡填写
      addresses: [10.155.xxx.xxx/24]    # 宿主机 IP
      gateway4: 10.155.xxx.1
      nameservers:
        addresses: [10.4.xxx.27,10.4.xxx.28]
      parameters:
        stp: false
        forward-delay: 0

#应用配置
sudo netplan apply

#检查桥接接口br0,应该显示静态IP 10.155.xxx.xxx,eno2不再有IP,只是桥接接口
ip addr show br0

#测试网络,可以 ping 通,说明配置成功,
ping 10.155.xxx.1    # 网关
ping 8.8.8.8         # 外网

六、创建windows虚拟机

复制代码
sudo virt-install \
  --name win-sign \
  --ram 16384 \
  --vcpus 8 \
  --cpu host \
  --disk /mnt/win-test/bj-windows-txy-17.qcow2,bus=virtio \
  --os-type windows \
  --boot cdrom,hd \
  --network bridge=br0,model=virtio \
  --graphics vnc,port=5900,listen=0.0.0.0 \
  --input type=tablet,bus=usb \
  --input type=keyboard,bus=usb \
  --import \
  --noautoconsole

#查看一下状态
sudo virsh list --all

参数说明

|-----------------------------------------------------------|---------------------------|
| 参数 | 含义 |
| --name win-sign | 虚拟机名称 |
| --ram 16384 | 内存 16GB |
| --vcpus 8 | CPU 核心 8 个 |
| --cpu host | 使用宿主机 CPU 特性 |
| --disk ... | 指定 qcow2 磁盘文件路径,virtio 总线 |
| --os-type windows | 操作系统类型 |
| --boot cdrom,hd | 使用 UEFI / 磁盘启动 |
| --network bridge=br0,model=virtio | 桥接到 br0,实现局域网可访问 |
| --graphics vnc,port=5900,listen=0.0.0.0 | GUI 通过 VNC 访问 |
| --input type=tablet,bus=usb --input type=keyboard,bus=usb | 输入平板鼠标、键盘设备支持 |
| --import | 直接使用已有 qcow2,不重装 |
| --noautoconsole | 不自动打开控制台 |

七、windows虚拟机设置IP

可以使用remmina软件,VNC访问ubuntu物理机IP:5900,这样就可以进入windows页面。设置完windows的ip后,remmina软件就可以使用RDP访问windows虚拟机ip:22

左下角搜索cmd 回车打开页面 ------------> > 输入 ncpa.cpl 回车 ------------> > 找到 Ethernet(或 "本地连接") ------------> > 右键 选择 Properties(属性)

找到 Internet Protocol Version 4 (TCP/IPv4),双击打开设置ip内容

八、给windows虚拟机添加D盘

复制代码
#完整查看卷组信息,最关键的是 Free PE,它决定了能创建多大的新 LV
sudo vgdisplay vmsvg
# 创建 LV
sudo lvcreate -L 400G -n win-test-data vmsvg
# 挂载到虚拟机
sudo virsh attach-disk win-sign /dev/vmsvg/win-test-data vdb --persistent --driver qemu --subdriver raw --targetbus virtio
解释:
attach-disk:为现有 VM 添加磁盘
win-sign:你的虚拟机名称
/dev/vmsvg/win-test-data:刚创建的 LV
vdb:在虚拟机里显示为第二块 virtio 磁盘
--persistent:写入 XML,重启后也存在
--targetbus virtio:Windows 识别为高速 virtio 磁盘

进入windows图形化页面,cmd页面输入diskmgmt.msc 回车,可以看到这个新增的400G未分配

左侧的位置,右键选择"转换成GPT磁盘"

右侧的位置,右键选择"新建简单卷"

按照以下图片进行"下一步"即可

完成之后就可以看到这个D盘了,在此之前是只有C盘的

相关推荐
未来之窗软件服务4 小时前
幽冥大陆(二十二)dark语言智慧农业电子秤读取——东方仙盟炼气期
开发语言·windows·golang·东方仙盟·东方仙盟sdk
黎茗Dawn6 小时前
git-Windows-my-dell-笔记
开发语言·windows·git
2501_915921439 小时前
Windows 系统下的 IPA 加密工具实战指南,如何在非 macOS 环境完成 IPA 混淆、加固与工程化处理
android·windows·macos·ios·小程序·uni-app·iphone
q***710110 小时前
如何在Windows系统上安装和配置Node.js及Node版本管理器(nvm)
windows·node.js
广师大-Wzx14 小时前
JavaSE进阶(Day12)
java·数据结构·windows
p***976121 小时前
从零开始在Windows系统上搭建一个node.js后端服务项目
windows·node.js
z***02601 天前
【RabbitMQ】超详细Windows系统下RabbitMQ的安装配置
windows·分布式·rabbitmq
q***71011 天前
从零开始在Windows系统上搭建一个node.js后端服务项目
windows·node.js
任子菲阳1 天前
学Java第四十五天——不可变集合、Stream流
java·开发语言·windows