命令创建EFI分区详细教程

EFI系统分区(ESP)是UEFI启动模式的关键组件,存储引导加载程序和固件文件,以下是通过命令行创建EFI分区的专业方法,适用于Windows和Linux系统。操作前请务必备份所有数据,误操作可能导致系统无法启动。


Windows环境(使用diskpart命令)

适用场景:安装Windows时或WinPE环境下创建ESP分区

以管理员身份打开命令提示符
2. 输入以下命令:
   diskpart
   list disk                 # 显示所有磁盘
   select disk X             # X替换为目标磁盘编号(如0)
   clean                    # 清除磁盘所有分区(慎用!)
   convert gpt              # 将磁盘转换为GPT分区表
   create partition efi size=100  # 创建100MB的EFI分区
   format quick fs=fat32    # 格式化为FAT32
   assign letter=S          # 分配盘符(临时使用,如S)
   exit

关键参数说明

  • size=100:分区大小建议100MB(微软官方要求≥100MB)
  • 完成后需将引导文件复制到该分区(如使用bcdboot命令)

Linux环境(使用parted/gdisk)

方法1:parted工具(推荐)

sudo parted /dev/sdX        # sdX替换为磁盘标识(如sda)
(parted) mklabel gpt        # 创建GPT分区表
(parted) mkpart ESP fat32 1MiB 101MiB  # 创建100MB分区
(parted) set 1 esp on       # 标记为ESP分区
(parted) quit
sudo mkfs.fat -F32 /dev/sdX1  # 格式化为FAT32
sudo mount /dev/sdX1 /mnt   # 挂载到/mnt

方法2:gdisk工具

sudo gdisk /dev/sdX
Command: n                  # 新建分区
Partition number: 默认
First sector: 默认
Last sector: +100M          # 设置100MB大小
Hex code: EF00              # 设置EFI分区类型
Command: w                  # 写入更改
sudo mkfs.fat -F32 /dev/sdX1

验证与修复

  1. Windows验证
    diskpart
    list volume              # 检查是否有FAT32格式的EFI分区
  2. Linux验证
    sudo fdisk -l | grep -i EFI
    sudo blkid /dev/sdX1     # 检查文件系统是否为FAT32

注意事项

  1. 分区位置:EFI分区必须是磁盘的第一个分区(或紧随MBR保留扇区后)
  2. 文件系统:必须使用FAT32,不支持NTFS/ext4
  3. 安全操作
    • 操作前断开非目标磁盘
    • 系统盘操作需使用安装介质启动
    • 双系统用户需确认现有EFI分区位置(避免重复创建)
  4. 引导修复
    • Windows:bcdboot C:\Windows /s S: /f UEFI(C为系统盘,S为EFI分区)
    • Linux:安装grub-efi并执行grub-install --target=x86_64-efi --efi-directory=/mnt --bootloader-id=GRUB

常见问题解决

  • 报错”分区对齐”:使用1MiB作为起始位置(符合2048扇区对齐)
  • 现有系统无法启动:使用Windows安装介质 > 疑难解答 > 命令提示符修复引导
  • Linux下权限不足:所有命令前加sudo,或切换root用户

引用说明:本文操作参考微软文档UEFI/GPT分区要求及Arch Linux WikiEFI系统分区指南,命令经过Windows 11/Ubuntu 22.04实测验证。

重要提示:本文仅提供技术指导,操作需具备基础磁盘管理知识,企业用户或关键数据设备建议咨询专业IT支持。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6873.html

(0)
酷番叔酷番叔
上一篇 2025年7月9日 18:33
下一篇 2025年7月9日 19:02

相关推荐

  • c 怎么打开sdk命令提示

    Windows中,通过“开始”菜单搜索“命令提示符(管理员)”,输入相关SDK

    2025年8月16日
    800
  • Linux命令非要死记硬背?

    掌握Linux命令无需死记硬背,关键在于理解命令机制、结合实践场景刻意练习、善用帮助文档和工具(如man、tldr),通过构建知识体系和应用实践,可显著提升学习效率和操作能力。

    2025年7月16日
    3300
  • 五年后程序员会消失吗?

    在C语言中,从命令行读取一串字符是基础操作,但需注意安全性和兼容性,以下是详细实现方法和最佳实践:核心方法:使用 fgets()(推荐)fgets() 是安全可靠的标准方法,可避免缓冲区溢出漏洞:int main() { char input[100]; // 定义缓冲区(最多存储99字符+结束符) print……

    2025年6月30日
    3500
  • 记事本为何无法执行命令

    记事本仅是文本编辑工具,不具备解析或运行代码、脚本、命令的能力,它只能创建和修改纯文本文件,命令执行必须依赖其他程序或系统环境。

    2025年6月27日
    3000
  • sed 命令怎么退出

    sed 命令中,可通过 Ctrl + D(发送 EOF 信号)

    2025年8月16日
    1500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信