![在外部硬盘上运行 Windows 8](https://linux22.com/image/1422356/%E5%9C%A8%E5%A4%96%E9%83%A8%E7%A1%AC%E7%9B%98%E4%B8%8A%E8%BF%90%E8%A1%8C%20Windows%208.png)
我有一台 Acer A0756 上网本,最初配备 HDD 和 Windows 8。我想升级硬盘,因此我将原装 HDD 换成了 SSD,并在 SSD 上安装了 Ubuntu 12.04。但是,我仍然希望能够使用 Windows 安装,因为有许多工程程序与 Linux 不兼容。因此,我将原装硬盘放在 SATA-USB 底座上,并尝试直接从原装硬盘(现在位于上网本外部)启动。Windows 尝试启动,但我一直收到 INACCESSIBLE_BOOT_DEVICE 错误(我认为错误代码是 0xc0000001),然后 Windows 重新启动。我尝试以安全模式启动,但这也失败了,并且激活调试模式对该过程没有任何改变。有没有人成功实施过类似的事情,或者有谁知道我的问题可能是什么?
答案1
我刚刚遇到了同样的问题,并在一本德国杂志(2013 年第 12 期)中找到了解决方案。文章介绍了将 Windows 安装到外部驱动器的三种不同方法。其中一种方法包括将现有安装克隆到外部驱动器 - 我们可以跳过此步骤。
接下来,需要编辑 Windows 注册表。由于您正在运行 Linux,因此您可以使用该工具chntpw
。
安装外部 Windows 驱动器并使用以下选项启动编辑器-e
:
$ chntpw -e /media/<username>/Windows8_OS/Windows/System32/config/SYSTEM
相应地修复你的路径。
现在我们进入了 chntpw 命令提示符。我们需要编辑注册表中的值,BootDriverFlags
以确保 Windows 在启动期间尽早加载 USB 驱动程序:
首先,列出 中的所有键和值HarwareConfig
。您应该会看到系统的长 ID。复制该标识符。
> ls HardwareConfig
[output ommited]
> ed HardwareConfig\<paste uuid>\BootDriverFlags
在我的例子中,该值为0
。文章指出它应该是 ,0x14
而在我的例子中结果很好。
接下来,必须彻底删除该密钥MountedDevices
。密钥中列出了已连接到计算机的 USB 设备。Windows 会在设备连接时更新列表。
> cd MountedDevices
删除所有已知设备,因为只有空密钥才能被删除。
> delallv
> cd ..
> dk MountedDevices
键入q
退出编辑器并保存更改。现在您应该可以启动 Windows 安装。