Arch Linux 配置 WinApps

Arch Linux 配置 WinApps

下载

克隆仓库

1
git clone https://github.com/Fmstrat/winapps

Windows 10 ISO 文件

下载 Windows 10 ISO

VirtIO

从这个网址找到最新版,进入后下载 ISO 文件 (下图中画框的任选一个)

image-20240711103523204

安装需要的包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装需要的包
paru -Sy qemu-base libvirt virt-manager
paru -Sy freerdp2

# 添加权限给当前用户
sudo usermod -a -G libvirt $USER

# 自动启用默认网络
systemctl enable --now libvirtd
systemctl enable virtlogd.socket
systemctl restart libvirtd.service
sudo pacman -S ebtables
sudo pacman -S dnsmasq
sudo pacman -S bridge-utils

配置 KVM 虚拟机

打开 Virt Manager 后,应该是这样子

image-20240711104342013

如果报错(无法连接/权限错误),回到上一步配置权限

新建虚拟机

首先在 编辑 -> Preferences 勾选 启用 XML 编辑

image-20240711111727816

之后点击 ➕,新建一个虚拟机

  • 选择 本地安装介质 下一步

  • 选择下载的 Windows 10 ISO 文件,他会自动检测操作系统

  • 根据电脑可用 CPU 数和内存大小,设定虚拟机的CPU数量和内存大小

  • 虚拟机大小可以保持默认,也可以修改;在不需要这么多空间时,虚拟磁盘不会占用这么多

  • 将虚拟机命名为 RDPWindows,勾选 在安装前自定义配置

    image-20240711112633438

修改配置

  1. CPU 设置

    CPU数 里面,勾选 复制主机 CPU 配置

  2. 切换到 XML 编辑视图,在 <clock></clock> 中间的部分修改为:

    1
    2
    3
    4
    <clock offset='localtime'>
    <timer name='hpet' present='yes'/>
    <timer name='hypervclock' present='yes'/>
    </clock>

    这个操作可以节省 CPU 占用

  3. 内存界面,将当前分配设置为一个比较小的内存大小,可以设置成 1024M

  4. 引导选项 中,勾选 主机引导时启动虚拟机

  5. 修改 SATA 磁盘1磁盘总线VirtIO,左侧 SATA 磁盘1 会变成 VirtIO磁盘1

  6. NIC :xx:xx:xx 中,修改 设备型号virtio

  7. 添加硬件,存储设备,设备类型修改为 CDROM device,选择下载的 VirtIO 镜像文件

    image-20240711113452482

  8. 配置完成,开始安装

安装系统

正常安装 Windows 10 专业版 即可,许可证界面选择我没有许可证,后面可以直接使用 KMS 等工具激活系统

在选择磁盘界面,会找不到磁盘,这是因为没有 virtio 驱动。加载驱动程序,选择带有 w10 的驱动(如果用的是 Windows 11,就选择 w11)

image-20240711114117326

安装之后就能检测到磁盘,选中磁盘安装系统即可

系统配置

在联网的时候,选择没有网络连接并进行有限的配置,记住设置的用户名和密码,等待默认配置完成

进入系统后,打开 E:/ 找到 virt-win-gt-64.exe 安装

安装完成后,打开 https://github.com/Fmstrat/winapps/blob/main/install/RDPApps.reg 下载并合并到系统注册表

将电脑重命名为 RDPWindows,稍后重启

启用系统的 远程桌面功能

可以安装一个 Spice Guest Tools 启用 共享剪贴板(如果从Virt Manager 启动),RDP 会自带剪贴板和文件共享

现在可以重启虚拟机,也可以进行激活后重启


重启后,在 Linux 系统中创建一个 winapps.conf,软连接到 $HOME/.config/winapps/winapps.conf 里面内容:

1
2
3
4
5
6
7
8
RDP_USER="Username"
RDP_PASS="Password"
#RDP_DOMAIN="MYDOMAIN"
#RDP_IP="192.168.123.111"
#RDP_SCALE=100
#RDP_FLAGS=""
#MULTIMON="true"
#DEBUG="true"

保存后,在 克隆仓库根目录运行

1
bin/winapps check

如果确定已经启动,但是连接失败,那就吧 RDP_IP 设置一下,然后在虚拟机里面固定IP,再次测试应该就可以连接了

运行 installer.sh 即可把预定义的程序添加到 Linux 的开始菜单中

如果要添加自定义的其他程序,可以参考 apps 文件夹里面的,进行修改添加