PowerShell 查看 ESP(EFI 系统分区)完整详细信息
所有命令必须以管理员 PowerShell执行,ESP 分区在 PowerShell 中标识为 Type = System,仅 GPT 磁盘存在。
一、最简:直接筛选 ESP 分区(基础信息)
1. 单条命令过滤所有 ESP 分区(推荐快速查看)
powershell
# 筛选所有GPT磁盘上的EFI系统分区
Get-Partition | Where-Object {$_.Type -eq "System"} | Format-List
输出核心字段:
DiskNumber:磁盘编号(你的设备为 0)
PartitionNumber:分区序号(你的 ESP 为 1)
Size:分区总字节(209715200 = 200MB)
Offset:分区磁盘起始偏移
DriveLetter:盘符(默认空白 = 隐藏)
GptType:ESP 标准 GUID {c12a7328-f81f-11d2-ba4b-00a0c93ec93b}
2. 表格精简视图
powershell
Get-Partition | Where-Object Type -eq System | Format-Table DiskNumber,PartitionNumber,Size,DriveLetter,GptType
二、完整底层详情(分区 + 卷文件系统联合查询)
Get-Partition 仅能获取分区表信息,搭配Get-Volume可查看 ESP 文件系统、容量剩余、卷标:
powershell
# 完整联合查询,输出分区+文件系统全部参数
$esp = Get-Partition | Where-Object {$_.Type -eq "System"}
$esp | Format-List *
# 关联卷信息(挂载盘符后才能读取容量)
if ($esp.AccessPaths) {
Get-Volume -Partition $esp | Format-List DriveLetter,FileSystem,FileSystemLabel,SizeRemaining,Size,HealthStatus
}
关键字段说明
分区层(Get-Partition)
GptType:ESP 唯一分区 GUID,固定标识 EFI 分区
AccessPaths:挂载路径,无盘符时为空
IsHidden:是否系统隐藏分区
文件系统层(Get-Volume)
FileSystem:ESP 固定为FAT32
SizeRemaining:EFI 分区剩余空间(升级系统报错 “空间不足” 专用)
HealthStatus:文件系统健康状态
三、精准锁定系统盘 ESP(限定磁盘 0,适配你的设备)
你的系统 ESP 固定在 Disk 0 Partition 1,直接定向查询,无需遍历全磁盘:
powershell
# 仅查询磁盘0上的ESP分区
Get-Partition -DiskNumber 0 | Where-Object Type -eq System | Format-List *
挂载后查看完整文件系统详情(分配 S 盘符后)
powershell
# 挂载ESP到S盘
Set-Partition -DiskNumber 0 -PartitionNumber 1 -NewDriveLetter S
# 查看S盘完整卷信息
Get-Volume -DriveLetter S | Format-List
# 查看EFI目录文件
Get-ChildItem S:\EFI -Hidden -Recurse
四、高级 CIM 查询(最全底层参数,替代 diskpart detail partition)
使用 CIM 类读取磁盘底层 GPT 属性,可获取和diskpart detail partition完全一致的底层数据:
powershell
Get-CimInstance -ClassName MSFT_Partition -Namespace root/microsoft/windows/storage | Where-Object {$_.Type -eq "System"} | Format-List *
可获取额外底层信息:扇区总数、分区保护属性、磁盘硬件设备路径、分区隐藏标记。
五、一键导出 ESP 信息到文本(备份 / 排查日志)
powershell
# 导出ESP完整信息到C盘文本
$esp = Get-Partition | Where-Object Type -eq System
$esp | Format-List * | Out-File C:\ESP_Info_Backup.txt
# 追加文件系统信息
Get-Volume -Partition $esp | Format-List >> C:\ESP_Info_Backup.txt
notepad C:\ESP_Info_Backup.txt
六、配套辅助校验命令
确认当前磁盘是 GPT(UEFI 必备)
powershell
Get-Disk -Number 0 | Select Number,PartitionStyle,FriendlyName
PartitionStyle = GPT 才会存在 ESP 分区。
检查 ESP 分区剩余空间(解决 Windows 更新空间不足报错)
powershell
# 先挂载ESP到S:
Set-Partition -DiskNumber 0 -PartitionNumber 1 -NewDriveLetter S
# 输出剩余空间(MB)
$vol = Get-Volume -DriveLetter S
"ESP总容量:$($vol.Size/1MB) MB,剩余空间:$($vol.SizeRemaining/1MB) MB"
卸载隐藏 ESP 分区(操作完成后恢复默认)
powershell
Remove-PartitionAccessPath -DiskNumber 0 -PartitionNumber 1 -AccessPath S:
关键识别特征总结
筛选条件:Type -eq "System" = ESP/EFI 分区
GPT 唯一标识:GptType = {c12a7328-f81f-11d2-ba4b-00a0c93ec93b}
文件系统:挂载后Get-Volume显示FileSystem = FAT32
默认状态:无 DriveLetter,资源管理器不显示,属于系统保护隐藏分区
PowerShell 查看 ESP 分区详情并导出文本(管理员权限运行)
方案 1:一键完整脚本(分区底层信息 + 卷文件系统信息,推荐)
powershell
# 定义输出文件路径
$outFile = "C:\ESP分区完整信息.txt"
# 1. 获取ESP分区对象(Type=System 代表EFI/ESP分区)
$espPart = Get-Partition | Where-Object { $_.Type -eq "System" }
# 清空并写入头部信息
"===== ESP(EFI系统分区) 分区底层信息 =====" | Out-File $outFile -Encoding utf8
$espPart | Format-List * | Out-File $outFile -Append -Encoding utf8
# 2. 判断分区是否有挂载路径,读取文件系统卷信息
if ($espPart.AccessPaths.Count -gt 0)
{
"`n===== ESP分区 文件系统卷信息 =====" | Out-File $outFile -Append -Encoding utf8
Get-Volume -Partition $espPart | Format-List * | Out-File $outFile -Append -Encoding utf8
}
else
{
"`n===== 提示:ESP分区当前未分配盘符,无法读取卷容量信息 =====" | Out-File $outFile -Append -Encoding utf8
}
# 3. 补充磁盘基础信息(确认GPT磁盘)
"`n===== ESP所在磁盘 基础信息 =====" | Out-File $outFile -Append -Encoding utf8
Get-Disk -Number $espPart.DiskNumber | Format-List Number,FriendlyName,PartitionStyle,Size | Out-File $outFile -Append -Encoding utf8
# 4. 打开导出的日志文件
notepad $outFile
导出文件包含内容
分区全属性:磁盘号、分区号、字节大小、偏移、GPT 类型 GUID、盘符挂载状态、隐藏标记;
文件系统信息(有盘符时):FAT32 格式、总容量、剩余空间、健康状态;
磁盘信息:确认是 GPT 分区表(UEFI 必备)、硬盘型号、总大小。
方案 2:仅导出精简表格(适合快速查阅)
powershell
$outFile = "C:\ESP分区精简清单.txt"
# 表格形式导出ESP核心参数
Get-Partition | Where-Object Type -eq System | Format-Table DiskNumber,PartitionNumber,Size,Offset,DriveLetter,GptType -AutoSize | Out-File $outFile -Encoding utf8
notepad $outFile
方案 3:挂载 ESP 后导出完整目录结构(含 EFI 引导文件列表)
如果需要同时导出 ESP 内所有引导文件清单,执行完整流程:
powershell
$outFile = "C:\ESP完整日志_含文件列表.txt"
$diskNo = 0
$partNo = 1
$espLetter = "S"
# 1. 挂载ESP分区到S:
Set-Partition -DiskNumber $diskNo -PartitionNumber $partNo -NewDriveLetter $espLetter
# 2. 导出分区&卷信息
"===== ESP分区底层信息 =====" | Out-File $outFile -Encoding utf8
Get-Partition -DiskNumber $diskNo -PartitionNumber $partNo | Format-List * | Out-File $outFile -Append -Encoding utf8
"`n===== ESP卷文件系统信息 =====" | Out-File $outFile -Append -Encoding utf8
Get-Volume -DriveLetter $espLetter | Format-List * | Out-File $outFile -Append -Encoding utf8
# 3. 递归导出EFI目录所有隐藏文件
"`n===== ESP分区 \EFI 全部引导文件清单 =====" | Out-File $outFile -Append -Encoding utf8
Get-ChildItem "${espLetter}:\EFI" -Recurse -Hidden | Select FullName,Length,LastWriteTime | Format-List | Out-File $outFile -Append -Encoding utf8
# 4. 卸载ESP分区,恢复隐藏状态
Remove-PartitionAccessPath -DiskNumber $diskNo -PartitionNumber $partNo -AccessPath "${espLetter}:"
# 打开日志
notepad $outFile
关键补充说明
编码参数 -Encoding utf8
不加该参数会出现中文乱码,导出日志必须带上;
字段识别要点
Type = System:PowerShell 识别 ESP 分区唯一标识;
GptType:ESP 固定 GUID {c12a7328-f81f-11d2-ba4b-00a0c93ec93b};
无DriveLetter代表分区默认隐藏,资源管理器不可见;
权限要求
所有命令必须右键以管理员身份打开 PowerShell,普通权限无法读取分区底层信息、分配盘符;
路径自定义
可修改$outFile = "C:\xxx.txt"自定义导出文件保存位置。
EFI分区(也称为EFI系统分区或ESP)是一种特殊的分区,通常用于存储引导加载程序和其他与引导相关的文件。它是为了支持基于UEFI(统一固件接口)的系统而设计的。下面是一些理由说明为什么需要EFI分区:
引导启动:EFI分区中存储着操作系统的引导加载程序(如GRUB、Windows Boot Manager等)和相关的配置文件。当系统启动时,UEFI固件会从EFI分区中的引导加载程序启动操作系统。因此,EFI分区是系统引导的关键部分。
兼容性和互操作性:UEFI的引入旨在取代传统的BIOS固件。与BIOS相比,UEFI提供了更先进、更灵活的启动方式,并支持更大容量的硬盘驱动器。EFI分区的设计允许UEFI固件识别和访问其中的引导文件,以确保与UEFI兼容的操作系统能够正确地加载和启动。
文件系统支持:EFI分区通常使用FAT32文件系统格式化。这是因为FAT32是一种广泛支持和被UEFI固件识别的文件系统。通过使用FAT32文件系统,EFI分区可以在不同的操作系统之间进行交互,并且可以很方便地在EFI环境下读取和写入文件。
固件更新:EFI分区还可以用于存储和管理UEFI固件的更新。固件更新通常以固件更新软件包(如UEFI固件更新工具)的形式提供,这些软件包会被放置在EFI分区中,并由UEFI固件在启动时进行检测和应用。
安全启动:EFI分区在安全启动(Secure Boot)中起到关键的作用。安全启动是通过验证引导加载程序和操作系统的数字签名来确保系统启动过程的安全性。EFI分区存储了用于验证引导加载程序和操作系统签名的证书和密钥,以及相关的安全策略。
多操作系统支持:EFI分区可以存储多个操作系统的引导加载程序和配置文件,从而使得在同一台计算机上安装和管理多个操作系统变得更加容易。通过在EFI分区中设置不同的引导选项,用户可以选择启动哪个操作系统。
引导修复和故障排除:EFI分区也提供了引导修复和故障排除的功能。如果操作系统引导失败或发生其他问题,用户可以借助EFI分区中的工具和文件进行修复和恢复。
固件配置和设置:EFI分区还可以存储固件相关的配置和设置文件。这些文件可以包含用于配置UEFI固件设置的数据,例如启动顺序、硬件选项和设备设置等。
引导参数和选项:EFI分区可以存储操作系统引导时所需的参数和选项。这些参数和选项可以用于配置操作系统的启动行为,例如设置内核参数、指定启动模式或加载特定的驱动程序。
固件诊断和日志记录:EFI分区可以用于存储固件的诊断工具和日志记录文件。这些工具和文件可以帮助用户分析和解决固件相关的问题,包括硬件故障、兼容性问题等。
固件恢复和备份:EFI分区可以用作固件恢复和备份的存储介质。在某些情况下,如果UEFI固件损坏或需要回滚到之前的版本,用户可以使用EFI分区中的备份文件来恢复固件。
第三方工具和插件:EFI分区还允许第三方开发人员存储和加载自定义的工具和插件。这些工具和插件可以扩展和增强系统的功能,例如优化性能、添加额外的安全特性,或提供其他附加功能。
固件更新:EFI分区可以用于存储和传输固件更新文件。当制造商发布新的固件版本时,用户可以将更新文件保存到EFI分区中,并使用固件功能进行更新操作。
系统恢复和备份:EFI分区可以用作系统恢复和备份的存储介质。用户可以在EFI分区中保存系统备份或恢复镜像,以方便在需要时进行系统还原或迁移。
驱动程序管理:EFI分区可以存储硬件设备的驱动程序,以便在系统启动时加载所需的驱动程序。这样可以简化操作系统的安装过程,尤其是对于一些特殊的硬件设备,如RAID卡、网卡等。
用户自定义设置:EFI分区也可以用于存储用户自定义的设置和配置文件,如启动菜单的个性化配置、预设的启动选项等。这样可以实现个性化的启动体验和定制化的系统设置。
物理安全性:EFI分区可以用于存储设备的物理安全信息,如设备的唯一标识符(UUID)、序列号等。这些信息可以用于设备的身份验证和安全审计。
安全启动:EFI分区可以用于存储安全启动(Secure Boot)相关的证书和密钥。安全启动是一种保护系统免受恶意软件和未经授权的操作系统启动的技术,通过验证引导加载程序和操作系统的数字签名来确保系统的完整性和安全性。
固件设置配置:EFI分区可以存储固件设置的配置文件。这些配置文件包含了系统启动时的默认参数和选项,如启动模式、启动顺序、设备的识别方式等。用户可以在EFI分区中修改和定制这些配置文件来满足自己的需求。
固件调试:EFI分区可以存储固件调试相关的信息和工具。这些信息和工具可以帮助开发人员进行固件调试和故障排除,以解决固件层面的问题。
固件扩展:EFI分区允许第三方开发者扩展和增强固件的功能。他们可以在EFI分区中存储自己开发的固件扩展程序(EFI Shell、插件等)或驱动程序,以实现特定的功能需求或硬件兼容性。
EFI 系统分区 (ESP) 命令行完整管理汇总
适用环境:CMD、DiskPart、PowerShell,全部管理员权限执行,适配 GPT+UEFI Windows 系统
一、查看识别 ESP 分区(区分 EFI/MSR/ 恢复分区)
1. DiskPart 交互式查看(最全面,推荐修复场景)
cmd
diskpart
list disk # 带*代表GPT磁盘(UEFI必备)
select disk 0 # 选中系统盘,通常disk0
list partition # 列出所有分区,识别特征:
# 分区类型=System、大小100~500MB → ESP/EFI分区
# 分区类型=Reserved → MSR保留分区
# 分区类型=Recovery → WinRE恢复分区
select partition 1 # 切换到EFI分区(你的设备是分区1)
detail partition # 查看分区GUID、文件系统、隐藏属性
exit
2. WMIC 纯 CMD 一键筛选(无需交互)
cmd
# 列出全部分区
wmic partition get DiskIndex,Index,Size,Type
# 单独过滤EFI分区(Type=12 固定代表ESP)
wmic partition where Type=12 get DiskIndex,Index,Size,Type
3. PowerShell 结构化查看(输出直观带文字标签)
powershell
# 列出所有分区完整信息
Get-Partition | Select DiskNumber,PartitionNumber,Size,Type,Guid | Format-List
# 仅筛选ESP(EFI)分区
Get-Partition | Where-Object {$_.Type -eq "System"}
# 查看EFI分区挂载状态、偏移量
Get-Partition -DiskNumber 0 -PartitionNumber 1
二、ESP 分区挂载 / 取消盘符(访问 \EFI 引导目录必备)
CMD DiskPart 批量脚本方式(可直接复制整段)
挂载 ESP,分配盘符 S:
cmd
(
echo select disk 0
echo select partition 1
echo assign letter=S
) > efimount.tmp && diskpart /s efimount.tmp && del efimount.tmp
修复完成后隐藏、移除盘符(恢复默认无盘符状态)
cmd
(
echo select disk 0
echo select partition 1
echo remove letter=S
) > efiumount.tmp && diskpart /s efiumount.tmp && del efiumount.tmp
PowerShell 一行挂载 / 卸载
powershell
# 挂载分配S盘
Set-Partition -DiskNumber 0 -PartitionNumber 1 -NewDriveLetter S
# 移除盘符隐藏分区
Remove-PartitionAccessPath -DiskNumber 0 -PartitionNumber 1 -AccessPath S:
三、ESP 分区创建、格式化、修复分区标识(重装 / 重建引导场景,建议 PE 执行)
1. 新建标准 200MB ESP 分区(GPT 磁盘专用)
cmd
diskpart
select disk 0
# 删除损坏旧EFI分区(谨慎!会清空数据)
select partition X
delete partition override
# 创建200MB EFI分区,自动设置类型EF00
create partition efi size=200
# 格式化为ESP标准FAT32,标签ESP
format quick fs=fat32 label="ESP"
assign letter=S
exit
2. 分区类型修复(ESP 被误标为普通分区)
cmd
diskpart
select disk 0
select partition 1
set id=EF00 override # 强制写入EFI分区GUID标识
exit
3. 校验 ESP 文件系统错误
cmd
# S: 为已挂载的EFI盘符,强制锁定修复FAT32
chkdsk S: /f /x
四、EFI 引导文件重建修复(ESP 核心维护命令)
1. bcdboot(复制 Windows UEFI 引导文件到 ESP,核心修复命令)
cmd
# C:\Windows 系统目录,S: ESP分区盘符,生成中文UEFI引导
bcdboot C:\Windows /s S: /f UEFI /l zh-CN
参数说明:
/s S: 指定目标ESP分区
/f UEFI 仅生成UEFI固件引导文件
/l zh-CN 设置启动菜单中文
/v 可选,输出详细日志
2. bootrec 引导扇区 + BCD 数据库修复
cmd
bootrec /fixmbr # 修复磁盘主引导记录
bootrec /fixboot # 向ESP分区写入UEFI引导扇区(必须先挂载盘符)
bootrec /scanos # 扫描磁盘所有Windows系统安装项
bootrec /rebuildbcd # 重建ESP内BCD启动配置库,丢失开机菜单必用
3. bcdedit 管理 ESP 内 BCD 启动菜单
cmd
bcdedit /enum all # 列出ESP内全部启动项(含恢复环境)
bcdedit /export S:\bcd_backup # 备份ESP引导配置到S盘根目录
bcdedit /timeout 5 # 设置开机菜单等待5秒
bcdedit /deletevalue {current} safeboot # 清除安全启动标记
五、ESP 分区文件操作与备份
1. 备份整个 EFI 分区文件(CMD)
cmd
xcopy S:\EFI D:\EFI_BACKUP /e /h /r /y
# 参数:/e包含子目录 /h复制隐藏系统文件 /r覆盖只读文件
2. 查看 ESP 目录结构
cmd
S:
dir /a
dir S:\EFI /a
3. 校验系统引导相关系统文件完整性
cmd
sfc /scannow
dism /online /cleanup-image /restorehealth
六、ESP 分区属性保护(隐藏、只读、防删除)
cmd
diskpart
select disk 0
select partition 1
# GPT属性标记:隐藏分区 + 基础分区不可删除保护
gpt attributes=0x8000000000000001
exit
七、关键补充参数与对照表
GPT 分区类型 GUID 速查
分区用途
标识
说明
EFI 系统分区 (ESP)
EF00
FAT32,存放 UEFI 引导,开机必需
MSR 保留分区
E3C9E316-0B5C-4DB8-817D-F92DF00215AE
16MB GPT 底层预留
WinRE 恢复分区
de94bba4-06d1-4d40-a16a-bfd50179d6ac
NTFS 系统恢复镜像
高危操作警告 ⚠️
delete partition override 会清空 ESP 全部引导文件,误删直接无法开机;
重建 ESP、删除分区操作,优先在 Windows 安装 U 盘 / PE 环境执行,避免系统文件锁定;
ESP 分区只能格式化为 FAT32,NTFS 格式无法被主板 UEFI 固件识别;
日常操作完成后务必执行remove letter隐藏 ESP,防止误修改引导文件。
八、最简常用组合流程(引导损坏一键修复)
cmd
::1.挂载ESP
(
echo select disk 0
echo select partition 1
echo assign letter=S
) > efimount.tmp && diskpart /s efimount.tmp && del efimount.tmp
::2.重建引导文件
bcdboot C:\Windows /s S: /f UEFI /l zh-CN
bootrec /fixboot
bootrec /rebuildbcd
::3.隐藏ESP分区
(
echo select disk 0
echo select partition 1
echo remove letter=S
) > efiumount.tmp && diskpart /s efiumount.tmp && del efiumount.tmp
CMD 挂载 ESP (EFI) 分区 完整方案(管理员 CMD 执行)
方法一:diskpart 单行批处理(推荐,一键执行)
1. 挂载 ESP,分配盘符 S:
将整段复制到管理员 CMD 直接运行,自动创建临时脚本并执行、清理:
cmd
(
echo select disk 0
echo select partition 1
echo assign letter=S
) > efimount.tmp && diskpart /s efimount.tmp && del efimount.tmp
参数说明适配你的设备:
disk 0:系统固态硬盘(你截图里系统盘编号为 0)
partition 1:ESP 分区(你的 EFI 固定是分区 1)
letter=S:自定义盘符,可换成 T:/Z: 等未占用盘符
执行成功后输入 S: 即可进入 EFI 分区根目录,查看 \EFI 引导文件夹。
2. 修复完成后取消挂载、隐藏 ESP 分区
cmd
(
echo select disk 0
echo select partition 1
echo remove letter=S
) > efiumount.tmp && diskpart /s efiumount.tmp && del efiumount.tmp
执行后资源管理器不再显示 ESP 分区,恢复系统默认隐藏状态。
方法二:交互式手动 diskpart(适合不确定分区编号时排查)
管理员 CMD 输入 diskpart 进入磁盘工具
依次输入以下指令,每输一条回车一次:
diskpart
list disk
select disk 0
list partition
select partition 1
assign letter=S
输入 exit 退出 diskpart,完成挂载。
卸载只需重复流程,把最后一行替换为 remove letter=S。
方法三:通用兼容脚本(自动识别 ESP 分区,不用硬编码分区号)
一键挂载脚本(保存为 MountESP.bat,右键以管理员运行)
batch
@echo off
echo 正在自动定位ESP(EFI)分区并挂载至 S:
(
echo list disk
echo select disk 0
echo list partition
echo sel part %1
echo assign letter=S
) > esp.tmp
:: 先查询所有Type=12(EFI)分区索引
for /f "skip=1 tokens=2" %%a in ('wmic partition where Type=12 get Index ^|findstr /r "[0-9]"') do (
echo select disk 0 > esp.tmp
echo select partition %%a >> esp.tmp
echo assign letter=S >> esp.tmp
diskpart /s esp.tmp
del esp.tmp
echo 挂载完成,盘符 S:
pause
exit
)
echo 未找到ESP分区!
del esp.tmp
pause
卸载脚本 UnMountESP.bat
batch
@echo off
echo 移除ESP分区盘符S:
(
echo select disk 0
echo select partition 1
echo remove letter=S
) > esp.tmp && diskpart /s esp.tmp && del esp.tmp
echo 已隐藏ESP分区
pause
配套验证命令(挂载后使用)
查看 EFI 目录结构
cmd
S:
dir /a
dir S:\EFI /a
修复 ESP 分区 FAT32 文件错误
cmd
chkdsk S: /f /x
重建 UEFI 引导(挂载 S 盘后执行)
cmd
bcdboot C:\Windows /s S: /f UEFI /l zh-CN
关键注意事项 ⚠️
必须管理员 CMD,普通权限会提示权限不足无法分配盘符;
盘符 S 不能被其他磁盘 / U 盘占用,占用则更换为 T、Z 等空闲盘符;
你的设备 ESP 固定为 disk 0 partition 1,如果是多硬盘设备,先用 list disk 确认系统磁盘编号;
操作结束务必执行 remove letter 隐藏 ESP,避免误删引导文件导致无法开机;
ESP 分区为 FAT32 格式,仅 UEFI 固件可识别,不要格式化或删除\EFI文件夹。
