如何创建UEFI可引导U盘来安装Windows 10或者7?

时间:2020-01-09 10:46:32  来源:igfitidea点击:

这是如何为UEFI计算机创建带有Windows 10或者Windows 7安装镜像的可引导USB闪存驱动器的分步指南。我们需要以下内容:

USB闪存驱动器(USB v2或者v3),容量至少为Windows 7的 4 GB或者Windows 10的 8 GB

64位Windows安装镜像(32位Windows版本无法在UEFI计算机上启动)。Windows发行版可以是安装DVD或者ISO镜像文件的形式。

要使UEFI计算机从USB闪存驱动器引导,必须在FAT32文件系统中对其进行格式化。

让我们看看几种最流行的方法,我们可以创建一个可引导的UEFI USB闪存驱动器来安装Windows 10.

使用媒体创建工具创建Windows 10安装U盘

微软在Windows10上创建安装介质和ISO镜像的官方工具是 媒体创建工具。我们可以在这里下载最新版本-https://www.microsoft.com/en-us/software-download/windows10

刻录Windows 7镜像时, Windows USB/DVD下载工具旧版本在NTFS文件系统中格式化的U盘。具有UEFI体系结构的计算机无法以本机模式从该介质启动。因此,此工具不适合在Windows 7中创建安装闪存驱动器。

运行MediaCreationTool2004.exe文件;

选择 为另一台电脑创建安装介质(U盘、DVD或者ISO文件)

你要写的是USB驱动的架构(10)和你想写的架构;

然后选择要将图像写入U盘;

在可移动设备和U盘列表中选择闪存驱动器。

仅此而已。单击下一步->下一步->完成,等待安装Windows镜像写入U盘。

在这种情况下,USB闪存驱动器上的所有数据将在格式化过程中被永久删除。

此USB闪存驱动器可用于引导UEFI和BIOS计算机。

使用Rufus创建Windows UEFI U盘

对于新手用户来说,使用流行的 Rufus实用程序的图形界面创建可引导的UEFI闪存驱动器来安装Windows要容易得多。目前,rufus3.10版本可以在开发者的网站上找到https://rufus.ie. 它不需要很紧凑的安装,也不需要完全免费的工具。此外,它的工作速度比同类产品快得多。

以管理员权限运行Rufus工具并指定以下设置:

设备:选择U盘;

启动选择:指定Windows ISO镜像文件(可以使用媒体创建工具创建最新版本的Windows 10的ISO镜像,见示例);

分区方案:GPT;

目标系统:UEFI(非CSM);

文件系统:FAT32.

单击“开始”将Windows镜像写入USB闪存驱动器。10-15分钟后,可引导USB闪存驱动器与Windows install image for UEFI计算机准备就绪。

使用Diskpart创建Windows下的UEFI引导棒

我们可以使用Windows安装镜像手动创建可引导的UEFI闪存驱动器。下面描述的过程适用于高级用户,从命令行执行,允许我们完全控制(并理解)创建可引导USB闪存驱动器过程中的所有步骤。

如何使用 diskpart为UEFI系统创建引导Windows闪存驱动器的分步指南:

将USB闪存驱动器连接到相应的PC端口;

以管理员身份运行命令提示符;

通过在命令提示符下键入以下命令来运行DISKPART工具:

Diskpart

显示计算机中所有驱动器的列表:

list disk

找到与U盘相对应的磁盘(在我们的示例中是磁盘2),然后选择它:

Select Disk 2

警告。以下命令将完全删除USB闪存驱动器上的所有信息和分区。因此,最好确保在上一步中选择了可移动USB设备,而不是计算机的硬盘驱动器。

使用以下命令从驱动器中删除所有数据:

clean

创建主分区:

create partition primary

使此分区处于活动状态(系统卷):

active

使用以下命令列出系统卷:

list volume

选择我们创建的分区(在我们的示例中,它是卷3):

select volume 3

用FAT32格式化所选分区:

format fs=fat32 quick

注意。与带有BIOS的传统计算机不同,BIOS允许从具有FAT、FAT32、exFAT或者NTFS文件系统的分区引导,UEFI只允许从用FAT32格式化的引导驱动器上的引导加载程序引导。

