diskpart 是 Windows 系统中一个强大的命令行磁盘分区管理工具。set id 命令是其中之一,它的核心功能是修改指定分区的文件系统类型标识符。

你可以用这个命令来“告诉”操作系统,这个分区现在是什么格式(从 NTFS 格式化为 FAT32,或者创建一个特殊的恢复分区)。
命令语法
set id [=<字节值>] [overrides]
参数详解
<字节值> (Byte Value)
这是 set id 命令最核心的参数,它不是一个直观的名称(如 "NTFS"),而是一个十六进制值,代表不同的文件系统类型或分区类型。
如何获取这个值?
在运行 set id 之前,你必须先用 list partition 查看当前分区的信息,然后用 select partition 选中目标分区,选中后,你可以用 detail partition 命令来查看该分区的详细属性,其中就包含了 ID 字段,它会显示当前分区的类型值。
常用文件系统对应的 ID 值:

| 文件系统类型 | 十六进制 ID | 说明 |
|---|---|---|
| FAT12 | 0x01 |
最古老的文件系统,用于软盘等。 |
| FAT16 | 0x04 |
0x06 也常用于 FAT16。 |
| FAT32 | 0x0b |
0x0c 是 LBA 模式下的 FAT32。 |
| exFAT | 0x07 |
现代、适合大容量闪存的文件系统。 |
| NTFS | 0x07 |
注意:exFAT 和 NTFS 使用了相同的 ID 值! 这是因为早期 NTFS 的 ID 0x07,而 exFAT 后来沿用了它,操作系统会通过其他信息(如卷标、驱动器类型)来区分它们。 |
| WinRE (Windows 恢复环境) | 0x27 |
用于存放 Windows 恢复环境的特殊分区。 |
| EFI 系统分区 | 0xef |
用于 UEFI 启动的系统分区,格式化为 FAT32。 |
| MSR 分区 (Microsoft 保留) | 0x12 |
UEFI/GPT 磁盘布局中的保留分区,供系统内部使用。 |
| 恢复分区 | 0xde |
OEM 厂商使用的恢复分区。 |
overrides (可选参数)
这是一个可选的关键字,当你执行某些操作时需要它。
-
作用:当你试图将一个分区设置为某些特定类型(EFI 系统分区的
0xef或恢复分区的0xde)时,系统可能会提示“这个操作可能会导致不可启动的设备”或类似的警告。overrides参数的作用就是强制执行这个操作,忽略警告。 -
使用场景:通常只在创建特殊系统分区(如 ESP、恢复分区)时需要,对于常规的文件系统转换(如 NTFS 转 FAT32),一般不需要使用
overrides。
使用步骤(完整示例)
假设你有一个空的、未格式化的分区,你想把它格式化为 FAT32 文件系统。

步骤 1:以管理员身份打开命令提示符或 PowerShell
这是运行 diskpart 的前提。
步骤 2:启动 diskpart
在命令行中输入 diskpart 并回车,进入 diskpart 环境。
diskpart
步骤 3:选择目标磁盘 首先列出所有磁盘,然后选择你要操作的磁盘(磁盘 1)。
list disk select disk 1
⚠️ 警告: select disk 是一个高危操作,请务必确认你选择了正确的磁盘,选错可能会导致整个磁盘数据丢失!
步骤 4:列出并选择目标分区 列出该磁盘上的所有分区,然后选择你要修改的分区(分区 1)。
list partition select partition 1
步骤 5:查看当前分区信息(可选但推荐)
使用 detail partition 查看当前分区的 ID 和其他信息。
detail partition
你会看到类似这样的输出:
卷 1 D:
卷信息:
卷名称: New Volume
卷序列号: XXXX-XXXX
卷类型: NTFS
文件系统版本: 3.1
启动分区: 否
页文件: 否
块大小: 4096
柱面数/磁头数/扇区数/总扇区数: / / /
卷大小: 100 GB
未分配的空间: 0 B
当前 LSN (虚拟日志序列号): XXXXX
LSN (虚拟日志序列号) 的范围: (XXXXX, XXXXX)
簇 ID 序列号: XXXXX
分区 1
类型: 系统
分区偏移量: 1024 KB
大小: 100 GB
分区 ID: 0x07
分区 GUID: {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
分区名称: <无>
...
这里的 分区 ID: 0x07 就是我们要修改的目标。
步骤 6:执行 set id 命令
我们将这个分区的 ID 设置为 FAT32 的值 0x0b。
set id=0x0b
或者,你也可以省略 0x 前缀,diskpart 会自动识别:
set id=0b
命令执行后不会有成功提示,光标会直接跳到下一行。
步骤 7:验证结果
再次使用 detail partition 查看分区信息,你会发现 分区 ID 已经变成了 0x0b。
detail partition
步骤 8:退出 diskpart
完成所有操作后,输入 exit 退出 diskpart。
exit
重要注意事项
-
数据丢失风险:
set id命令会立即改变分区类型,并且不会擦除分区上的数据,改变文件系统类型后,操作系统将无法再以旧格式读取数据,这通常等同于数据丢失。在执行此操作前,请务必备份重要数据! -
格式化 vs. Set ID:
format命令:会先擦除分区数据,然后根据指定的文件系统(如fs=ntfs)来设置分区 ID,并创建新的文件系统结构,这是常规的格式化操作。set id命令:只修改分区 ID,不擦除数据,这可以用来“转换”分区类型,但风险极高,且不一定能成功,将一个包含大量数据的 NTFS 分区的 ID 改为0x0b(FAT32),结果是不可预测的,通常会导致分区无法访问。
-
GPT vs. MBR:
set id命令在 MBR 和 GPT 磁盘上都可以使用,但要注意:- 在 MBR 磁盘上,
set id主要用于设置主分区或扩展分区的类型。 - 在 GPT 磁盘上,分区类型由一个 GUID 定义,而不是一个简单的字节值。
diskpart的set id命令仍然被保留下来用于设置一些特殊分区的类型,ESP (0xef) 和恢复分区 (0xde),对于数据分区,通常还是通过format命令来指定文件系统,它会自动设置正确的 GPT 分区类型 GUID。
- 在 MBR 磁盘上,
-
不要随意修改系统分区:除非你非常清楚自己在做什么,否则不要尝试修改系统分区(如 C 盘)、引导分区或恢复分区的 ID,这很可能导致系统无法启动。
set id 是一个功能强大但非常危险的 diskpart 命令,它的主要用途是:
- 创建特殊系统分区(如 ESP、恢复分区)。
- 在高级场景下,将一个已清空或无关紧要的分区快速“标记”为某种文件系统类型。
对于普通用户,格式化磁盘/分区请优先使用 format 命令或 Windows 图形界面的格式化工具,如果需要使用 set id,请务必先备份,并确保你理解每一步操作的含义和风险。
