UEFI开发学习 29 – 为 UEFI 固件添加 NTFS 读写支持

 

NTFS 是 Windows 支持的分区格式,但 UEFI 默认支持的文件系统格式是 FAT 系列,所以 UEFI 固件想要支持 NTFS,必须要自己实现。当然,这对非专业人士来说是比较困难的,商用的代码 IBV 一般会提供代码支持,不过大多也只支持读而不可写。

幸运的是,UEFI 下 NTFS 的支持,是有开源库支持的,作为学习,可以直接拿来使用,比如此项目:https://github.com/pbatard/EfiFs,支持多种文件系统,如 ntfs, exfat, ext2 等,也提供了各种架构编译 efi 文件的支持。

除此之外,作者还移植了支持读写的 NTFS-3G 源码并也开源了,地址:https://github.com/pbatard/ntfs-3g,下面演示如何将其移植到 EDK2 的 OVMF 固件中。

下载代码:

git clone https://github.com/pbatard/ntfs-3g.git

如果网络有问题,可用加速地址:

git clone https://ghproxy.net/https://github.com/pbatard/ntfs-3g.git

下载完后将其命名为 Ntfs3gPkg,并将其复制到 EDK2 代码中,做以下修改:


-> Ntfs3gPkguefi-driveruefi_driver.inf
将 [Packages] 下的 uefi-driver.dec 改为 Ntfs3gPkg/uefi-driver.dec

-> OvmfPkgOvmfPkgX64.dsc
在文件末添加编译 ntfs 模块,并引用依赖库

Ntfs3gPkg/uefi-driver/uefi_driver.inf { 	 	 NULL|Ntfs3gPkg/.vs/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf}

-> OvmfPkgOvmfPkgX64.fdf
 [FV.DXEFV] 的末尾添加 ntfs 模块到 fv 中

INF Ntfs3gPkg/uefi-driver/uefi_driver.inf

最后编译 ovmf 固件,将编译好的固件用 QEMU 启动并附带一个NTFS的虚拟磁盘文件,使用mkdir 可直接在分区创建文件夹,用 LS 命令可列出文件夹,这样NTFS的支持便添加完毕了。

 

版权声明:
作者:bin
链接:https://ay123.net/mystudy/1897/
来源:爱影博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
UEFI开发学习 29 – 为 UEFI 固件添加 NTFS 读写支持
  NTFS 是 Windows 支持的分区格式,但 UEFI 默认支持的文件系统格式是 FAT 系列,所以 UEFI 固件想要支持 NTFS,必须要自己实现。当然,这对非专业人士来说……
<<上一篇
下一篇>>
文章目录
关闭
目 录