是否存在原生 UEFI 磁盘/分区管理器?

Mil*_*d R 3 hard-drive bootable-media partitioning efi uefi

UEFI 拥有在启动时支持复杂应用程序的基础设施。当前最迫切的需求之一是用于 GPT 磁盘管理的 UEFI 应用程序。

许多分区管理无法由操作系统完成,因为它与磁盘上的文件紧密相关。可以存在于 ESP 上的 UEFI 启动管理器只有一个要求,即 ESP 不被删除。

此外,与使用引导盘相比,将其直接保存在 ESP 中是处理磁盘和分区问题的最便捷方法。事实上,拥有 2 个独立的硬盘,拥有自己的 ESP 和相同的 ESP 副本diskmgmt.efi(我们就这样称呼它)将使计算机完全灵活。

有这样的项目/产品吗?

Rod*_*ith 5

它高度专业化且受到限制,但gptsync作为 EFI 应用程序运行。该计划最初是现已废弃的 rEFIt 项目的一部分。不过我已经为rEFInd更新了它。请注意,它gptsync专门用于创建混合 MBR,其丑陋、危险且实用性有限,因此我不建议gptsync一般使用;但对于某些特殊的用例(例如在 Mac 上双启动 Windows 和 OS X),它可能是一个有用的工具。

MariusMatutiae 建议使用 my gdisk,但它不能作为本机 EFI 应用程序使用。它可能在不久的将来也不会出现,因为它gdisk是用 C++ 编写的,而且据我所知,没有经济实惠的 EFI C++ 编译器。大多数 EFI 应用程序都是用 C 语言编写的,并且可以使用 GCC 以及 GNU-EFI 或 Tianocore 工具包在 Linux 下构建 C 应用程序。C++理论上可以用GCC编译为EFI,但是大多数C++库不支持,并且gdisk严重依赖C++库。有一个用于 EFI 的 Intel C++ 编译器,但它贵得离谱(大约 1,000 美元,IIRC),所以我不会购买它。如果有权访问该编译器的人愿意尝试gdisk为 EFI 进行构建,我很乐意提供帮助或接受补丁,但目前还不会发生。

更简单的解决方案可能是移植partedfdiskEFI。(直到最近,fdisk还不支持 GPT;但最新版本支持。)不过,我还没有研究过这种可能性。

目前,可以通过启动 Live CD/DVD/USB 闪存驱动器来完成分区。诚然,这不像从 EFI shell 或 EFI 启动管理器启动分区工具那么快,但启动和运行并不慢磁盘分区是一项不需要经常执行的任务,除非在测试硬件或操作系统配置等的实验室中。


更新:

正如评论中提到的,将 GPT fdisk 移植到 EFI 的项目已经以UEFI GPT fdisk 项目的形式取得成果。这基本上是一个附加库,为 EFI 提供 C++ 功能的子集——足以构建gdiskEFI 的二进制文件。