jklincn


Linux 安装 Windows 虚拟机并远程连接


Linux 安装 Windows 虚拟机并远程连接

本文是实际操作后的梳理,可能会存在一些问题…仅供参考大致流程

发行版:Debian 12,无图形化界面

安装相关软件

sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-install

安装Windows系统

准备 Windows 镜像

前往 https://www.microsoft.com/zh-cn/software-download/windows10,下载安装媒体,创建 ISO 文件,把 ISO 文件拷贝到 Linux 服务器中(推荐路径:/var/lib/libvirt/images/windows10.iso)

也可以直接在这个网站复制下载链接,在服务器上使用 wget/curl 下载,避免拷贝:https://massgrave.dev/windows_10_links

创建磁盘镜像

qemu-img create -f qcow2 /var/lib/libvirt/images/win10.qcow2 60G

60G 可以自由调整,后期容量不足也可以进行扩容。

启用默认网络

sudo virsh net-start default
sudo virsh net-autostart default

安装虚拟机

sudo virt-install \
  --name win10 \
  --ram 8192 \
  --vcpus 4 \
  --os-variant win10 \
  --disk path=/var/lib/libvirt/images/win10.qcow2,format=qcow2 \
  --cdrom /var/lib/libvirt/images/windows10.iso \
  --network network=default \
  --graphics vnc,listen=0.0.0.0,password=123456 \
  --video qxl

这里的 ram 和 vcpus 都可以自由调整,当前示例是 8GB 内存和 4 个逻辑处理器。

正常输出如下:

WARNING  Graphics requested but DISPLAY is not set. Not running virt-viewer.
WARNING  No console to launch for the guest, defaulting to --wait -1

Starting install...
Creating domain...                                                                               |    0 B  00:00:00

Domain is still running. Installation may be in progress.
Waiting for the installation to complete.

此时可以使用 VNC 客户端连接 ip:5900 进行安装,VNC 可以下载 tightvnc。

在 VNC 画面中完成 Windows 操作系统的安装, 注意选择专业版进行安装,因为家庭版不支持远程桌面连接。

最后终端输出应为

Domain has shutdown. Continuing.
Domain creation completed.
Restarting guest.

此时虚拟机会自动重启,再使用 VNC 连接即可。

启用 Windows RDP

登录 Windows → 打开设置 → 系统 → 远程桌面 → 打开允许远程桌面。

从外部访问 Windows 虚拟机

设置端口转发

sudo virsh net-update default add-last forward-port \
  '<port protocol="tcp" hostport="3389" guestip="192.168.122.231" guestport="3389"/>' \
  --live --config
  
sudo virsh net-destroy default
sudo virsh net-start default

其中 guestip 可以从 Windows 中获取,在本文中是 192.168.122.231。hostport 可以自行修改。

设置后应该就可以使用 RDP 进行连接了。

虚拟机开机自启

可以通过以下命令,让虚拟机在 Linux 服务器重启后自动启动

sudo virsh autostart win10

虚拟机配置修改(导出/导入)

使用 sudo virsh edit 有时候不太方便,可以使用以下命令导出到文件,再导入即可

sudo virsh dumpxml win10 > ~/win10.xml
sudo virsh define ~/win10.xml

本站不记录浏览量,但如果您觉得本内容有帮助,请点个小红心,让我知道您的喜欢。