UEFI:NTFS是一种通用的引导加载程序,旨在以纯UEFI模式从NTFS或EXFAT分区进行启动,即使您的系统不本地支持它。这主要用于与Rufus一起使用,但也可以独立使用。
换句话说,UEFI:NTFS旨在删除大多数UEFI系统所具有的限制,仅提供FAT32分区的引导支持,并使还可以从NTFS分区引导。
例如,可以将其用于启动Windows NTFS安装媒体,其中包含一个大于4 GB的install.wim (FAT32不支持的东西)或允许“ Windows to to to do Go”驱动器的双BIOS + UEFI启动。
顺便说一句,并且由于在互联网上似乎存在很多有关此信息的不准确信息,因此必须强调,UEFI规格中绝对没有任何东西实际上迫使FAT32用于UEFI启动。相反,只要您的固件带有驱动程序,UEFI将愉快地从任何文件系统启动。因此,只有系统制造商的选择,他们倾向于仅包含FAT32的驱动程序,才限制了UEFI的默认引导功能,这会导致许多人错误地认为只能将FAT32用于UEFI启动。
但是,正如该项目所证明的那样,很有可能解决此限制,并使任何UEFI固件都可以从非FAT32文件系统启动。
UEFI:NTFS与Rufus结合使用的方式如下:
/efi/boot/bootia32.efi or// /efi/boot/bootarm.efi or//efi/boot/ /efi/boot/bootx64.efi /boot /efi/boot/bootaa64.efi 。这与UEFI固件对NTF具有本机支持,并且可以直接从中启动,这取得了完全相同的结果。 UEFI:NTFS与安全启动兼容,已由Microsoft签名。
您可以在Rufus的uefi-ntfs.img档案中找到安全的引导签名二进制文件(对于X86_64,X86_32和ARM64)。
但是请注意,由于Microsoft对GPLV3的任意限制,在安全启动环境中,唯一可以与UEFI:NTF一起使用的驱动程序是GPLV2许可的NTFS-3G。特别是,来自grub 2.0的EFIF的NTF和EXFAT驱动程序,因此无法提交给Microsoft进行签名。
最后,微软当前的安全启动签名政策需要对32位臂的额外验证,因此32位臂二进制文件没有安全的启动签名。这不会影响我们完全固定的引导签名二进制文件的64位臂(又名ARM64 / AARCH64 / AA64 )。
为了方便起见,可以针对GNU-FI库而不是EDK2编译该项目,因此您可能需要使用以下方式初始化GIT子模型。
git submodule update --init
如果使用Visual Studio解决方案( .sln ),只需按F5在QEMU模拟器中编译并启动应用程序即可。
如果将GCC与GNU-FI一起使用,则应该可以简单地发行make 。
如果需要,您还可以发出诸如make ARCH=<arch> CROSS_COMPILE=<tuple>类的内容,其中<arch>是ia32 , x64 , arm或aa64之一,而Tuple则是您的交叉杂货店的一个(例如aarch64-linux-gnu- )。
您还可以通过将qemu指定为您的make来通过QEMU进行调试。但是请注意,这打开了特殊的_DEBUG模式,您应该在不调用qemu生成适当的释放二进制文件的情况下运行。
如果在Windows上使用EDK2使用VS2022,则假设您的EDK2目录在D:edk2中,并且nasm位于D:edk2BaseToolsBinWin32中,您应该能够发出:
set EDK2_PATH=D:edk2
set NASM_PREFIX=D:edk2BaseToolsBinWin32
set WORKSPACE=%CD%
set PACKAGES_PATH=%WORKSPACE%;%EDK2_PATH%
%EDK2_PATH%edksetup.bat reconfig
build -a X64 -b RELEASE -t VS2022 -p uefi-ntfs.dsc
如果在Linux上使用GCC与EDK2一起使用,并且假设您的EDK2目录位于/usr/src/edk2中:
export EDK2_PATH="/usr/src/edk2"
export WORKSPACE=$PWD
export PACKAGES_PATH=$WORKSPACE:$EDK2_PATH
. $EDK2_PATH/edksetup.sh --reconfig
build -a X64 -b RELEASE -t GCC5 -p uefi-ntfs.dsc
您可以在Rufus Project(rufus project of /res /uefi)中找到包含X86和ARM版本的现成脂肪分区图像,并在Rufus Project中找到X86和ARM版本。
如果您在驱动器末端创建一个相同大小的分区,并在其中复制uefi-ntfs.img (当然是DD模式),那么您应该拥有在该驱动器uefi可启动的第一个NTFS分区所需的一切。
请注意,要在Visual Studio 2022中启用ARM或ARM64编译支持,您必须转到设置应用程序中的单个组件屏幕,然后在此处选择ARM/ARM64构建工具,因为它们没有出现在默认的工作负载屏幕中: