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構建工具,因為它們沒有出現在默認的工作負載屏幕中: