是否可以使用 Linux 实用程序创建 Windows 10 安装介质 (USB)?

是否可以使用 Linux 实用程序创建 Windows 10 安装介质 (USB)?

问题是:旧版/BIOS 系统上的 Linux 用户希望将 Windows 10 与 Linux 一起安装(在真实硬件上,而不是在虚拟机中)。假设准备问题(例如对硬盘驱动器进行分区以为 Windows 创建空间)已经解决。还假设没有可用的 CD/DVD 驱动器。仅使用 Linux 下可用的实用程序如何创建 Windows 10 安装介质?

Windows 10 iso 可以从 Microsoft 下载,这看起来是一个好的开始。我认为在所描述的情况下使用该 iso 执行某些操作的最简单方法是将其添加到 USB 驱动器:dd if=/path/to/Win10.iso of=/path/to/USB/drive/我还没有尝试过,但认为它可能会像广告中那样工作。但还有其他选择吗?

例如这个页面https://ckirbach.wordpress.com/2016/10/24/how-to-create-a-windows-10-usb-installation-media-on-linux/表示挂载 iso 映像并将其内容复制到 NTFS 格式的 USB 驱动器(已使用 syslinux 使其可启动)也将起作用。然而,尽管我最近创建了一些 syslinux-bootable USB 驱动器并且很好地理解了如何做到这一点,但那里描述的过程对我来说不起作用。这并不是因为 USB 驱动器不可启动:相反,在我看来它不起作用是因为 syslinux 无法在从循环安装的 Windows 10 iso 复制过来的文件中找到可启动的内容(该页面不会出现)在我看来这是一个关键步骤——创建 syslinux 配置文件)。

也可以使用 syslinux 的 memdisk 从 USB 驱动器启动 Windows 10 iso。只需使用 syslinux 使驱动器可引导,将 iso 复制到其中,然后创建一个适当的 syslinux.cfg,将 iso 列为引导项。就像是:

LABEL some_label LINUX memdisk INITRD /path/to/image.iso APPEND iso raw

我也尝试过,但也没有成功(“错误的文件号”)。我想这可能是最不可能成功的方法,因为根据过去的经验,我知道某些 iso 根本无法通过内存磁盘启动。

对于完成此任务的意见将不胜感激。

PS 我无权访问任何已安装的 Windows 环境,因此不会征求有关完成此任务(涉及 Windows 实用程序)的方法的描述。

答案1

事实证明,在 GNU/Linux 下生成有效的 Windows 10 安装介质的最轻松的解决方案是使用 woeusb 实用程序。图形版本因错误而中止,但命令行版本最终使我能够制作一个可以启动到 Windows 10 安装环境的 USB 记忆棒。我不确定我偶尔能够启动到 Windows 环境的目标是否可行,因为我发现 Microsoft 的许多垄断倾向仍然很明显(无法将操作系统安装到可移动媒体、安装将覆盖其自身安装的驱动器上可能存在的任何引导加载程序等)。但我至少找到了一种完成我在OP中询问的任务的方法。这个链接https://www.addictivetips.com/ubuntu-linux-tips/make-windows-usb-drive-on-linux-woeusb/提供了对该过程的良好概述。

事后诸葛亮。 woeusb 解决方案是一种“黑盒”解决方案,这意味着该项目不是解释如何制作可启动的 Windows 10 安装 USB 记忆棒,而是通过提供实用程序来自动执行该过程。我认为,当涉及到与最先进的黑盒软件(Windows 操作系统)交互的软件时,这是可以预料到的。也就是说,我希望看到一些文档来解释 woeusb 实现这一目标的策略。

从 woeusb 生成的 USB 驱动器启动后,很明显他们使用了 GRUB 引导加载程序。对 USB 驱动器的进一步检查表明该项目使用了与我上面链接的类似的策略,并且使用 syslinux。换句话说,该实用程序显然会安装 Windows 10 iso 并将文件复制到 USB。 grub.conf 文件如下所示:

echo '------------------------------------' echo '| Windows USB - Loading... |' echo '------------------------------------' insmod fat search --no-floppy --fs-uuid BE49-9C0A --set root ntldr /bootmgr echo -n "Press ENTER to continue booting..." read key_holder boot