为格式化分区分配驱动器号(如果Windows不自动为USB闪存驱动器分配驱动器号-请参阅文章):

assign

退出DISKPART:

exit

将Windows x64安装镜像的内容复制到准备好的USB闪存驱动器。我们可以使用Windows资源管理器、常用的文件管理器或者从命令提示符执行此操作,例如:

xcopy d:\* f:\ /s /e

(其中D:\是安装DVD或者安装的ISO镜像,其中包含Windows发行版,F:\是分配给USB闪存驱动器的字母);

注意由于FAT32文件系统的最大文件大小 不应超过4 GB,我们将无法复制大图像文件安装.wim. 的大小安装.wim如果我们将更新、驱动程序等集成到其中,文件可能会超过4 GB。在这种情况下,我们必须将安装.wim将文件放入多个大小不超过4 GB的文件中(例如,3 GB文件)。我们可以使用命令 Dism/Split Image

Dism /Split-Image /ImageFile:D:\sources\install.wim /SWMFile:c:\tmp\install.swm /FileSize:3000

或者使用 imagex工具:

imagex /split D:\sources\install.wim c:\tmp\install.swm 3000

生成的文件(安装.swm,install2.swm,install3.swm…)需要复制到U盘到F:\sources目录中。Windows安装程序将组装swm文件,并在安装过程中将完整的wim镜像应用于磁盘。 **  **

这就完成了在Windows 10中创建可引导的UEFI闪存驱动器的过程。

创建UEFI可引导U盘来安装Windows 7

如果我们正在为UEFI计算机创建带有 Windows 7的安装USB闪存驱动器,则需要执行其他步骤:

进入U盘上的 f:\efi\microsoft\boot文件夹;

将其内容完全复制一级(到 F:\efi\boot目录);

复制 bootmgfw.efi]文件保存到f:\efi\boot文件夹,重命名为 bootx64.efi说明UEFI环境应将控制权传递给bootx64.efi文件。文件bootmgfw.efi可以从部署的Windows 7 x64计算机(位于%windir%\Boot\EFI文件夹)复制。例如,我们也可以使用7ZIP archiver从安装.wim在ISO安装镜像中。你可以在 来源文件夹中找到\安装.wim\1\Windows\Boot\EFI\bootmgfw.efi.

说明有些主板需要将bootx64.efi额外复制到USB闪存驱动器根目录;它必须具有相同的名称或者shellx64.efi。

用PowerShell创建UEFI可引导USB媒体

还可以使用PowerShell cmdlet创建可引导的UEFI闪存驱动器。

下面的PowerShell one liner将列出连接的USB媒体设备。选择所需的闪存驱动器后,将对其进行清理,在FAT32文件系统中创建并格式化主分区(使用来自 存储磁盘管理模块的cmdlet):

$Results = Get-Disk |Where-Object BusType -eq USB |Out-GridView -Title 'Select USB Drive to Create UEFI bootable device' -OutputMode Single |Clear-Disk -RemoveData -RemoveOEM -Confirm:$false -PassThru |New-Partition -UseMaximumSize -IsActive -AssignDriveLetter |Format-Volume -FileSystem FAT32

安装Windows 10的安装ISO镜像:

$Volumes = (Get-Volume).Where({$_.DriveLetter}).DriveLetter
Mount-DiskImage -ImagePath C:\ISO\Windows10-2004x64.iso
$ISO = (Compare-Object -ReferenceObject $Volumes -DifferenceObject (Get-Volume).Where({$_.DriveLetter}).DriveLetter).InputObject

因为在PowerShell中,我无法检测到哪个驱动器盘符被分配给挂载的ISO镜像;我必须使用compare Object比较装载前后的磁盘列表。

现在我们需要转到 Boot目录,并使用copy Itemcmdlet将内容复制到USB闪存驱动器:

Set-Location -Path "$($ISO):\boot"
bootsect.exe /nt60 "$($Results.DriveLetter):"
Copy-Item -Path "$($ISO):\*" -Destination "$($Results.DriveLetter):" -Recurse -Verbose