Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

Linux Fu:Windows 硬件虚拟化

Posted on 2025-08-22

虽然我很喜欢 Linux,但总有一两个应用程序因为各种原因不得不在 Windows 下运行。当然,你可以使用 Wine、Crossover Office,或者在虚拟机中运行 Windows,但这些都比较笨重,我总是得费劲地摆弄才能让它正常工作。不过,我最近发现了一个方法——如果使用不当——可以让一切变得轻松很多。我没有虚拟化或模拟 Windows,而是直接用硬件驱动,结果出奇地好用。

曾几何时

首先讲个故事。有人送了我一台 Surface Laptop 2,好像已经坏了。它充电不了,而且没电了键盘也拔不出来。其实用回形针就可以,我建议拔一下回形针,看看屏幕能不能自己充电。他们说他们已经买了新电脑,所以不在乎。

不出所料,拆掉键盘后,电脑充电后就没问题了。你只需要换个键盘或者换个新的就行了。或者把它当平板电脑用,反正它就是这么设计的。但我有各种各样的笔记本电脑和台式电脑。我该拿这台漂亮却没有键盘的电脑怎么办呢?

巧合

大约在同一时间,我将我的 VirtualBox Windows 安装迁移到了 KVM。如果你曾经这样做过,那会很麻烦,但它性能良好,运​​行良好。然后我发现了WinApps 。这是一个简单的脚本安装程序,可以在你选择的虚拟机中运行 Windows,并将单个应用程序拖放到桌面上的 RDP 客户端中。这样,你就可以像其他程序一样,在桌面上放置 Microsoft Word 等程序。它还可以连接应用程序,这样你就可以使用在虚拟机中运行的真实 PowerPoint 副本直接打开 PowerPoint 了。

它运行良好,除了一件事。当 Windows 运行时,你的磁盘会疯狂地抖动。这或许并不奇怪,因为 Windows 虚拟机映像位于一个文件中,所以所有内容都会经过 Windows 文件系统,然后再经过 Linux 文件系统。在我的 SSD 缓存和 RAID 阵列之间,有很多事情要做。性能还不错,但磁盘的失控很烦人,而且当驱动器不堪重负时,系统会不时地卡住。

虚拟现实,真实存在

但是 WinApps 怎么办呢?它指向的是 KVM 或 Docker 中的虚拟机。为什么不让它指向网络上的真实硬件呢?我可以把 Surface 放在一边,然后直接在桌面上运行我选择的 Windows 软件,硬件速度只受网络限制。

它并没有让你感到悬念,而是成功了。程序允许你设置虚拟化类型,其中一种是“手动”。想必你通常会自己启动虚拟机,但在这种情况下,你只需要远程 Windows 设备的 IP 地址即可。

就这么简单吗?

嗯,差不多了。有两个小问题。首先,你需要在 Windows 系统上运行一个安装脚本。你可以在设置之前,启用远程桌面时运行这个脚本。安装说明如下:

接下来,您需要进行一些注册表更改,以使 RDP 应用程序能够在系统上运行。首先下载RDPApps.reg文件,右键单击“Raw”按钮,然后单击“另存为”。对install.bat和NetProfileCleanup.ps1重复相同的操作。不要下载 Container.reg。

另一个问题是,我有两个显示器,一个在一个大矩形的左下角,一个在右上角,中间有很多空白区域。xfreerdp 程序很讨厌这种情况。我不得不反复调整设置,你可能会得到不同的结果。

为了安全起见,我做的一件事是获取最新版本的xfreerdp并安装它。你可以在 WinApps 配置文件中指向它。有时,发行版存储库中的程序可能相当老旧。我想确保我拥有最新的 RDP 客户端。

对于正常操作,这些选项有效:

 RDP_FLAGS="/cert:tofu /sound /microphone +home-drive /span /multimon:force /mouse-relative /dynamic-resolution"

我还必须编辑 ~/.local/bin/winapps 以将“windows”运行(启动全屏 Windows 会话)的选项更改为:

 # 打开 Windows RDP 会话。 打印“WINDOWS” $FREERDP_COMMAND \ /d:“$RDP_DOMAIN”\ /u:“$RDP_USER”\ /p:“$RDP_PASS”\ /规模:“$RDP_SCALE”\ +自动重新连接\ /监视器:0\ /wm-class:“Microsoft Windows”\ /t:“Windows RDP 会话 [$RDP_IP]”\ /v:“$RDP_IP”&>/dev/null&

有虫子!

在此期间,我还修复了一个错误。脚本(以及安装脚本)无法确定我的用户是否属于运行虚拟机的正确组,因此如果您打算使用真正的虚拟化,则可能需要修复它,或者像我一样,将该测试从主程序和安装程序中注释掉。但是,如果您使用手动模式,这应该不是问题。安装程序还告诉我 ~/.local/bin 不在我的路径上,但它确实在路径上。这可以忽略。
似乎还有其他一些问题。例如,安装程序设置了 ~/local/bin 目录,但没有添加任何指向我的开始菜单的链接。我想它应该添加。当然,添加你自己的菜单项很简单,但对于非标准程序,你还是需要这样做。

布丁的证明

Linux 上的 Word 很难!

它能正常工作吗?嗯,我的 KDE 桌面上正在运行 Microsoft Word。首次启动时,您可能需要重新排列或调整窗口大小。如果这让您感到困扰,请编写一条规则来修复窗口位置。大多数情况下,它都能正常工作。您还可以全屏切换(Control+Alt+Enter)。所有您在 RDP 会话中可以执行的操作,在这里都可以执行。

它完美吗?不完美。理论上,你可以重定向 USB 设备,但这样会很笨拙,而且速度可能很慢。我仍然使用 KVM 来处理需要与 USB 设备通信的事情。当然,你也可以将 USB 设备挂载到 Windows 机器之外。默认设置会将你的主目录映射到 Windows,但你也可以修改它来映射到其他位置(并确保配置文件也知道你的可移动媒体的挂载位置)。系统会自动检测许多应用程序,但理论上有一个手动模式可以运行任何应用程序。或者,你可以打开 Windows 资源管理器并运行任何你想要的应用程序。

用它来改造闲置的旧电脑,或者从废品店淘来的几乎不花钱的小型电脑,再好不过了。虽然你不会用它玩游戏什么的,但它可以用来处理那些奇怪的Word文档或EPROM编程软件。

说实话,现在的情况是,在 Windows 上使用WSL意味着我 99% 的时间几乎都感觉不到自己在用哪个操作系统。我使用的大多数应用程序都可以在两个系统上运行,但我还是更喜欢在 Linux 上拥有的控制力,而且发现在 Linux 上解决问题更容易。至少双启动基本上已经成为过去了。

原文: https://hackaday.com/2025/08/21/linux-fu-windows-virtualization-the-hardware-way/

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Big Technology
  • Bits about Money
  • Brandon Skerritt
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • HeardThat Blog
  • Henrique Dias
  • Herman Martinus
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Li Haoyi
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Maggie Appleton
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mind Matters
  • Mostly metrics
  • Naval Ravikant
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steph Ango
  • Stephen Wolfram
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme