首先:还有其他类似的问题(例如为什么我不能将我的 Windows 安装同时用作主机和客户机?),但问题要么没有提供足够的信息,要么答案在技术上和事实上都是错误的(如该示例)。它是从技术和法律上来说,可以同时在本地和虚拟上启动同一个物理 Windows 实例(显然不是同时启动),而无需重新激活,也无需合法购买两个许可证。我只是需要帮助来完成它(我想其他许多人也想这样做)。我也想象可以成为其他人的有趣或有用的参考,特别是考虑到其他地方缺乏和/或不正确的信息。
几年前,我曾找到过一个使用 VirtualBox 的详尽指南(确实有效),但现在似乎找不到任何指南了。但这个问题肯定已经解决了,其他人也想知道怎么做?
我应该对这个问题提供大量的细节,以避免不可避免的、善意的、偶尔错误的评论,例如:
- “这不可能做到”(它可以而且已经做到了 - 相当稳健和可靠)
- “这会违反 Windows EULA”(可能适用于 Windows 10,但不适用于旧版本)
- “为什么不直接使用 Wine,或者完全虚拟的 Windows 映像,或者类似的 Linux 应用程序”等等。(我会讲到这些。)
- “为什么不使用两台计算机和一台 KVM?”(我的主要计算机是一台带有两个 mSATA 的笔记本电脑,并且总是随身携带;不能被绑在一张桌子上。此外,我经常在操作系统实例之间复制和粘贴,而使用 KVM 则无法做到这一点。另外,KVM 有多无聊?还有一张桌子?)
目录
- 期望场景和高级用例
- 但为什么?
- 有证据表明,这是可能的、稳健的、有用的
- 合法的证据
- 我的规格(以防万一询问)。
期望场景和高级用例
- 一台机器,两个驱动器。
- 一个驱动器安装了 Windows(具体版本有待商榷),另一个驱动器安装了 Linux(Xubuntu 16.04.1)。
- 启动 Windows,然后在虚拟机中加载物理 Xubuntu 实例(通过 VirtualBox 5.1、指向物理驱动器的原始 vmdk 以及用于设置和启动它的强大的自定义 CMD 脚本)。
- 退出两者,然后物理重启。
- 启动 Linux,然后在虚拟机中运行物理 Windows 实例。(最好也是 VirtualBox,但我愿意接受建议。)还有类似的脚本助手,但 bash(也存在)。
我已经安装了 1 到 4 个系统,并且多年来每天都在完美、可靠地运行。
已经编写了 bash 脚本以使 #5 工作。它已经可以在虚拟机上运行 Linux 的物理安装……在(不同的)实际运行的 Linux 实例上。(为什么这是非常不同的故事,并且与安全、便携、旅行开发环境有关。
(顺便说一句 - 需要脚本 [CMD 或 bash] 来设置原始 VMDK 实例 [每次启动后都会失效],将它们连接到 VM,然后启动 VM。它使它变得轻松、简单和可靠。此方案对于在 SD 卡或拇指驱动器上安装和运行操作系统也非常有效 [这对“传统”方式来说具有挑战性]。只需将原始 VMDK 指向整个拇指驱动器,将 VMDK 连接到 VM,将 VM 启动到实时 CD ISO,然后将操作系统安装到“拇指驱动器”,就像它是普通硬盘一样 - 它认为它是。之后,您可以在 VM 中或实际启动可移动媒体上的操作系统。至少,如果它是 Linux。像魔术一样工作,但写入速度很慢,具体取决于媒体的价格。)
对于 #5,我没有做到的是,Windows VM 在本机启动和虚拟启动之间来回切换时不会发出有关驱动程序或激活的抱怨。(再次强调 - 这是完全可能的,并且已在下面得到证明。我只是不知道如何实现它。)
但为什么?
- Linux 是我的主要操作系统,以前是 Ubuntu Feisty Fawn。它拥有我的大部分生产力应用程序和数据。出于多种原因,我非常喜欢它而不是 Windows。我大部分时间都在本地使用它。
- 我还有一系列必需的沟通和发展计划,仅有的在 Windows 中运行,所以我目前在“常规”Windows VM 中运行它们 - 常规虚拟化 HDD 映像上的完全虚拟化的 Windows 7 实例。
- 请记住,上述观点仅适用于在 Wine 上无法可靠运行或根本无法运行的应用程序,并且没有满足相同要求的 Linux 对应程序。但我使用的 Windows 应用程序还有很多,做在 Wine 上运行得很好,而且显然我已经找到了其他 Linux 的可接受的或更优越的替代品。
- 偶尔必须花很长时间本国的Windows,用于低延迟、硬件加速的照片/视频/音频编辑。(此时我还需要访问我的 Linux 生产力应用程序,因此在 VM 中运行物理 Linux 安装,正如我所说,它多年来一直运行良好。)
- 我目前“真正”安装的 Windows 是 Windows 10,但我很乐意用旧的 Windows 7 或 8.1 安装(使用它们自己的非升级许可证)来清除它。无论如何,我并不热衷于 10。或者就像我说的,甚至可以降到 Vista64,我甚至可以让 XP64 与我的硬件和软件配合使用。老实说,我不在乎我运行的是哪个 Windows 版本,我只需要它来运行一些重要的应用程序。
- 维护两个 Windows 副本(真实的和虚拟的)非常麻烦,并且会导致一些不太周全的软件包出现问题,而这些软件包超出了本文的范围,只能说只需安装一个 Windows 就可以节省大量时间,无论是物理上还是虚拟地,随意来回运行,就像我的 Linux 安装一样。
- 我喜欢技术挑战。我花了很多精力才让“虚拟机中的物理 Linux”运行起来,主要是因为 Windows 安全性方面的问题。(Linux 本身并不关心这个问题,并且很乐意在启动时确定它是否需要半虚拟化或本机硬件驱动程序。)一旦我解决了这些问题,它就“正常工作”并且坚如磐石,无论是在 Windows 还是本机上来回切换。这让我个人感到非常满意。
有证据表明,这是可能的、稳健的、有用的
- 在 Mac OS [/X] 上运行的 Parallels 支持(或至少支持了很多年),确切地我正在谈论的是:在“Bootcamp”分区上本机启动 Windows,或启动 Mac OS 并通过 Parallels 虚拟机管理程序虚拟运行相同的物理 Windows 安装 - 无需任何 Windows 激活和/或驱动程序投诉。我曾经在一家公司工作,那里的大多数人都是这么做的。(请注意,Apple Bootcamp 并没有什么神奇之处。它只是一个分区方案和一个实用程序。Bootcamp 之所以特别,只是因为它在本机 EFI/GPT 设置中模拟 Windows 的 BIOS 和 MBR,并且它还自动执行棘手且费力的分区和安装工作。但所有这些也可以手动完成。)
- 我有一台旧的 Macbook,它安装了 Mac OSX Snow Leopard、Ubuntu 12.04 和 Windows 7 三个系统。(所有系统都位于同一个磁盘上,采用精心设计的分区方案,多年来一直运行良好。)在 Mac OSX 中,我通过 Parallels 在虚拟机中运行相同的物理 Windows 7 安装。我以前用这种方法在 Windows 中编辑照片,非常密集。虽然我现在很少使用 Mac OSX,但这种方法还是很酷。这些都是旧软件,所以我不确定是否还支持相同的设置,但这是活生生的证据 - 目前 - 它不仅是可能的,而且确实存在。在 Parallels/Mac 下运行的 Windows 可以说比单独的 Windows 稳定得多(可能是因为 Apple 的 Macbook 硬件驱动程序对原生 Windows 有缺陷)。Windows 从未抱怨过许可问题,我也不必激活它两次。 (而且它位于 EULA 内,至少对于 Windows 7 来说是这样。)听起来很神奇,但这一切都要归功于 Parallels - 它有一个向导,可以找出 Windows 需要“查看”什么才能不抱怨,并相应地配置虚拟机管理程序设置。除了安装客户添加/半虚拟化驱动程序外,无需对 Windows 进行黑客攻击。(奇怪的是,Parallels 使用虚拟 ATA 接口,而 Windows 本身使用 SATA - 所以我不确定 Windows 为什么不抱怨这一点。也许半虚拟化驱动程序会处理所有这些问题。)
- Parallels 对此进行了解释:http://kb.parallels.com/en/112941
- 所以这是无可辩驳的证据能可以工作,对吧?(因为我可以亲眼和亲手看到和触摸它,而且 Parallels 的网站会向您展示如何做到这一点。)
- 不可否认的是,有更弱的证据证明同样的魔法适用于其他虚拟机管理程序,那就是曾经有多个在线指南可以通过 Google 找到,解释了如何使用 VirtualBox 来实现这一点。(以及 IIRC Vmware Workstation。)步骤包括手动编辑 .vbox 定义文件,以覆盖 VirtualBox 为 Windows 提供的有关环境的属性。(使其看起来更像它本身所见的。)所有这些都得到了 VirtualBox 的完美支持,只是没有涉及特定参数的 GUI 界面,因为这对他们来说是一个非常边缘的用例。我不确定网络适配器 MAC 地址问题是如何解决的,但它是可以解决的。(基本上,虚拟和真实都必须具有相同的 MAC 地址以进行激活,而不会在网络上发生冲突。)
合法的证据
我理解,对于合法的许可问题,Windows 10 EULA 可能无法实现。我确实需要合法,更重要的是,我希望这个问题不会像其他类似问题一样,因为许可争论而偏离主题。我仍然拥有从 95 到 10 的每个版本的 Windows(ME 除外),如果有必要,我会降级到 Vista64 或 XP64 以符合法律要求。我非常确定,对于某些版本的 Windows 7,这在法律上是可行的。可能是也可能不是他们想要的方式,但违反了无许可条款。
我尝试粘贴 Vista 和 Windows 7 的 EULA 中的具体相关引述,以清楚地表明此设置是可以的,但超级用户出于某种原因将它们标记为垃圾邮件。
我的规格
Dell Latitude 笔记本电脑,Core i7,2.7 GHz,16GB RAM,两个内置 mSATA 卡。在两个不同位置有两个底座,配有两种不同的显示器配置和 USB 配件,也经常在未对接的情况下运行。
谢谢!
答案1
我的超级塔式机和 Alienware 笔记本电脑上都装有 Win7 Ultimate x64。我运行了 VirtualBox 的便携版和各种操作系统:Elementary、LinuxMint、Ubuntu、Ultimate Edition、Win7 x32、Win10 Pro x64,并且正在尝试让 OSX Yosemite 也能运行,但目前还不行……所有这些都在 USB3.0 SSD 上……这个想法对你有帮助吗?同一个基础操作系统运行着 VirtualBox 的便携版和你需要的操作系统???