该实用程序将 FAT 文件系统放在 USB 记忆棒上,使驱动器可使用 GRUB 启动,并将文件从 Windows 10 安装 iso 复制到其中。从GRUB配置文件来看,它似乎在启动过程的一开始就加载了FAT内核模块。然后它通过uuid定位USB驱动器并将其设置为根文件系统。其中包含 ntldr 的行应该很容易适应 syslinux,它具有相同的开关,可以指向 USB 驱动器上的 bootmgr 文件。我不知道为什么需要额外的按键才能启动到安装介质。

无论如何,至少有一些文档介绍了 woeusb 实用程序如何完成创建启动到 Windows 10 安装环境的 USB 驱动器的任务。也许这会对那些希望尝试我最初追求的 syslinux 解决方案以及 OP 中提供的链接中详细说明的完成过程的一部分的人有所帮助?

最后,我要指出的是,根据我所做的一些进一步搜索,从 USB 驱动器启动 Windows 10 操作系统的唯一方法需要从已安装的 Windows 系统中创建所述 USB。这是一个包含下载 Windows Media Creation Tool 的多步骤过程。那是用来准备新的iso的。最后一步似乎是下载并使用实用程序 WintoUSB 将准备好的 iso 放入 USB 驱动器。额外的麻烦似乎还不止于此,因为似乎“每次在不同的电脑上使用 USB 驱动器时,您都需要激活 Windows 10”。请参阅该流程的完整概要: https://www.pcmag.com/article/352209/how-to-run-windows-10-from-a-usb-drive

还不确定我是否会进一步追求这个项目,因为完成我的目标所涉及的所有麻烦(手头有一个 Windows 环境,我有时可以启动到其中,以便执行 root 之类的操作) Android 设备)事情已经到了收益递减的地步。 YMMV。

答案2

编辑:当然,只有在经过艰苦的努力之后,我才最终格式化了一个搜索查询,使我得到了一个完整且正确的答案,同时寻找其他地方来分享我学到的东西。在这里查看解决方案:https://www.dedoimedo.com/computers/windows-10-usb-media-linux.html

由于当前的 Windows 10 安装映像包含的文件大于 FAT32 的 4GB 限制,因此情况变得更加复杂。这意味着如果没有一些额外的帮助就不可能创建 UEFI 安装介质,因为 UEFI 默认情况下仅支持 FAT。我不确定 WoeUSB 是否可以使用旧版 BIOS 启动来解决这个问题(FAT 限制仅针对 UEFI),因为我没有尝试过。

然而,我找到了另一个不太复杂的解决方案,最终允许我将 Windows 作为双启动选项安装。这涉及到使用一个允许 UEFI 引导 exfat(和 ntfs)文件系统的工具,称为 UEFI:NTFS。找到它这里。我们将使用预制映像来加载必要的 UEFI 驱动程序并启动同一驱动器第一个分区上的所有内容。详细信息如下。

要创建 Windows 安装介质:

  1. 获取 Windows 安装 iso
  2. 按如下方式对驱动器进行分区:
  • GPT分区表
  • 第一个分区的类型代码为 0700,几乎填满了驱动器,但最后留下了一个兆字节
  • 第二个分区的类型代码为 0700,填充剩余空间
  1. 在第一个分区中创建 exfat 文件系统,使用mkfs.exfat
  2. 下载 UEFI:NTFS启动映像并将dd其转移到第二个分区,根据这些说明
  3. 使用以下命令将 Windows iso 挂载为环回设备# mount -o loop /path/to/iso /mount/path
  4. 将 exfat 分区挂载到另一个挂载点
  5. 将iso中的所有文件复制到exfat分区,然后卸载exfat分区
  6. 重新启动并在启动过程中选择安装介质。我注意到,如果您的系统顽固地不肯启动某个设备,那么明确指定启动顺序而不是选择临时启动设备可能会有所帮助
  7. 安装 Windows,并享受执行 Linux 不支持的任何操作的能力。就我而言,这是使用 Zoom 的功能,该功能允许禁用音频处理并运行一些软件以使用智能手机进行直播。

如果有任何不清楚的地方,请告诉我。这对我来说是一个非常头疼的问题,我花了很多时间来解决,所以我很乐意提供帮助。

相关内容