使用命令行安装 Windows

· 248 words · 2 minute read

Windows 安装的最简单方法是使用 Setup。然而这并不能满足我的需求。

注意!

这不是任何产品的官方文档、帮助或使用说明,仅代表博主个人的经验总结,难免会有疏漏和错误之处。请务必结合官方文档进行阅读,以作补充。

什么是使用命令行安装 Windows? #

和安装 Arch Linux 一样,安装 Windows 同样需要三个步骤:

  1. 启动一个 Live Environment。在 Windows 叫做 Windows PE(Preinstall Environment)。
  2. 安装系统根目录。在 Windows 叫做 Apply Windows Image。
  3. 设置引导。在 UEFI 环境下一般指安装必要的文件到 ESP,以及可选的设置 EFI Var(表面上的引导项等)。

Windows Setup 会帮我们做这些步骤,以及一些可能的其他步骤。使用命令行安装,或者手动安装,指我们自己做这些步骤。

Windows Setup

为什么? #

Windows Setup 固然方便,但它会 “自作聪明” 地帮我们做一些事情,有的时候是不需要的。包括但不限于:

  1. 创建多个可选分区,比如 MSR。
  2. 无法选择 ESP 分区。

Windows Setup 会创建多个分区(1 / 2)

Windows Setup 会创建多个分区(2 / 2):在图中,Windows 创建了 ESP、MSR 和 C。

对于自动创建 MSR 分区,博主猜测可以使用 Autounattend 应答文件来自动化分区创建和安装。然而对于 ESP 分区的选择,似乎没有可行的办法。选择自定义 ESP 分区对于多系统而言很重要。因为在我的环境中,为了避免 Windows 对 Linux ESP 进行修改,我为 Windows 和 Linux 分别创建了一个 ESP。然而,Setup 会自动选择 ESP。

准备工作 #

为了安装 Windows,需要准备如下资源:

  1. 可以启动的 Windows 镜像。PE、RE、常规 Windows 均可。
  2. Windows 镜像文件(wim)

如果你不知道上面这些是什么,那么准备一个 Windows ISO 就可以了。然后启动这个 Windows ISO。

如果你在使用官方的 ISO,那么应该会自动启动 Setup。这时候需要按下 Shift + F10 来启动 cmd,如下图所示:

启动了 cmd 的 Setup。

给硬盘分区 #

如果你没有创建必要的 Windows 分区,那么就使用 Diskpart 创建两个分区:

  • EFI 分区,100M 即可。分配(Assign)盘符,如 U。格式化 FAT32。
  • 系统分区,大小自定。分配盘符,如 O。格式化 NTFS。

Diskpart 的使用比较复杂,本文无法涉及。建议使用 HELP 查看帮助。

分区的格式化也可以使用 notepad 中内置的文件选择器进行。

应用 Windows 镜像 #

应用(Apply)Windows 镜像指将 Windows 镜像写入指定分区。这个步骤需要使用 Dism 进行。

获取镜像信息 #

一个 wim 镜像通常包含多个 Index,每个 Index 对应一个 Edition。Windows Setup 同样会要求用户选择 Edition(即 Index)进行安装,如图:

Windows Setup 的 Edition 选择界面。

对于命令行,我们可以使用 Dism /Get-ImageInfo 来获取 wim 包含的 Index,及其名称。

Dism /Get-ImageInfo /ImageFile:<wim 路径>

对于官方 ISO,wim 通常位于 <ISO 分区>:\sources\install.wim。光盘分区可以使用 notepad 查找:

使用 Notepad 查找光驱。

找到的 Windows 镜像。注意不是 boot.wim。

如图,镜像路径为 D:\sources\install.wim。执行命令的结果如下:

执行 Get-ImageInfo 的结果。

很明显,Edition 和 Index 是对应的。如果我们需要安装专业版,那么就需要找到并记住它的 Index。在我这里是 5。注意:不同镜像的 Index 不同,切勿盲目抄袭。

应用镜像 #

现在就可以应用镜像了。使用命令 Dism /Apply-Image 即可。

Dism /Apply-Image /ImageFile:<wim 镜像路径> /Index:<Index 号码> /ApplyDir:<系统分区字母>

按照我的案例,Index 为 5,系统分区字母为 O,那么就应该为:

Dism /Apply-Image /ImageFile:D:\sources\install.wim /Index:5 /ApplyDir:O:\

示例。

等待命令走完即可。

设置引导 #

这是整个安装的最后一步,用于把必要的文件复制到 ESP,以及(自动)设置 EFI Var。当然,对于 Legacy(BIOS)用户,其细节会有很大不同。不过对于操作者来说步骤是大同小异的,本文以 UEFI 为准。设置引导需要使用 bcdboot 工具。

设置引导很简单,只需要指定系统根目录(系统盘)位置,以及 ESP 位置即可。命令:

bcdboot <系统根目录> /s <ESP 分区>

bcdboot 的命令行很简单,十分建议读者使用 /? 开关自行了解先,再执行。这里也可以使用 /p 开关了解 bcdboot 在做什么。

最后,按照本文的环境,即系统安装在 O:\,ESP 挂载在 U:\,命令为:bcdboot O:\Windows /s U: /p

执行命令(1 / 2)

执行命令(2 / 2)

此时 Windows 已经安装完了,bcdboot 自动为你创建了 UEFI 引导项。(顺便吐槽,其实这个功能挺烦人的..)

感兴趣的读者也可以自行浏览 U:\ 的内容。

清理 #

最后的最后,我们还需要移除 ESP 分区的字母,因为这是完全不必要的。使用 Diskpart 的 REMOVE 命令即可。

此时,安装已经完成。重启看看结果吧。

参考资料 #